Extract Breaklines

PointCloud has an automatic breakline extracting function to help facilitate the processing of a dataset. In order to extract breaklines, you must have a mesh open in the viewer and for best results you should have it colored by normals (although this isn't required because you can manually enter in the normals). Before you can extract breaklines you must specify the area in the mesh that you wish to extract breaklines from using the selection tools. After you have selected the area from which you wish to extract breaklines, the Extract Breaklines button should no longer be ghosted out. After pressing the Extract Breaklines button a new panel should be displayed at the bottom of the Action Page which displays all the options for configuring PointCloud's breakline extraction utility. Additionally, the viewer window will remove the coloring of the current selection to prevent it from interfering with the zone flag specification process, the viewer still internally keeps track of the area of the mesh that you have selected.

To add color zones, Ctrl + Click in the 3d view window on the mesh at a location that has the color/normal you want to define your zone. This will add the color to the Color Zones table, and you can manually modify the value if it isn't quite what you want it to be. You can choose which directions you want to be considered when zone classification is being performed using the Use X, Use Y, and Use Z check boxes. Restricting directions can yield better results in certain situations. For instance, if you're trying to extract edges along a curb, it would be best to turn off Use X and Use Y and only use the Z direction of the normal to determine the zone, due to the fact that curbs are usually a corner with a vertical surface and a horizontal surface.

There are two methods of breakline extraction: By Vertex and By Face. In the vertex method of breakline extraction, each vertex of the working selection is assigned one of the zones based off the normal at that vertex. PointCloud then creates polyline vertices on each edge that connects vertices that belong to different zones. These polyline vertices are then perturbed based on how the vertex normal's compare to the normal that defines its zone. This method is the default method and generally gives better results in datasets that have hard edges (such as corners of buildings).

Simple example of the Vertex Method

The vertex method has one unique setting that does not belong to the face method: Use Local Smoothing, which averages the normal at each vertex with it's neighbor's normals to provide a smoother set of normals to work with. This helps to give more continuous breakline edges by accommodating for places in the mesh that may be distorted due to faulty data.

In the face method of breakline extraction, each face of the working selection is assigned a zone based off it's normal. Polylines are then created out of the edges that border faces that belong to different zones. The face method also has unique options of minimum area and triangle count values for each zone area. This is to prevent a common problem with the face definition method where a single face or a small number of faces near the border will be classified as belonging to a zone other than the one they currently reside in, creating an extremely small zone.

The Join Nearest option will join any polylines whose endpoints are within the threshold distance of each other. This can help to bridge gaps in the mesh that could arise from parts of a scan being in shadow.

The Polyline Simplification option will remove each vertex that is within a certain distance to the least squares approximation. Window is the number of neighbor vertices to use when generating the least squares approximation. Threshold is a positive number that determines the distance under which vertices will be removed from the polyline.

The Polyline Smoothing option will smooth each vertex in the polyline using a least squares approximation. Window is the number of neighbor vertices to use when generating the least squares approximation. Factor is a number between 0.0 and 1.0, 0.0 being no smoothing performed and 1.0 being fitting each vertex to it's respective least squares line (usually makes the polyline extremely linear given a window size greater than 8).

Pressing the Show button will show the zones in the viewer given the current configuration but not actually create the polyline themselves. This gives you a chance to review your settings and make sure that the zones are configured properly without adding any extra objects to the project.

Pressing Extract will extract the breaklines with the given settings. Each breakline polyline will be added to the project with the a name generated from the current project settings.

Prompts

Specify Zone Flag Position Ctrl-Click in the viewer to select the color zone for breakline extraction

Tab Location(s): Action Tab
Panel and Button: Extract and Breaklines
Prerequisite: Open scene of a mesh with color by Normal