Class IfcMeasureEngine
- Namespace
- IfcIO.Measure
- Assembly
- IfcIO.dll
High-precision 3D measurement engine providing point-to-point, point-to-mesh, mesh-to-mesh clearance, triangle area, normal vector, and polyline distance calculations for IFC models.
public static class IfcMeasureEngineInheritance
Inherited Members
Methods
ClosestPointOnTriangle(IfcVector3, IfcVector3, IfcVector3, IfcVector3)
Computes the point on a 3D triangle closest to the specified query point. Implements Christer Ericson's Voronoi region algorithm.
public static IfcVector3 ClosestPointOnTriangle(IfcVector3 p, IfcVector3 a, IfcVector3 b, IfcVector3 c)Parameters
pIfcVector3aIfcVector3bIfcVector3cIfcVector3
Returns
ComputeMeshCentroid(IfcMesh)
Computes the average vertex centroid of a mesh.
public static IfcVector3 ComputeMeshCentroid(IfcMesh mesh)Parameters
meshIfcMesh
Returns
ComputeMeshSurfaceArea(IfcMesh)
Computes the total surface area of all triangles in a mesh.
public static double ComputeMeshSurfaceArea(IfcMesh mesh)Parameters
meshIfcMesh
Returns
ComputeMeshVolume(IfcMesh)
Computes the signed volume of a closed 3D manifold solid mesh.
public static double ComputeMeshVolume(IfcMesh mesh)Parameters
meshIfcMesh
Returns
ComputeTriangleArea(IfcVector3, IfcVector3, IfcVector3)
Computes the surface area of a 3D triangle defined by three vertices.
public static double ComputeTriangleArea(IfcVector3 a, IfcVector3 b, IfcVector3 c)Parameters
aIfcVector3bIfcVector3cIfcVector3
Returns
ComputeTriangleNormal(IfcVector3, IfcVector3, IfcVector3)
Computes the unit normal vector of a 3D triangle defined by three vertices in CCW order.
public static IfcVector3 ComputeTriangleNormal(IfcVector3 a, IfcVector3 b, IfcVector3 c)Parameters
aIfcVector3bIfcVector3cIfcVector3
Returns
MeasureAngle(IfcVector3, IfcVector3)
Computes the angle in degrees between two 3D direction vectors.
public static double MeasureAngle(IfcVector3 dirA, IfcVector3 dirB)Parameters
dirAIfcVector3dirBIfcVector3
Returns
MeasureAngle(IfcVector3, IfcVector3, IfcVector3)
Computes the angle in degrees between two line segments meeting at a vertex: angle(A - Vertex - B).
public static double MeasureAngle(IfcVector3 a, IfcVector3 vertex, IfcVector3 b)Parameters
aIfcVector3vertexIfcVector3bIfcVector3
Returns
MeasureDistance(IfcVector3, IfcVector3)
Measures the 3D Euclidean distance and directional projections between two points.
public static IfcDistanceMeasurement MeasureDistance(IfcVector3 a, IfcVector3 b)Parameters
aIfcVector3bIfcVector3
Returns
MeasureMeshToMesh(IfcMesh, IfcMesh)
Measures the clearance (minimum distance) between two 3D polygon meshes.
public static IfcMeshToMeshMeasurement MeasureMeshToMesh(IfcMesh meshA, IfcMesh meshB)Parameters
Returns
MeasurePath(IEnumerable<IfcVector3>)
Measures cumulative polyline distance across a sequence of 3D points.
public static IfcPolylineMeasurement MeasurePath(IEnumerable<IfcVector3> points)Parameters
pointsIEnumerable<IfcVector3>
Returns
MeasurePointToMesh(IfcVector3, IfcMesh)
Measures the shortest distance from a 3D point to a mesh surface, locating the closest point.
public static IfcPointToMeshMeasurement MeasurePointToMesh(IfcVector3 point, IfcMesh mesh)Parameters
pointIfcVector3meshIfcMesh