Click or drag to resize
AB4D logo

EdgeLinesFactory Class

EdgeLinesFactory can generated edge lines where the angle between two adjacent triangles is bigger then the specified angle.
Inheritance Hierarchy
SystemObject
  Ab3d.UtilitiesEdgeLinesFactory

Namespace: Ab3d.Utilities
Assembly: Ab3d.PowerToys (in Ab3d.PowerToys.dll) Version: 11.1.8864.1045
Syntax
C#
public class EdgeLinesFactory

The EdgeLinesFactory type exposes the following members.

Constructors
 NameDescription
Public methodEdgeLinesFactory Constructor
Top
Properties
 NameDescription
Public propertyAddMeshOuterEdges When true (by default) then edge lines are generated for edges that do not have any adjacent triangle and define the mesh outer edge.
Public propertyCacheIntermediateObjects When true (by default) then intermediate objects that are required for edge lines generation are preserved from processing of the previous meshes. This reduces the memory requirements and number of garbage collections.
Public propertyProcessDuplicatePositions When true (by default) then the mesh is first processed so that all duplicate positions (positions that have same x, y and z coordinates) are combined. Duplicate positions are very common because they are required to create sharp edges by defining different normals for each position. If you are sure that your mesh does not have duplicate positions, then you can set ProcessDuplicatePositions to false to significantly improve the performance of edge generation.
Public propertyProcessPartiallyCoveredEdges When true (by default) then the EdgeLinesFactory executes an algorithm to processes meshes that have triangle with edges that may have multiple connected triangles that fully or only partially covert the triangle edges. If you are sure that the mesh have nicely defined triangles where each triangle edge is fully covered by any adjacent triangle edge (except on the outer mesh borders), then you can set ProcessPartiallyCoveredEdges to false to significantly improve the performance of edge generation.
Top
Methods
 NameDescription
Public methodStatic memberAddEdgeLinePositions AddEdgeLinePositions method goes through all GeometryModel3D objects in the specified model3D hierarchy and collects the edge lines and adds their start and end positions to the linePositions collection. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Public methodAddEdgeLines AddEdgeLinePositions method goes through all GeometryModel3D objects in the specified model3D hierarchy and collects the edge lines and adds their start and end positions to the linePositions collection. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Public methodStatic memberClearEdgeLineIndices ClearEdgeLineIndices method clears the EdgeLineIndicesProperty and EdgeMultiLineVisual3DProperty DependencyProperty values in the specified model3D and all its children.
Public methodStatic memberCreateEdgeLinesForEachGeometryModel3D CreateEdgeLinesForEachGeometryModel3D method goes through all GeometryModel3D objects in the specified model3D hierarchy and creates one MultiLineVisual3D for each GeometryModel3D. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Public methodStatic memberGenerateEdgeLineIndices GenerateEdgeLineIndices method goes through all GeometryModel3D objects in the specified model3D hierarchy and for each MeshGeometry3D sets the EdgeLineIndicesProperty DependencyProperty to the list of edge lines that is created by this method.
Public methodGetEdgeLineIndices GetEdgeLineIndices method returns list of positions indices that define the edge lines for the specified meshGeometry3D and edgeStartAngleInDegrees. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Public methodGetEdgeLines GetEdgeLines method returns a Point3DCollection with edge line position. The method goes through all GeometryModel3D objects in the specified model3D hierarchy and collects the edge lines and adds their start and end positions to the linePositions collection. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Public methodSetEdgeLinesForEachGeometryModel3D CreateEdgeLinesForEachGeometryModel3D method goes through all GeometryModel3D objects in the specified model3D hierarchy and creates one MultiLineVisual3D for each GeometryModel3D. The edge lines are created if angle in degrees between two adjacent triangles is bigger then the specified edgeStartAngleInDegrees, then an edge line is created between triangles.
Top
Fields
 NameDescription
Public fieldStatic memberEdgeMultiLineVisual3DProperty EdgeMultiLineVisual3DProperty is a DependencyProperty that can be set to the GeometryModel3D object and specifies a MultiLineVisual3D object that is used to show edge lines.
Top
See Also