Babylon.js 2D Shape Extrusion and Manipulation
The goal of this assignment is to create a Babylon.js application that allows the user to draw arbitrary 2D shapes on the ground plane, extrude them into 3D objects with a fixed height, and then manipulate those objects by moving the object and editing their vertices using buttons for mode selection.
Use Babylon.js to create a 3D scene with a ground plane.
Implement functionality to allow the user to draw 2D shapes on the ground plane using mouse interactions (e.g., left-click to add points, right-click to complete the shape). Provide a "Draw" button to enter the draw mode.
Once the shape is completed (a closed loop), provide a UI element (e.g., button) to initiate the extrusion process. The extrusion height can be a fixed hard coded value.
Allow the user to move the extruded objects on the ground plane using mouse interactions (e.g., click and drag). Provide a "Move" button to enter move mode.
Implement functionality to edit the vertices of the extruded object using mouse interactions (e.g., click and drag to move vertices). All vertices of the shape should be editable (for example, a cuboid would have 8 editable vertices). The user should be able to freely move the vertices in 3D space. Provide a "Vertex Edit" button to enter vertex edit mode
Provide visual cues and UI elements to indicate the selected object and active editing mode (move or edit vertices).