Interactive Mesh and Point Cloud Editing ================================================ The algorithm allows modifying an input mesh by erasing/labeling triangles/vertices, and modifying an input point cloud by erasing/labeling vertices or by converting vertex colors to labels. Input ----- A single mesh or a point cloud Output ------ None. An input mesh or point cloud gets modified in place Description ----------- The algorithm allows modifying the input object by interactively applying a brush on it in the 3D view. To start applying the brush, a user needs to hold ALT and click with the left mouse button onto the region which needs to be modified. As a consequence, the visible region that is under the brush will get affected. To increase the size of the brush, one can use the spinbox **Brush Size** or press ALT and rotate the mouse wheel. When input is a point cloud, another brush setting is available - **Brush Depth**. It can be considered as a height of a cylinder, whereas **Brush Size** is its radius. Then all the points that fall within this cylinder will get modified. The bottom of the cylinder starts from the closest to the viewer point that is within the cylinder's radius, and the top goes in depth away from the viewing direction. Let's consider different options depending on the input data type. * `Input is a mesh`. * **Erase triangles**: in this mode the affected triangles will be removed from the mesh. When this mode is enabled, the `Rendering mode` is changed to `Surface+Wireframe` and the `Material mode` is changed to `Uniform`. * **Label triangles**: in this mode the affected triangles will be labeled with a **Label**. When this mode is enabled, the `Rendering mode` is changed to `Surface+Wireframe` and the `Material mode` is changed to `Face Label`. * **Erase vertices**: in this mode the affected vertices will be removed from the mesh. When this mode is enabled, the `Rendering mode` is changed to `Surface+Wireframe` and the `Material mode` is changed to `Uniform`. * **Label vertices**: in this mode the affected vertices will be labeled with a **Label**. When this mode is enabled, the `Rendering mode` is changed to `Surface+Wireframe` and the `Material mode` is changed to `Vertex Label`. * `Input is a point cloud`. * **Erase vertices**: in this mode the affected points will be removed from the point cloud. When this mode is enabled, the `Material mode` is changed to `Uniform`. * **Label vertices**: in this mode the affected points will be labeled with a **Label**. When this mode is enabled, the `Material mode` is changed to `Label`. * **Convert colors to labels**: this button creates vertex labels from vertex colors. Every unique color is associated with a new label. For example, if vertices 1-4 have red color and vertices 5-7 have green color, then vertices 1-4 will be assigned label 1, vertices 5-7 - label 2 (or the other way around). Note that label colors might differ from vertex colors. After performing this operation, the `Material mode` is changed to `Label`.