-
Notifications
You must be signed in to change notification settings - Fork 0
DiGi.Geometry.Spatial
public static class ConvertInheritance System.Object → Convert
Converts a CoordinateSystem3D instance to a Plane.
public static DiGi.Geometry.Spatial.Classes.Plane? ToDiGi(this DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? coordinateSystem3D);coordinateSystem3D CoordinateSystem3D
The CoordinateSystem3D instance to convert.
Plane
A Plane object if the provided CoordinateSystem3D is not null; otherwise, null.
Converts a Plane to a CoordinateSystem3D.
public static DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? ToDiGi(this DiGi.Geometry.Spatial.Classes.Plane? plane);plane Plane
The Plane instance to convert.
CoordinateSystem3D
A CoordinateSystem3D representing the plane's coordinate system, or null if the provided Plane is null.
Converts a Coordinate3D instance to a nullable System.Numerics.Vector3.
public static System.Nullable<System.Numerics.Vector3> ToNumerics(this DiGi.Geometry.Spatial.Classes.Coordinate3D coordinate3D);coordinate3D Coordinate3D
The Coordinate3D instance to convert.
System.Nullable<System.Numerics.Vector3>
A System.Numerics.Vector3 containing the converted coordinates, or null if the provided Coordinate3D is null.
public static class CreateInheritance System.Object → Create
Creates a BoundingBox3D based on the provided X, Y, and Z ranges.
public static DiGi.Geometry.Spatial.Classes.BoundingBox3D? BoundingBox3D(DiGi.Core.Classes.Range<double>? x, DiGi.Core.Classes.Range<double>? y, DiGi.Core.Classes.Range<double>? z);x DiGi.Core.Classes.Range<System.Double>
The Range<double> for the X axis.
y DiGi.Core.Classes.Range<System.Double>
The Range<double> for the Y axis.
z DiGi.Core.Classes.Range<System.Double>
The Range<double> for the Z axis.
BoundingBox3D
A BoundingBox3D if all provided ranges are not null; otherwise, null.
Calculates a single BoundingBox3D that encompasses all provided bounding boxes in the collection.
public static DiGi.Geometry.Spatial.Classes.BoundingBox3D? BoundingBox3D(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.BoundingBox3D>? boundingBox3Ds);boundingBox3Ds System.Collections.Generic.IEnumerable<BoundingBox3D>
An System.Collections.Generic.IEnumerable<> of BoundingBox3D objects to process.
BoundingBox3D
A BoundingBox3D representing the union of all input bounding boxes, or null if the collection is null or contains no valid bounding boxes.
Creates an Ellipsoid(Point3D, Point3D, double, double, double) based on two focal points and two semi-minor axes.
public static DiGi.Geometry.Spatial.Classes.Ellipsoid? Ellipsoid(DiGi.Geometry.Spatial.Classes.Point3D? focalPoint_1, DiGi.Geometry.Spatial.Classes.Point3D? focalPoint_2, double b, double c, double tolerance=1E-06);focalPoint_1 Point3D
The first Point3D representing a focal point of the ellipsoid.
focalPoint_2 Point3D
The second Point3D representing a focal point of the ellipsoid.
A System.Double value representing one of the semi-minor axes.
A System.Double value representing another semi-minor axis.
tolerance System.Double
A System.Double value specifying the distance tolerance.
Ellipsoid
An Ellipsoid(Point3D, Point3D, double, double, double) object if the parameters are valid and a valid ellipsoid can be constructed; otherwise, null.
Calculates the intersection between a 3D bounding box and a ray defined by a point and a direction.
public static DiGi.Geometry.Spatial.Classes.IntersectionResult3D? IntersectionResult3D(this DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_Direction, double tolerance=1E-06);boundingBox3D BoundingBox3D
The BoundingBox3D to check for intersection.
point3D Point3D
The Point3D representing the starting point of the ray.
vector3D_Direction Vector3D
The Vector3D(Vector3D, bool) representing the direction of the ray.
tolerance System.Double
A System.Double value specifying the distance tolerance for the intersection calculation.
IntersectionResult3D
An IntersectionResult3D containing the result of the intersection, or null if any of the required parameters are null.
Calculates the intersection between a BoundingBox3D and an DiGi.Geometry.Spatial.Interfaces.ILinear3D.
public static DiGi.Geometry.Spatial.Classes.IntersectionResult3D? IntersectionResult3D(this DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D, DiGi.Geometry.Spatial.Interfaces.ILinear3D? linear3D, double tolerance=1E-06);boundingBox3D BoundingBox3D
The BoundingBox3D to intersect.
linear3D DiGi.Geometry.Spatial.Interfaces.ILinear3D
The DiGi.Geometry.Spatial.Interfaces.ILinear3D to intersect.
tolerance System.Double
The System.Double tolerance for the intersection calculation.
IntersectionResult3D
An IntersectionResult3D containing the result of the intersection, or null if either input is null or the operation fails.
Calculates the intersection between a sphere and a 3D line.
public static DiGi.Geometry.Spatial.Classes.IntersectionResult3D? IntersectionResult3D(this DiGi.Geometry.Spatial.Classes.Sphere? sphere, DiGi.Geometry.Spatial.Classes.Line3D? line3D, double tolerance=1E-06);sphere Sphere
The Sphere to intersect.
line3D Line3D
The Line3D to intersect.
tolerance System.Double
The System.Double tolerance value used for the intersection calculation.
IntersectionResult3D
An IntersectionResult3D containing the intersection details, or null if either the sphere or line is null.
Calculates the intersection between a Sphere and a Segment3D.
public static DiGi.Geometry.Spatial.Classes.IntersectionResult3D? IntersectionResult3D(this DiGi.Geometry.Spatial.Classes.Sphere? sphere, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double tolerance=1E-06);sphere Sphere
The Sphere to intersect.
segment3D Segment3D
The Segment3D to intersect.
tolerance System.Double
A System.Double value representing the distance tolerance for the intersection calculation.
IntersectionResult3D
An IntersectionResult3D containing the result of the intersection, or null if either the sphere or segment is null.
Create.IntersectionResult3D<TPolygonalFace3D>(this Polyhedron<TPolygonalFace3D>, ILinear3D, double) Method
Calculates the intersection result between a Polyhedron<TPolygonalFace3D> and an DiGi.Geometry.Spatial.Interfaces.ILinear3D.
public static DiGi.Geometry.Spatial.Classes.IntersectionResult3D? IntersectionResult3D<TPolygonalFace3D>(this DiGi.Geometry.Spatial.Classes.Polyhedron<TPolygonalFace3D>? polyhedron, DiGi.Geometry.Spatial.Interfaces.ILinear3D? linear3D, double tolerance=1E-06)
where TPolygonalFace3D : DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D;TPolygonalFace3D
The type of polygonal face, which must implement DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D.
polyhedron DiGi.Geometry.Spatial.Classes.Polyhedron<TPolygonalFace3D>
The Polyhedron<TPolygonalFace3D> to check for intersection.
linear3D DiGi.Geometry.Spatial.Interfaces.ILinear3D
The DiGi.Geometry.Spatial.Interfaces.ILinear3D object to intersect with the polyhedron.
tolerance System.Double
A System.Double value representing the distance tolerance used for calculations.
IntersectionResult3D
An IntersectionResult3D containing the intersection details, or null if either input is null or the bounding box cannot be determined.
Creates a DiGi.Math.Classes.Matrix from the specified collection of Point3D points.
public static DiGi.Math.Classes.Matrix? Matrix(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D objects to convert.
DiGi.Math.Classes.Matrix
A DiGi.Math.Classes.Matrix containing the point coordinates, or null if point3Ds is null.
Creates a DiGi.Math.Classes.Matrix from a collection of Vector3D(Vector3D, bool).
public static DiGi.Math.Classes.Matrix? Matrix(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Vector3D>? vector3Ds);vector3Ds System.Collections.Generic.IEnumerable<Vector3D>
An System.Collections.Generic.IEnumerable<> of Vector3D(Vector3D, bool) objects to be converted into a matrix.
DiGi.Math.Classes.Matrix
A DiGi.Math.Classes.Matrix containing the vectors as rows, or null if the input collection is null.
Generates a Mesh3D from the specified Ellipsoid(Point3D, Point3D, double, double, double) using an angle factor to determine the resolution of stacks and slices.
public static DiGi.Geometry.Spatial.Classes.Mesh3D? Mesh3D(this DiGi.Geometry.Spatial.Classes.Ellipsoid? ellipsoid, double angleFactor);ellipsoid Ellipsoid
The Ellipsoid(Point3D, Point3D, double, double, double) instance to be converted into a mesh.
angleFactor System.Double
A System.Double value used to calculate the number of stacks and slices for the resulting mesh.
Mesh3D
A Mesh3D object representing the ellipsoid, or null if the provided Ellipsoid(Point3D, Point3D, double, double, double) is null.
Generates a Mesh3D from the specified Ellipsoid(Point3D, Point3D, double, double, double).
public static DiGi.Geometry.Spatial.Classes.Mesh3D? Mesh3D(this DiGi.Geometry.Spatial.Classes.Ellipsoid? ellipsoid, int stacks, int slices);ellipsoid Ellipsoid
The Ellipsoid(Point3D, Point3D, double, double, double) to convert into a mesh.
stacks System.Int32
The number of stacks (latitude divisions) as an System.Int32 used to generate the mesh.
slices System.Int32
The number of slices (longitude divisions) as an System.Int32 used to generate the mesh.
Mesh3D
A Mesh3D representing the ellipsoid, or null if the provided Ellipsoid(Point3D, Point3D, double, double, double) is null.
Converts the specified Polyhedron to a Mesh3D by triangulating its polygonal faces.
public static DiGi.Geometry.Spatial.Classes.Mesh3D? Mesh3D(this DiGi.Geometry.Spatial.Classes.Polyhedron? polyhedron, double tolerance=1E-06);polyhedron Polyhedron
The Polyhedron instance to convert.
tolerance System.Double
The System.Double tolerance used during the triangulation of the polygonal faces.
Mesh3D
A Mesh3D object representing the triangulated mesh, or null if the Polyhedron is null or contains no valid faces.
Converts a polygonal face to a 3D mesh using the specified distance tolerance.
public static DiGi.Geometry.Spatial.Classes.Mesh3D? Mesh3D(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to convert.
tolerance System.Double
The System.Double distance tolerance used for triangulation.
Mesh3D
A Mesh3D object representing the polygonal face, or null if the input is null.
Creates a Mesh3D from a collection of Triangle3D objects.
public static DiGi.Geometry.Spatial.Classes.Mesh3D? Mesh3D(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Triangle3D>? triangle3Ds, double tolerance=1E-06);triangle3Ds System.Collections.Generic.IEnumerable<Triangle3D>
The System.Collections.Generic.IEnumerable<> containing the triangles to be converted into a mesh.
tolerance System.Double
The System.Double tolerance value used for merging coincident points.
Mesh3D
A Mesh3D object if the input collection is not null and contains valid triangles; otherwise, null.
Calculates the planar intersection result between a plane and a 3D bounding box.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D, double tolerance=1E-06);plane Plane
The Plane to intersect with the bounding box.
boundingBox3D BoundingBox3D
The BoundingBox3D to be intersected by the plane.
tolerance System.Double
A System.Double value representing the distance tolerance for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if either the plane or bounding box is null, or if a polyhedron cannot be created from the bounding box.
Calculates the intersection result between a Plane and a Line3D.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Line3D? line3D, double tolerance=1E-06);plane Plane
The Plane to intersect.
line3D Line3D
The Line3D to intersect.
tolerance System.Double
The System.Double tolerance used for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if the plane or line is null.
Calculates the intersection result of two planes.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane_1, DiGi.Geometry.Spatial.Classes.Plane? plane_2, double tolerance=1E-06);plane_1 Plane
The first Plane to intersect.
plane_2 Plane
The second Plane to intersect.
tolerance System.Double
The System.Double tolerance used for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult if an intersection is found; otherwise, null.
Calculates the intersection result between a Plane and a line segment defined by two Point3D points.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, bool bounded_1=false, bool bounded_2=false, double tolerance=1E-06);plane Plane
The Plane to intersect with.
point3D_1 Point3D
The first Point3D defining the line segment.
point3D_2 Point3D
The second Point3D defining the line segment.
bounded_1 System.Boolean
A System.Boolean value indicating whether the intersection is bounded for the first point.
bounded_2 System.Boolean
A System.Boolean value indicating whether the intersection is bounded for the second point.
tolerance System.Double
The System.Double tolerance used for distance calculations.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if any input parameters are null.
Calculates the planar intersection result for a given Plane and Point3D.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06);plane Plane
The Plane used for the intersection calculation.
point3D Point3D
The Point3D to be checked against the plane.
tolerance System.Double
A System.Double value specifying the distance tolerance for determining if the point lies on the plane.
PlanarIntersectionResult
A PlanarIntersectionResult containing the intersection details, or null if either input is null or projection fails.
Calculates the intersection result between a plane and a 3D ray.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Ray3D? ray3D, double tolerance=1E-06);plane Plane
The Plane to be intersected.
ray3D Ray3D
The Ray3D used for the intersection calculation.
tolerance System.Double
A System.Double value representing the distance tolerance for the intersection.
PlanarIntersectionResult
A PlanarIntersectionResult if an intersection is found and inputs are valid; otherwise, null.
Calculates the intersection result between a plane and a 3D segment.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double tolerance=1E-06);plane Plane
The Plane to intersect.
segment3D Segment3D
The Segment3D to intersect.
tolerance System.Double
The System.Double tolerance used for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the intersection details, or null if either input is null or a result cannot be determined.
Calculates the planar intersection result between a plane and a 3D polygonal face.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, double tolerance=1E-06);plane Plane
The Plane to evaluate.
polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D to evaluate.
tolerance System.Double
The System.Double tolerance used for coplanar and distance checks.
PlanarIntersectionResult
A PlanarIntersectionResult if the intersection is successfully calculated; otherwise, null.
Calculates the planar intersection between a plane and a polyhedron.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolyhedron? polyhedron, double tolerance=1E-06);plane Plane
The Plane to intersect with the polyhedron.
polyhedron DiGi.Geometry.Spatial.Interfaces.IPolyhedron
The DiGi.Geometry.Spatial.Interfaces.IPolyhedron to be intersected by the plane.
tolerance System.Double
A System.Double value representing the distance tolerance for intersection calculations.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if either input is null or the polyhedron contains no faces.
Calculates the planar intersection result between a Plane and an DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D, double tolerance=1E-06);plane Plane
The Plane used for the intersection calculation.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to be intersected with the plane.
tolerance System.Double
The System.Double tolerance value used to determine if an intersection occurs.
PlanarIntersectionResult
A PlanarIntersectionResult containing the intersection data, or null if the Plane or DiGi.Geometry.Spatial.Interfaces.ISegmentable3D is null, or if no segments are available.
Calculates the planar intersection result between a polygonal face and a line.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Line3D? line3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to intersect.
line3D Line3D
The Line3D instance to intersect.
tolerance System.Double
A System.Double value representing the distance tolerance for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if either input is null or an intersection cannot be determined.
Calculates the planar intersection between a 3D polygonal face and a line segment defined by two points.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, bool bounded_1, bool bounded_2, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D to intersect with.
point3D_1 Point3D
The first Point3D defining the line segment.
point3D_2 Point3D
The second Point3D defining the line segment.
bounded_1 System.Boolean
A System.Boolean value indicating whether the intersection is bounded by the first point.
bounded_2 System.Boolean
A System.Boolean value indicating whether the intersection is bounded by the second point.
tolerance System.Double
The System.Double tolerance used for distance calculations.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if the input parameters are null or an intersection cannot be determined.
Calculates the planar intersection result of a Point3D relative to an DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to evaluate.
point3D Point3D
The Point3D instance to check for intersection.
tolerance System.Double
A System.Double value representing the distance tolerance used for range checking.
PlanarIntersectionResult
A PlanarIntersectionResult containing the plane and potentially the projected point, or null if either input is null or the face has no associated plane.
Calculates the planar intersection result between a polygonal face and a ray.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Ray3D? ray3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to intersect.
ray3D Ray3D
The Ray3D instance representing the ray.
tolerance System.Double
The System.Double tolerance value used for calculations.
PlanarIntersectionResult
A PlanarIntersectionResult containing the intersection details, or null if no intersection is found or if either input is null.
Calculates the planar intersection result between a polygonal face and a segment.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D representing the polygonal face.
segment3D Segment3D
The Segment3D representing the line segment.
tolerance System.Double
A System.Double value specifying the distance tolerance for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if the DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D or Segment3D is null.
Calculates the planar intersection result between two polygonal faces.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D_1, DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D_2, double tolerance=1E-06);polygonalFace3D_1 DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The first DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D face.
polygonalFace3D_2 DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The second DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D face.
tolerance System.Double
The System.Double tolerance used for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the planar intersection, or null if either face is null or their planes are not defined.
Calculates the planar intersection result between a polygonal face and all faces of a polyhedron.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Interfaces.IPolyhedron? polyhedron, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D to be intersected.
polyhedron DiGi.Geometry.Spatial.Interfaces.IPolyhedron
The DiGi.Geometry.Spatial.Interfaces.IPolyhedron whose faces are used for the intersection calculation.
tolerance System.Double
A System.Double value specifying the distance tolerance.
PlanarIntersectionResult
A PlanarIntersectionResult containing the result of the intersection, or null if either the DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D or the DiGi.Geometry.Spatial.Interfaces.IPolyhedron is null.
Create.PlanarIntersectionResult(this IPolygonalFace3D, IEnumerable<IPolygonalFace3D>, double) Method
Calculates the planar intersection between a reference polygonal face and a collection of other polygonal faces.
public static DiGi.Geometry.Spatial.Classes.PlanarIntersectionResult? PlanarIntersectionResult(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The reference DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D object.
polygonalFace3Ds System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
An System.Collections.Generic.IEnumerable<> containing the polygonal faces to intersect with the reference face.
tolerance System.Double
A System.Double value specifying the distance tolerance for the intersection calculation.
PlanarIntersectionResult
A PlanarIntersectionResult object if a valid intersection is found; otherwise, null.
Creates a Plane based on the World Z axis at the specified origin point.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(DiGi.Geometry.Spatial.Classes.Point3D? origin);origin Point3D
The Point3D representing the origin of the plane. If null, the method returns null.
Plane
A Plane instance if a valid Point3D is provided; otherwise, null.
Creates a Plane defined by an origin point and two axes.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(DiGi.Geometry.Spatial.Classes.Point3D? origin, DiGi.Geometry.Spatial.Classes.Vector3D? axisX, DiGi.Geometry.Spatial.Classes.Vector3D? axisY);origin Point3D
The Point3D that defines the origin of the plane.
axisX Vector3D
The Vector3D(Vector3D, bool) that defines the X-axis of the plane.
axisY Vector3D
The Vector3D(Vector3D, bool) that defines the Y-axis of the plane.
Plane
A Plane instance if all parameters are non-null; otherwise, null.
Creates a plane at the specified elevation along the Z-axis.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(double elevation);elevation System.Double
The double value representing the elevation of the plane.
Plane
A Plane object positioned at the given elevation, or null if the provided double is NaN.
Creates a plane perpendicular to the specified axis and offsets it by the given value.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(double value, int dimensionIndex);value System.Double
The distance of type System.Double to move the plane along the axis.
dimensionIndex System.Int32
The index of type System.Int32 representing the dimension (0 for X, 1 for Y, 2 for Z).
Plane
A Plane object shifted by the value, or null if the dimensionIndex is not a valid axis index.
Creates a Plane from three specified Point3D points.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Point3D? point3D_3);point3D_1 Point3D
The first Point3D point.
point3D_2 Point3D
The second Point3D point.
point3D_3 Point3D
The third Point3D point.
Plane
A Plane if the points are valid and not collinear; otherwise, null.
Creates a Plane from a collection of Point3D points using the specified tolerance.
public static DiGi.Geometry.Spatial.Classes.Plane? Plane(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D points used to define the plane.
tolerance System.Double
The System.Double tolerance value used for calculating the normal vector.
Plane
A Plane if a valid plane can be constructed from the provided points; otherwise, null.
Returns a list of Plane objects that define the boundaries of the specified BoundingBox3D.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Plane>? Planes(this DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D);boundingBox3D BoundingBox3D
The BoundingBox3D instance from which to extract the planes.
System.Collections.Generic.List<Plane>
A List<Plane> containing the boundary planes, or null if the BoundingBox3D is null or contains invalid bounds.
Generates a list of Point3D points from the specified Segment3D based on the provided count.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Point3D>? Point3Ds(this DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, int count);segment3D Segment3D
The Segment3D instance to extract points from.
count System.Int32
The number of Point3D points to retrieve.
System.Collections.Generic.List<Point3D>
A List<Point3D> containing the requested points, or null if the Segment3D is null, the count is negative, or the points cannot be retrieved.
Creates a Polygon3D instance based on the provided Plane and a collection of Point2D points.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D(DiGi.Geometry.Spatial.Classes.Plane? plane, params DiGi.Geometry.Planar.Classes.Point2D?[]? point2Ds);plane Plane
The Plane that defines the surface of the polygon.
A variable number of Point2D objects representing the vertices of the polygon.
Polygon3D
A new Polygon3D instance if a valid Plane is provided and there are at least three non-null Point2D points; otherwise, null.
Creates a Polygon3D from a Segment3D and a Vector3D(Vector3D, bool).
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D(this DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, double tolerance=1E-06);segment3D Segment3D
The Segment3D to use as the base for the polygon.
vector3D Vector3D
The Vector3D(Vector3D, bool) used to define the polygon's extent or direction.
tolerance System.Double
The System.Double tolerance value used for length and similarity comparisons.
Polygon3D
A Polygon3D if a valid polygon can be created; otherwise, null.
Creates a Polygon3D from the specified Segment3D with a given height.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D(this DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double height, double tolerance=0.0349066);segment3D Segment3D
The Segment3D to be converted into a polygon.
height System.Double
The System.Double height of the resulting polygon.
tolerance System.Double
The System.Double tolerance used to determine if the segment is parallel to the Z-axis.
Polygon3D
A Polygon3D instance, or null if the Segment3D is null, height is NaN, or the segment direction is parallel to the WorldZ axis within the specified tolerance.
Creates a Polygon3D from the specified normal vector and a collection of 3D points.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D(this DiGi.Geometry.Spatial.Classes.Vector3D? normal, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds);normal Vector3D
The Vector3D(Vector3D, bool) representing the normal vector of the plane.
point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> containing the vertices to be used for the polygon.
Polygon3D
A Polygon3D if a valid polygon can be constructed; otherwise, null.
Creates a Polygon3D from a collection of Point3D objects.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, double tolerace=1E-06);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D objects used to define the polygon.
tolerace System.Double
The System.Double value representing the distance tolerance for plane calculation.
Polygon3D
A Polygon3D object if a valid polygon can be created; otherwise, null.
Converts a planar object to a Polygon3D.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Polygon3D<T>(this DiGi.Geometry.Spatial.Interfaces.IPlanar<T>? planar)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type of the 2D polygonal geometry, which must implement IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object to convert.
Polygon3D
A Polygon3D if the DiGi.Geometry.Spatial.Interfaces.IPlanar<> object, its geometry, and its plane are not null; otherwise, null.
Generates a list of Polygon3D objects from the specified BoundingBox3D.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Polygon3D>? Polygon3Ds(DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D);boundingBox3D BoundingBox3D
The BoundingBox3D used to create the polygons.
System.Collections.Generic.List<Polygon3D>
A List<Polygon3D> containing the generated polygons, or null if the provided BoundingBox3D or its boundaries are null.
Creates a PolygonalFace3D based on the specified Plane and a collection of Point2D vertices.
public static DiGi.Geometry.Spatial.Classes.PolygonalFace3D? PolygonalFace3D(DiGi.Geometry.Spatial.Classes.Plane? plane, params DiGi.Geometry.Planar.Classes.Point2D[]? points);plane Plane
The Plane on which the polygonal face is located.
An array of Point2D objects defining the vertices of the polygon.
PolygonalFace3D
A PolygonalFace3D instance if the Plane and Point2D array are not null and contain at least three points; otherwise, null.
Creates a PolygonalFace3D based on an external boundary and optional internal boundaries.
public static DiGi.Geometry.Spatial.Classes.PolygonalFace3D? PolygonalFace3D(DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? externalEdge, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonal3D>? internalEdges=null, double tolerance=1E-06);externalEdge DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonal3D representing the external edge of the face.
internalEdges System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonal3D>
An System.Collections.Generic.IEnumerable<> containing the internal edges (holes) of the face.
tolerance System.Double
The System.Double tolerance value used for distance calculations.
PolygonalFace3D
A PolygonalFace3D object if the face could be created; otherwise, null.
Converts an DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to a PolygonalFace3D instance if the underlying plane is a Plane and the geometry is an IPolygonalFace2D.
public static DiGi.Geometry.Spatial.Classes.PolygonalFace3D? PolygonalFace3D(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to convert.
PolygonalFace3D
A new PolygonalFace3D instance if the conversion is successful; otherwise, null.
Converts a Planar<T> to a PolygonalFace3D.
public static DiGi.Geometry.Spatial.Classes.PolygonalFace3D? PolygonalFace3D<T>(this DiGi.Geometry.Spatial.Classes.Planar<T>? planar)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type of the polygonal 2D geometry, which must implement IPolygonal2D.
planar DiGi.Geometry.Spatial.Classes.Planar<T>
The Planar<T> instance to convert.
PolygonalFace3D
A PolygonalFace3D if the conversion is successful; otherwise, null.
Converts the specified BoundingBox3D to a Polyhedron.
public static DiGi.Geometry.Spatial.Classes.Polyhedron? Polyhedron(this DiGi.Geometry.Spatial.Classes.BoundingBox3D? boundingBox3D);boundingBox3D BoundingBox3D
The BoundingBox3D instance to convert.
Polyhedron
A Polyhedron representing the bounding box, or null if the provided BoundingBox3D is null or cannot be converted into a valid polyhedron.
Creates a Polyhedron from the specified PolygonalFaceExtrusion.
public static DiGi.Geometry.Spatial.Classes.Polyhedron? Polyhedron(this DiGi.Geometry.Spatial.Classes.PolygonalFaceExtrusion? polygonalFaceExtrusion, double tolerance=1E-06);polygonalFaceExtrusion PolygonalFaceExtrusion
The PolygonalFaceExtrusion to convert into a Polyhedron.
tolerance System.Double
The System.Double tolerance value used for the operation.
Polyhedron
A Polyhedron if the PolygonalFaceExtrusion is not null; otherwise, null.
Creates a Polyhedron(this IPolygonalFace3D, Vector3D, double) from the specified DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D and Vector3D(Vector3D, bool).
public static DiGi.Geometry.Spatial.Classes.Polyhedron? Polyhedron(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D that serves as the base of the polyhedron.
vector3D Vector3D
The Vector3D(Vector3D, bool) defining the direction and magnitude for the polyhedron creation.
tolerance System.Double
A System.Double value representing the distance tolerance used for calculations.
Polyhedron
A Polyhedron if successfully created; otherwise, null.
Converts the specified DiGi.Geometry.Spatial.Interfaces.IPolyhedron to a Polyhedron.
public static DiGi.Geometry.Spatial.Classes.Polyhedron? Polyhedron(this DiGi.Geometry.Spatial.Interfaces.IPolyhedron polyhedron);polyhedron DiGi.Geometry.Spatial.Interfaces.IPolyhedron
The DiGi.Geometry.Spatial.Interfaces.IPolyhedron instance to convert.
Polyhedron
A Polyhedron instance if the conversion is successful; otherwise, null.
Creates a Polyhedron(this IPolygonalFace3D, Vector3D, double) from the specified collection of polygonal faces.
public static DiGi.Geometry.Spatial.Classes.Polyhedron? Polyhedron(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds);polygonalFace3Ds System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
An System.Collections.Generic.IEnumerable<> containing the polygonal faces to be used for the construction.
Polyhedron
A new Polyhedron instance if the System.Collections.Generic.IEnumerable<> is not null and contains at least four elements; otherwise, null.
Calculates the projection result of a 3D ellipse onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Ellipse3D? ellipse3D, double tolerance=1E-06);plane Plane
The Plane onto which the ellipse is projected.
ellipse3D Ellipse3D
The Ellipse3D to be projected.
tolerance System.Double
The System.Double tolerance used to determine if the plane and the ellipse's plane are parallel.
ProjectionResult
A ProjectionResult containing the projected 2D ellipse, or null if either the Plane or Ellipse3D is null.
Projects a Line3D onto a Plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Line3D? line3D, double tolerance=1E-06);plane Plane
The Plane to project the line onto.
line3D Line3D
The Line3D to be projected.
tolerance System.Double
The System.Double tolerance used for similarity and intersection calculations.
ProjectionResult
A ProjectionResult containing the projection results, or null if either input is null or the projection cannot be determined.
Projects a Point3D onto a Plane to create a ProjectionResult.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D);plane Plane
The Plane used for the projection.
point3D Point3D
The Point3D to be projected onto the plane.
ProjectionResult
A ProjectionResult containing the result of the projection, or null if the Plane or Point3D is null, or if the conversion to a Point2D fails.
Projects a Polygon3D onto a Plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Polygon3D? polygon3D, double tolerance=1E-06);plane Plane
The Plane to project onto.
polygon3D Polygon3D
The Polygon3D to be projected.
tolerance System.Double
A System.Double value representing the distance tolerance for the projection.
ProjectionResult
A ProjectionResult containing the result of the projection, or null if the input parameters are null or the resulting geometry is invalid.
Calculates the projection result of a 3D polygonal face onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.PolygonalFace3D? polygonalFace3D, double tolerance=1E-06);plane Plane
The Plane to project onto.
polygonalFace3D PolygonalFace3D
The PolygonalFace3D to be projected.
tolerance System.Double
A System.Double value representing the distance tolerance for the projection.
ProjectionResult
A ProjectionResult if the projection is successful; otherwise, null.
Calculates the projection of a 3D ray onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Ray3D? ray3D, double tolerance=1E-06);plane Plane
The Plane to project the ray onto.
ray3D Ray3D
The Ray3D to be projected.
tolerance System.Double
The System.Double tolerance used for similarity and distance calculations.
ProjectionResult
A ProjectionResult containing the projection data, or null if either the Plane or Ray3D is null.
Calculates the projection result of a Segment3D onto a Plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double tolerance=1E-06);plane Plane
The Plane to project onto.
segment3D Segment3D
The Segment3D to be projected.
tolerance System.Double
A System.Double value representing the tolerance for similarity calculations.
ProjectionResult
A ProjectionResult containing the projection details, or null if either the Plane or Segment3D is null.
Calculates the projection result of a 3D triangle onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Triangle3D? triangle3D, double tolerance=1E-06);plane Plane
The Plane object to project onto.
triangle3D Triangle3D
The Triangle3D object to be projected.
tolerance System.Double
A System.Double value representing the distance tolerance for collinearity checks.
ProjectionResult
A ProjectionResult containing the projection data, or null if the input is null or the resulting points are not valid.
Calculates the projection result of a Vector3D(Vector3D, bool) onto a Plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, double tolerance=1E-06);plane Plane
The Plane to project onto.
vector3D Vector3D
The Vector3D(Vector3D, bool) to be projected.
tolerance System.Double
A System.Double value representing the minimum length threshold for the projection result.
ProjectionResult
A ProjectionResult containing the projection details, or null if the input parameters are null or the resulting vector length is less than the specified System.Double tolerance.
Calculates the projection result of a specified 3D geometry onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IGeometry3D? geometry3D, double tolerance=1E-06);plane Plane
The Plane to project onto.
geometry3D DiGi.Geometry.Spatial.Interfaces.IGeometry3D
The DiGi.Geometry.Spatial.Interfaces.IGeometry3D object to be projected.
tolerance System.Double
The System.Double value representing the distance tolerance for the projection.
ProjectionResult
A ProjectionResult containing the result of the projection, or null if either the plane or geometry is null.
Projects a collection of Point3D points onto a Plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult(this DiGi.Geometry.Spatial.Classes.Plane? plane, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds);plane Plane
The Plane to which the points are projected.
point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> of Point3D objects to project.
ProjectionResult
A ProjectionResult containing the projection data, or null if either the Plane or the System.Collections.Generic.IEnumerable<> of Point3D is null.
Projects a collection of 3D geometry objects onto a plane.
public static DiGi.Geometry.Spatial.Classes.ProjectionResult? ProjectionResult<T>(this DiGi.Geometry.Spatial.Classes.Plane? plane, System.Collections.Generic.IEnumerable<T>? geometry3Ds, double tolerance=1E-06)
where T : DiGi.Geometry.Spatial.Interfaces.IGeometry3D;T
The type of 3D geometry, which must implement DiGi.Geometry.Spatial.Interfaces.IGeometry3D.
plane Plane
The Plane to project the geometries onto.
geometry3Ds System.Collections.Generic.IEnumerable<T>
An System.Collections.Generic.IEnumerable<> of 3D geometry objects to be projected.
tolerance System.Double
A System.Double value specifying the distance tolerance for the projection process.
ProjectionResult
A ProjectionResult containing the results of the projection, or null if the plane or geometry3Ds is null.
Converts a collection of Point3D objects into a list of Segment3D objects.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Segment3D>? Segment3Ds(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, bool closed=false);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D points to process.
closed System.Boolean
A System.Boolean value indicating whether the segment list should be closed by connecting the last point back to the first point.
System.Collections.Generic.List<Segment3D>
A System.Collections.Generic.List<> of Segment3D objects, or null if the provided System.Collections.Generic.IEnumerable<> is null.
Creates a copy of the specified Vector3D(Vector3D, bool), with an option to normalize the resulting vector.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Vector3D(DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, bool normalize=false);vector3D Vector3D
The source Vector3D(Vector3D, bool) instance to be copied.
normalize System.Boolean
A System.Boolean value indicating whether the returned vector should be normalized.
Vector3D
A new Vector3D(Vector3D, bool) instance if the provided Vector3D(Vector3D, bool) is not null; otherwise, returns null.
public static class Create.Transform3DInheritance System.Object → Transform3D
Create.Transform3D.CoordinateSystem3DToCoordinateSystem3D(CoordinateSystem3D, CoordinateSystem3D) Method
Calculates the transformation from one 3D coordinate system to another 3D coordinate system.
public static DiGi.Geometry.Spatial.Classes.Transform3D? CoordinateSystem3DToCoordinateSystem3D(DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? coordinateSystem3D_From, DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? coordinateSystem3D_To);coordinateSystem3D_From CoordinateSystem3D
The source CoordinateSystem3D coordinate system.
coordinateSystem3D_To CoordinateSystem3D
The destination CoordinateSystem3D coordinate system.
Transform3D
A Transform3D representing the transformation from the source to the destination, or null if either input is null.
Converts a CoordinateSystem3D to a Transform3D that transforms the coordinate system to the origin.
public static DiGi.Geometry.Spatial.Classes.Transform3D? CoordinateSystem3DToOrigin(DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? coordinateSystem3D);coordinateSystem3D CoordinateSystem3D
The CoordinateSystem3D to convert. This value can be null.
Transform3D
A Transform3D representing the transformation to the origin, or null if the provided CoordinateSystem3D is null.
Creates a new Transform3D representing the identity transformation.
public static DiGi.Geometry.Spatial.Classes.Transform3D Identity();Transform3D
A Transform3D instance initialized with an identity matrix.
Creates a transformation matrix that mirrors coordinates across the XY plane.
public static DiGi.Geometry.Spatial.Classes.Transform3D MirrorXY();Transform3D
A Transform3D representing the mirroring transformation.
Creates a Transform3D that mirrors coordinates across the XZ plane.
public static DiGi.Geometry.Spatial.Classes.Transform3D MirrorXZ();Transform3D
A Transform3D representing the mirroring transformation.
Creates a Transform3D that mirrors coordinates across the YZ plane.
public static DiGi.Geometry.Spatial.Classes.Transform3D MirrorYZ();Transform3D
A Transform3D representing the mirroring transformation.
Creates a Transform3D that represents the transformation from the origin to the specified CoordinateSystem3D.
public static DiGi.Geometry.Spatial.Classes.Transform3D? OriginToCoordinateSystem3D(DiGi.Geometry.Spatial.Classes.CoordinateSystem3D? coordinateSystem3D);coordinateSystem3D CoordinateSystem3D
The CoordinateSystem3D to transform to.
Transform3D
A Transform3D representing the transformation from the origin to the coordinate system, or null if the provided CoordinateSystem3D is null.
Calculates the transformation from the origin to the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Transform3D? OriginToPlane(DiGi.Geometry.Spatial.Classes.Plane? plane);plane Plane
The Plane to which the origin is transformed.
Transform3D
A Transform3D representing the transformation, or null if the provided Plane is null.
Creates a transformation matrix that translates the origin to the specified Point3D.
public static DiGi.Geometry.Spatial.Classes.Transform3D? OriginTranslation(DiGi.Geometry.Spatial.Classes.Point3D? point3D);point3D Point3D
The Point3D specifying the translation coordinates.
Transform3D
A Transform3D representing the translation, or null if the provided Point3D is null.
Calculates the Transform3D required to transform a specified Plane to the origin.
public static DiGi.Geometry.Spatial.Classes.Transform3D? PlaneToOrigin(DiGi.Geometry.Spatial.Classes.Plane? plane);plane Plane
The Plane to be transformed to the origin.
Transform3D
A Transform3D representing the transformation from the plane to the origin, or null if the provided Plane is null.
Creates a transformation that maps a plane defined by an origin and three axes to the coordinate system's origin.
public static DiGi.Geometry.Spatial.Classes.Transform3D? PlaneToOrigin(DiGi.Geometry.Spatial.Classes.Point3D? origin, DiGi.Geometry.Spatial.Classes.Vector3D? axisX, DiGi.Geometry.Spatial.Classes.Vector3D? axisY, DiGi.Geometry.Spatial.Classes.Vector3D? axisZ);origin Point3D
The Point3D representing the origin of the plane.
axisX Vector3D
The Vector3D(Vector3D, bool) representing the X-axis of the plane.
axisY Vector3D
The Vector3D(Vector3D, bool) representing the Y-axis of the plane.
axisZ Vector3D
The Vector3D(Vector3D, bool) representing the Z-axis of the plane.
Transform3D
A Transform3D object if all parameters are provided; otherwise, null.
Calculates a Transform3D that transforms coordinates from one Plane to another.
public static DiGi.Geometry.Spatial.Classes.Transform3D? PlaneToPlane(DiGi.Geometry.Spatial.Classes.Plane? plane_From, DiGi.Geometry.Spatial.Classes.Plane? plane_To);plane_From Plane
The source Plane.
plane_To Plane
The destination Plane.
Transform3D
A Transform3D representing the transformation from the source plane to the destination plane, or null if either input plane is null.
Creates a transformation matrix that projects coordinates onto the XY plane by setting the Z component to zero.
public static DiGi.Geometry.Spatial.Classes.Transform3D ProjectionXY();Transform3D
A Transform3D representing the projection onto the XY plane.
Creates a transformation matrix that projects coordinates onto the XZ plane.
public static DiGi.Geometry.Spatial.Classes.Transform3D ProjectionXZ();Transform3D
A Transform3D representing the projection onto the XZ plane.
Creates a transformation matrix that projects points onto the YZ plane by removing the X component.
public static DiGi.Geometry.Spatial.Classes.Transform3D ProjectionYZ();Transform3D
A Transform3D representing the projection onto the YZ plane.
Rotation Transform around given axis and origin by angle.
public static DiGi.Geometry.Spatial.Classes.Transform3D? Rotation(DiGi.Geometry.Spatial.Classes.Point3D? origin, DiGi.Geometry.Spatial.Classes.Vector3D? axis, double angle);origin Point3D
Origin Point
axis Vector3D
Axis
angle System.Double
Angle
Rotation Transform3D around the axis.
public static DiGi.Geometry.Spatial.Classes.Transform3D? Rotation(DiGi.Geometry.Spatial.Classes.Vector3D? axis, double angle);axis Vector3D
rotation axis Vector3D
angle System.Double
Angle in radians
Transform3D
Transform3D
Gets Rotation Transform3D around the x-axis
public static DiGi.Geometry.Spatial.Classes.Transform3D RotationX(double angle);angle System.Double
Angle in radians
Transform3D
Transform3D
Gets Rotation Transform3D around the y-axis
public static DiGi.Geometry.Spatial.Classes.Transform3D RotationY(double angle);angle System.Double
Angle in radians
Transform3D
Transform3D
Creates a 3D rotation transformation matrix from Euler/Tait-Bryan angles (yaw, pitch, roll) in radians.
The rotation sequence applied is Yaw (around Z), then Pitch (around Y), then Roll (around X).
public static DiGi.Geometry.Spatial.Classes.Transform3D RotationYawPitchRoll(double yaw, double pitch, double roll);yaw System.Double
The rotation angle around the Z-axis in radians.
pitch System.Double
The rotation angle around the Y-axis in radians.
roll System.Double
The rotation angle around the X-axis in radians.
Transform3D
A new Transform3D representing the combined rotation transform.
Gets Rotation Transform3D around the z-axis
public static DiGi.Geometry.Spatial.Classes.Transform3D RotationZ(double angle);angle System.Double
Angle in radians
Transform3D
Transform3D
Creates a scaling transformation relative to a specified origin point.
public static DiGi.Geometry.Spatial.Classes.Transform3D? Scale(DiGi.Geometry.Spatial.Classes.Point3D? origin, double factor);origin Point3D
The Point3D representing the center of the scale operation.
factor System.Double
The double value used as the scaling factor.
Transform3D
A Transform3D object that performs the scaling, or null if the origin is null.
Creates a uniform scaling transformation matrix using the specified scale factor.
public static DiGi.Geometry.Spatial.Classes.Transform3D Scale(double factor);factor System.Double
The double value to use as the scale factor for all axes.
Transform3D
A Classes.Transform3D object representing the uniform scaling transformation.
Creates a scaling transformation matrix with specified factors for the X, Y, and Z axes.
public static DiGi.Geometry.Spatial.Classes.Transform3D Scale(double x, double y, double z);The scale factor for the X axis as a double.
The scale factor for the Y axis as a double.
The scale factor for the Z axis as a double.
Transform3D
A Transform3D representing the scaling transformation.
Creates a 3D shearing transformation matrix in the XY plane relative to the Z-axis.
public static DiGi.Geometry.Spatial.Classes.Transform3D ShearXY(double factorX, double factorY);factorX System.Double
The shearing factor along the X-axis relative to Z.
factorY System.Double
The shearing factor along the Y-axis relative to Z.
Transform3D
A new Transform3D representing the shearing transform.
Creates a translation transformation based on the specified Vector3D(Vector3D, bool).
public static DiGi.Geometry.Spatial.Classes.Transform3D? Translation(DiGi.Geometry.Spatial.Classes.Vector3D? vector3D);vector3D Vector3D
The Vector3D(Vector3D, bool) that defines the translation offset.
Transform3D
A Transform3D representing the translation, or null if the provided Vector3D(Vector3D, bool) is null.
Creates a translation transformation matrix based on the specified coordinates.
public static DiGi.Geometry.Spatial.Classes.Transform3D Translation(double x, double y, double z);The translation distance along the X axis as a double.
The translation distance along the Y axis as a double.
The translation distance along the Z axis as a double.
Transform3D
A Classes.Transform3D representing the translation transformation.
Creates a Transform3D with an unset matrix.
public static DiGi.Geometry.Spatial.Classes.Transform3D Unset();Transform3D
A Transform3D instance.
Zero Transform3D Diagonal = (0,0,0,1)
public static DiGi.Geometry.Spatial.Classes.Transform3D Zero();Transform3D
Transform3D
public static class ModifyInheritance System.Object → Modify
Adds a new Point3D to the specified list of nullable Point3D objects using the provided coordinates.
public static void Add(this System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, double x, double y, double z);point3Ds System.Collections.Generic.List<Point3D>
The List<Point3D?> to which the point will be added. If this list is null, no action is taken.
The double value representing the X coordinate of the point.
The double value representing the Y coordinate of the point.
The double value representing the Z coordinate of the point.
Orients the specified DiGi.Geometry.Spatial.Interfaces.IPolygonal3D to a target orientation, inverting it if necessary.
public static bool Orient(this DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? polygonal3D, DiGi.Geometry.Core.Enums.Orientation orientation, bool convexHull=true);polygonal3D DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonal3D instance to orient.
orientation Orientation
The target Orientation to achieve.
convexHull System.Boolean
A System.Boolean value indicating whether the convex hull should be used to determine the current orientation. Defaults to true.
System.Boolean
A System.Boolean value indicating whether the orientation of the DiGi.Geometry.Spatial.Interfaces.IPolygonal3D was changed.
public static class QueryInheritance System.Object → Query
Determines whether a specified Point3D is located above a Plane.
public static bool Above(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06);plane Plane
The Plane to check against.
point3D Point3D
The Point3D to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating whether the point is above the plane beyond the specified tolerance; otherwise, false.
Determines whether the specified DiGi.Geometry.Spatial.Interfaces.IPolygonal3D is above the Plane.
public static bool Above(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? polygonal3D, double tolerance=1E-06);plane Plane
The Plane to check against.
polygonal3D DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonal3D object to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance for the calculation.
System.Boolean
A System.Boolean value indicating whether all points of the DiGi.Geometry.Spatial.Interfaces.IPolygonal3D are above the Plane within the specified System.Double tolerance; otherwise, false.
Determines whether two Point3D? points are approximately equal based on a specified distance tolerance.
public static bool AlmostEquals(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, double tolerance=1E-06);point3D_1 Point3D
The first Point3D? point to compare.
point3D_2 Point3D
The second Point3D? point to compare.
tolerance System.Double
The System.Double distance tolerance used to determine equality.
System.Boolean
A System.Boolean value indicating whether the two points are approximately equal.
Determines whether two DiGi.Geometry.Spatial.Interfaces.ISegmentable3D objects are almost equal based on a specified tolerance.
public static bool AlmostEquals(this DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D_1, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D_2, double tolerance=1E-06);segmentable3D_1 DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The first DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to compare.
segmentable3D_2 DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The second DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to compare.
tolerance System.Double
A System.Double value representing the distance tolerance used for comparison.
System.Boolean
A System.Boolean value indicating whether the two objects are almost equal.
Calculates the average of a collection of Point3D objects.
public static DiGi.Geometry.Spatial.Classes.Point3D? Average(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds);point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> of Point3D objects to be averaged.
Point3D
A Point3D representing the average position, or null if the input collection is null or empty.
Calculates the average of a sequence of Vector3D objects.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Average(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Vector3D>? vector3Ds);vector3Ds System.Collections.Generic.IEnumerable<Vector3D>
The System.Collections.Generic.IEnumerable<> of vectors to average.
Vector3D
A Vector3D representing the average value, or null if the input sequence is null or empty.
Calculates an X-axis vector perpendicular to the specified Vector3D normal.
public static DiGi.Geometry.Spatial.Classes.Vector3D? AxisX(this DiGi.Geometry.Spatial.Classes.Vector3D? normal);normal Vector3D
The Vector3D normal vector used as a reference.
Vector3D
A Vector3D representing the calculated X-axis, or null if the provided Vector3D normal is null.
Calculates the X-axis vector based on a normal vector and a Y-axis vector.
public static DiGi.Geometry.Spatial.Classes.Vector3D? AxisX(this DiGi.Geometry.Spatial.Classes.Vector3D? normal, DiGi.Geometry.Spatial.Classes.Vector3D? axisY);normal Vector3D
The Vector3D? normal vector.
axisY Vector3D
The Vector3D? Y-axis vector.
Vector3D
A Vector3D? representing the unit X-axis vector, or null if either the normal or axisY is null.
Calculates the Y-axis vector based on the provided normal vector.
public static DiGi.Geometry.Spatial.Classes.Vector3D? AxisY(this DiGi.Geometry.Spatial.Classes.Vector3D? normal);normal Vector3D
The Vector3D? normal vector used as a basis for calculating the Y-axis.
Vector3D
A Vector3D? representing the Y-axis, or null if the provided normal is null.
Calculates the Y-axis vector by computing the cross product of the normal and the X-axis, then normalizing the result.
public static DiGi.Geometry.Spatial.Classes.Vector3D? AxisY(this DiGi.Geometry.Spatial.Classes.Vector3D? normal, DiGi.Geometry.Spatial.Classes.Vector3D? axisX);normal Vector3D
The Vector3D representing the normal vector.
axisX Vector3D
The Vector3D representing the X-axis vector.
Vector3D
A Vector3D representing the normalized Y-axis if both inputs are non-null and a valid unit vector can be derived; otherwise, null.
Calculates the centroid of a collection of Point3D points.
public static DiGi.Geometry.Spatial.Classes.Point3D? Centroid(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds);point3Ds System.Collections.Generic.IEnumerable<Point3D>
An IEnumerable<Point3D> containing the points to process.
Point3D
A Point3D? representing the centroid, or null if the input collection is null or empty.
Calculates the closest Point3D on a line defined by two points relative to a given point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, bool bounded);point3D Point3D
The target Point3D? for which the closest point is calculated.
point3D_1 Point3D
The first Point3D? defining the line.
point3D_2 Point3D
The second Point3D? defining the line.
bounded System.Boolean
A System.Boolean value indicating whether the result should be bounded to the segment between the two points.
Point3D
The closest Point3D? on the line, or null if any of the input points are null.
Calculates the closest Point3D on a line or line segment defined by two points to a given target point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, bool bounded_1, bool bounded_2);point3D Point3D
The target Point3D for which the closest point is calculated.
point3D_1 Point3D
The first Point3D? defining the line or segment.
point3D_2 Point3D
The second Point3D defining the line or segment.
bounded_1 System.Boolean
A System.Boolean indicating whether the result is bounded by the first point.
bounded_2 System.Boolean
A bool indicating whether the result is bounded by the second point.
Point3D
The closest Point3D on the line or segment, or null if any of the input points are null.
Calculates the closest point on an DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to a given Point3D.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D segmentable3D);point3D Point3D
The source Point3D for which the closest point is being calculated.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to find the closest point on.
Point3D
The closest Point3D found on the segmentable object, or null if no such point exists.
Calculates the closest point on an DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object from a given Point3D.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D, out double distance);point3D Point3D
The source Point3D to find the closest point from.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object containing segments to evaluate.
distance System.Double
When this method returns, contains the distance between the source Point3D and the closest point found; otherwise, System.Double.NaN.
Point3D
The closest Point3D on the segments of the DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object, or null if no point could be determined.
Finds the closest Point3D in a collection of points to a specified source point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, out double distance);point3D Point3D
The source Point3D used as the reference for distance calculations.
point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> of Point3D objects to search through.
distance System.Double
When this method returns, contains the minimum System.Double distance between the source point and the closest point found; otherwise, System.Double.NaN.
Point3D
The closest Point3D from the collection, or null if the source point is null, the collection is null, or no points are available.
Calculates the closest point among a collection of 3D segments to a given 3D point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Segment3D>? segment3Ds);point3D Point3D
The Point3D source point.
segment3Ds System.Collections.Generic.IEnumerable<Segment3D>
An System.Collections.Generic.IEnumerable<> of Segment3D objects to evaluate.
Point3D
The closest Point3D found on the segments, or null if the source point or the collection is null.
Calculates the closest point on a collection of 3D segments relative to a given 3D point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Segment3D>? segment3Ds, out double distance);point3D Point3D
The source Point3D point.
segment3Ds System.Collections.Generic.IEnumerable<Segment3D>
An System.Collections.Generic.IEnumerable<> of Segment3D segments to evaluate.
distance System.Double
When this method returns, contains the distance between the source Point3D and the closest point found; otherwise, System.Double.NaN.
Point3D
The closest Point3D found among the provided segments, or null if no point is found or input parameters are null.
Calculates the closest point on a collection of polygonal faces to a given point.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint<TPolygonalFace3D>(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, System.Collections.Generic.IEnumerable<TPolygonalFace3D> polygonalFace3Ds)
where TPolygonalFace3D : DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D;TPolygonalFace3D
The type of the polygonal face, which must implement DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D.
point3D Point3D
The source Point3D? point.
polygonalFace3Ds System.Collections.Generic.IEnumerable<TPolygonalFace3D>
An System.Collections.Generic.IEnumerable<> of polygonal faces to evaluate.
Point3D
The closest Point3D? found on the provided polygonal faces, or null if the input point or collection is null.
Query.ClosestPoint<TPolygonalFace3D>(this Point3D, IEnumerable<TPolygonalFace3D>, TPolygonalFace3D, double, double) Method
Calculates the closest point to a given point from a collection of polygonal faces.
public static DiGi.Geometry.Spatial.Classes.Point3D? ClosestPoint<TPolygonalFace3D>(this DiGi.Geometry.Spatial.Classes.Point3D? point3D, System.Collections.Generic.IEnumerable<TPolygonalFace3D> polygonalFace3Ds, out TPolygonalFace3D? closestPolygonalFace3D, out double distance, double tolerance=1E-06)
where TPolygonalFace3D : DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D;TPolygonalFace3D
The type of the polygonal face, which must implement DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D.
point3D Point3D
The source Point3D? from which to find the closest point.
polygonalFace3Ds System.Collections.Generic.IEnumerable<TPolygonalFace3D>
An System.Collections.Generic.IEnumerable<> of polygonal faces to evaluate.
closestPolygonalFace3D TPolygonalFace3D
When this method returns, contains the TPolygonalFace3D? that is closest to the source point.
distance System.Double
When this method returns, contains the System.Double distance between the source point and the closest point found.
tolerance System.Double
The System.Double tolerance used for calculations.
Point3D
The closest Point3D? found among all provided polygonal faces, or null if no closest point is found or the input point or collection is null.
Determines whether three 3D points are collinear within a specified angular tolerance.
public static bool Collinear(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Point3D? point3D_3, double tolerance=0.0349066);point3D_1 Point3D
The first Point3D? point.
point3D_2 Point3D
The second Point3D? point, acting as the vertex for the angle calculation.
point3D_3 Point3D
The third Point3D? point.
tolerance System.Double
A System.Double value representing the angular tolerance used to determine collinearity.
System.Boolean
A System.Boolean indicating whether the points are collinear; returns false if any of the provided points are null.
Determines whether a collection of Point3D points are collinear within a specified tolerance.
public static bool Collinear(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D objects to evaluate.
tolerance System.Double
The System.Double value representing the distance tolerance for collinearity.
System.Boolean
A System.Boolean value indicating whether the points are collinear. Returns true if there are fewer than three points; otherwise, returns false if the collection is null or the points are not collinear.
Converts a Plane and a BoundingBox2D into a Rectangle3D.
public static DiGi.Geometry.Spatial.Classes.Rectangle3D? Convert(DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.BoundingBox2D? boundingBox2D);plane Plane
The Plane to use for the conversion.
boundingBox2D BoundingBox2D
The BoundingBox2D to use for the conversion.
Rectangle3D
A Rectangle3D if both parameters are valid; otherwise, null.
Converts an DiGi.Geometry.Spatial.Interfaces.IPlanar object to an DiGi.Geometry.Planar.Interfaces.IGeometry2D.
public static DiGi.Geometry.Planar.Interfaces.IGeometry2D? Convert(DiGi.Geometry.Spatial.Interfaces.IPlanar? planar);planar DiGi.Geometry.Spatial.Interfaces.IPlanar
The DiGi.Geometry.Spatial.Interfaces.IPlanar instance to convert.
DiGi.Geometry.Planar.Interfaces.IGeometry2D
An DiGi.Geometry.Planar.Interfaces.IGeometry2D representation if the conversion is successful; otherwise, null.
Converts a Ellipse2D to an Ellipse3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Ellipse3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Ellipse2D? ellipse2D);plane Plane
The Plane used for the conversion.
ellipse2D Ellipse2D
The Ellipse2D to convert.
Ellipse3D
An Ellipse3D if both the Plane and Ellipse2D are not null; otherwise, null.
Converts a Line2D to a Line3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Line3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Line2D? line2D);plane Plane
The Plane used for the conversion.
line2D Line2D
The Line2D instance to convert.
Line3D
A Line3D representing the converted line, or null if the Plane or Line2D is null, or if conversion of the origin or direction fails.
Converts a Point2D to a Point3D based on the coordinate system of the provided Plane.
public static DiGi.Geometry.Spatial.Classes.Point3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Point2D? point2D);plane Plane
The Plane used as the reference for the conversion.
point2D Point2D
The Point2D to convert.
Point3D
A Point3D representing the 2D point in 3D space, or null if the Plane, the Point2D, or the plane's axes are null.
Converts a Polygon2D to a Polygon3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Polygon3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Polygon2D? polygon2D);plane Plane
The Plane used for the conversion.
polygon2D Polygon2D
The Polygon2D instance to convert.
Polygon3D
A Polygon3D instance if both the Plane and Polygon2D are not null; otherwise, null.
Converts a PolygonalFace2D to a PolygonalFace3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.PolygonalFace3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.PolygonalFace2D? polygonalFace2D);plane Plane
The Plane used for the conversion.
polygonalFace2D PolygonalFace2D
The PolygonalFace2D instance to convert.
PolygonalFace3D
A PolygonalFace3D instance if both the Plane and PolygonalFace2D are not null; otherwise, null.
Converts a Polyline2D to a Polyline3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Polyline3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Polyline2D? polyline2D);plane Plane
The Plane used for the conversion.
polyline2D Polyline2D
The Polyline2D to convert.
Polyline3D
A Polyline3D resulting from the conversion, or null if the Plane or Polyline2D is null.
Converts a Ray2D to a Ray3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Ray3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Ray2D? ray2D);plane Plane
The Plane used for the conversion.
ray2D Ray2D
The Ray2D to convert.
Ray3D
A Ray3D if the conversion is successful; otherwise, null.
Converts a Rectangle2D to a Rectangle3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Rectangle3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Rectangle2D rectangle2D);plane Plane
The Plane used for the conversion.
rectangle2D Rectangle2D
The Rectangle2D to convert.
Rectangle3D
A Rectangle3D if both parameters are not null; otherwise, null.
Converts a Segment2D to a Segment3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Segment3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Segment2D? segment2D);plane Plane
The Plane used for conversion.
segment2D Segment2D
The Segment2D to convert.
Segment3D
A Segment3D if the conversion is successful; otherwise, null.
Converts a Triangle2D to a Triangle3D using the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Triangle3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Triangle2D? triangle2D);plane Plane
The Plane used for the conversion.
triangle2D Triangle2D
The Triangle2D to convert.
Triangle3D
A Triangle3D if the conversion is successful; otherwise, null.
Converts a Vector2D to a Vector3D based on the coordinate system of the provided Plane.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Classes.Vector2D? vector2D);plane Plane
The Plane used as the reference for the conversion.
vector2D Vector2D
The Vector2D to convert.
Vector3D
A Vector3D representing the converted vector, or null if the Plane, the Vector2D, or any of the plane's axes are null.
Converts a 2D geometry object to a 3D geometry object based on the specified plane.
public static DiGi.Geometry.Spatial.Interfaces.IGeometry3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Interfaces.IGeometry2D? geometry2D);plane Plane
The Plane used as the reference for the conversion.
geometry2D DiGi.Geometry.Planar.Interfaces.IGeometry2D
The DiGi.Geometry.Planar.Interfaces.IGeometry2D instance to be converted.
DiGi.Geometry.Spatial.Interfaces.IGeometry3D
An DiGi.Geometry.Spatial.Interfaces.IGeometry3D object if the conversion is successful; otherwise, null if either the Plane or DiGi.Geometry.Planar.Interfaces.IGeometry2D is null.
Converts a 2D polygonal object to a 3D polygonal object based on the specified plane.
public static DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Interfaces.IPolygonal2D? polygonal2D);plane Plane
The Plane used as the reference for the conversion.
polygonal2D IPolygonal2D
The IPolygonal2D object to be converted.
DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
An DiGi.Geometry.Spatial.Interfaces.IPolygonal3D representation of the 2D polygonal shape, or null if the Plane or IPolygonal2D is null.
Converts a 2D polygonal face to a 3D polygonal face using the specified plane.
public static DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Interfaces.IPolygonalFace2D? polygonalFace3D);plane Plane
The Plane used for the conversion.
polygonalFace3D IPolygonalFace2D
The IPolygonalFace2D to convert.
DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
An DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D if the conversion is successful; otherwise, null.
Converts a Line3D to a Line2D relative to the specified Plane.
public static DiGi.Geometry.Planar.Classes.Line2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Line3D? line3D);plane Plane
The Plane used for the conversion.
line3D Line3D
The Line3D to convert.
Line2D
A Line2D representing the converted line, or null if the plane, the line, or any of its components cannot be converted.
Converts a Point3D to a Point2D relative to the specified Plane.
public static DiGi.Geometry.Planar.Classes.Point2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D);plane Plane
The Plane used as the reference for conversion.
point3D Point3D
The Point3D to be converted.
Point2D
A Point2D representing the point's coordinates on the plane, or null if the Plane, the Point3D, or any required plane components are null.
Converts a Polygon3D to a Polygon2D using the specified Plane.
public static DiGi.Geometry.Planar.Classes.Polygon2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Polygon3D? polygon3D);plane Plane
The Plane used to project the 3D polygon into 2D space.
polygon3D Polygon3D
The Polygon3D object to convert.
Polygon2D
A Polygon2D representing the converted polygon, or null if the plane, the 3D polygon, or its points are null.
Converts a PolygonalFace3D to a PolygonalFace2D using the specified Plane.
public static DiGi.Geometry.Planar.Classes.PolygonalFace2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.PolygonalFace3D? polygonalFace3D);plane Plane
The Plane used for the conversion.
polygonalFace3D PolygonalFace3D
The PolygonalFace3D to convert.
PolygonalFace2D
A PolygonalFace2D if the conversion is successful; otherwise, null.
Converts a Ray3D to a Ray2D relative to the specified Plane.
public static DiGi.Geometry.Planar.Classes.Ray2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Ray3D? ray3D);plane Plane
The Plane used for the conversion.
ray3D Ray3D
The Ray3D to convert.
Ray2D
A Ray2D if the conversion is successful; otherwise, null.
Converts a Rectangle3D to an IPolygonal2D relative to the specified Plane.
public static DiGi.Geometry.Planar.Interfaces.IPolygonal2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Rectangle3D? rectangle3D, double tolerance=1E-06);plane Plane
The Plane used for the conversion.
rectangle3D Rectangle3D
The Rectangle3D to convert.
tolerance System.Double
A System.Double value representing the distance tolerance.
IPolygonal2D
An IPolygonal2D if the conversion is successful; otherwise, null.
Converts a Segment3D to a Segment2D using the specified Plane.
public static DiGi.Geometry.Planar.Classes.Segment2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D);plane Plane
The Plane used for the conversion.
segment3D Segment3D
The Segment3D to convert.
Segment2D
A Segment2D if the conversion is successful; otherwise, null.
Converts a Triangle3D to a Triangle2D using the specified Plane.
public static DiGi.Geometry.Planar.Classes.Triangle2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Triangle3D? triangle3D);plane Plane
The Plane used for the conversion.
triangle3D Triangle3D
The Triangle3D to convert.
Triangle2D
A Triangle2D representing the projected triangle, or null if the Plane, the Triangle3D, or any of its points are null or cannot be converted.
Converts a Vector3D to a Vector2D based on the coordinate system of the specified Plane.
public static DiGi.Geometry.Planar.Classes.Vector2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D);plane Plane
The Plane used as the reference for the conversion.
vector3D Vector3D
The Vector3D to be converted.
Vector2D
A Vector2D representing the projection of the Vector3D onto the plane's axes, or null if the Plane, Vector3D, or any of the plane's axes are null.
Converts a 3D polygonal object to a 2D polygonal object based on a specified Plane and tolerance.
public static DiGi.Geometry.Planar.Interfaces.IPolygonal2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? polygonal3D, double tolerance=1E-06);plane Plane
The Plane used for the projection.
polygonal3D DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonal3D object to be converted.
tolerance System.Double
The System.Double tolerance value used during conversion.
IPolygonal2D
An IPolygonal2D representation of the 3D polygon on the plane, or null if either the Plane or the DiGi.Geometry.Spatial.Interfaces.IPolygonal3D is null.
Converts a 3D polygonal face to a 2D polygonal face using the specified plane.
public static DiGi.Geometry.Planar.Interfaces.IPolygonalFace2D? Convert(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D);plane Plane
The Plane used for the conversion.
polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D to be converted.
IPolygonalFace2D
An IPolygonalFace2D if the conversion is successful; otherwise, null.
Converts a given DiGi.Geometry.Spatial.Interfaces.IGeometry3D instance into a list of TGeometry3D instances.
public static System.Collections.Generic.List<TGeometry3D>? Convert<TGeometry3D>(DiGi.Geometry.Spatial.Interfaces.IGeometry3D? geometry3D)
where TGeometry3D : DiGi.Geometry.Spatial.Interfaces.IGeometry3D;TGeometry3D
The target type that implements the DiGi.Geometry.Spatial.Interfaces.IGeometry3D interface.
geometry3D DiGi.Geometry.Spatial.Interfaces.IGeometry3D
The source DiGi.Geometry.Spatial.Interfaces.IGeometry3D object to convert.
System.Collections.Generic.List<TGeometry3D>
A System.Collections.Generic.List<> containing the converted geometry, or null if the provided DiGi.Geometry.Spatial.Interfaces.IGeometry3D is null.
Determines whether two DiGi.Geometry.Spatial.Interfaces.IPlanar objects are coplanar within a specified tolerance.
public static bool Coplanar(this DiGi.Geometry.Spatial.Interfaces.IPlanar? planar_1, DiGi.Geometry.Spatial.Interfaces.IPlanar? planar_2, double tolerance=1E-06);planar_1 DiGi.Geometry.Spatial.Interfaces.IPlanar
The first DiGi.Geometry.Spatial.Interfaces.IPlanar object to evaluate.
planar_2 DiGi.Geometry.Spatial.Interfaces.IPlanar
The second DiGi.Geometry.Spatial.Interfaces.IPlanar object to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance for coplanarity.
System.Boolean
A System.Boolean value indicating whether the two objects are coplanar.
Determines whether a collection of Point3D points are coplanar within a specified tolerance.
public static bool Coplanar(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of points to evaluate.
tolerance System.Double
The System.Double distance tolerance used to determine if the points lie on the same plane.
System.Boolean
A System.Boolean value indicating whether the points are coplanar; returns false if the collection is null.
Decomposes an affine 3D transformation matrix into its translation vector, pure rotation matrix, and scale factors.
public static bool Decompose(this DiGi.Geometry.Spatial.Classes.Transform3D? transform3D, out DiGi.Geometry.Spatial.Classes.Vector3D? translation, out DiGi.Geometry.Spatial.Classes.Transform3D? rotation, out DiGi.Geometry.Spatial.Classes.Vector3D? scale);transform3D Transform3D
The source Transform3D matrix to decompose.
translation Vector3D
When this method returns, contains the extracted translation Vector3D, or null if decomposition fails.
rotation Transform3D
When this method returns, contains the extracted pure rotation Transform3D matrix, or null if decomposition fails.
scale Vector3D
When this method returns, contains the extracted scale factors as a Vector3D, or null if decomposition fails.
System.Boolean
A System.Boolean value indicating whether the matrix was successfully decomposed.
Calculates the determinant of a 3x3 matrix formed by three Point3D points and a Vector3D normal vector.
public static double Determinant(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Point3D? point3D_3, DiGi.Geometry.Spatial.Classes.Vector3D? normal);point3D_1 Point3D
The first Point3D point.
point3D_2 Point3D
The second Point3D point.
point3D_3 Point3D
The third Point3D point.
normal Vector3D
The Vector3D normal vector.
System.Double
The calculated System.Double determinant, or System.Double.NaN if any of the provided parameters are null.
Calculates the determinant of a 3x3 matrix formed by three Vector3D vectors.
public static double Determinant(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, DiGi.Geometry.Spatial.Classes.Vector3D? normal);vector3D_1 Vector3D
The first Vector3D vector.
vector3D_2 Vector3D
The second Vector3D vector.
normal Vector3D
The third Vector3D vector.
System.Double
A System.Double representing the determinant, or System.Double.NaN if any of the input vectors are null.
Calculates the two extreme points from a collection of nullable Point3D objects.
public static void ExtremePoints(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, out DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, out DiGi.Geometry.Spatial.Classes.Point3D? point3D_2);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of nullable Point3D objects to evaluate.
point3D_1 Point3D
When this method returns, contains the first extreme Point3D found; otherwise, null.
point3D_2 Point3D
When this method returns, contains the second extreme Point3D found; otherwise, null.
Finds the two points within a collection that are furthest apart and calculates the distance between them.
public static void ExtremePoints(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, out DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, out DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, out double distance);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The IEnumerable<Point3D?> of Point3D objects to evaluate.
point3D_1 Point3D
When this method returns, contains the first point of the pair with the maximum distance, or null if the collection is null or contains fewer than two points.
point3D_2 Point3D
When this method returns, contains the second point of the pair with the maximum distance, or null if the collection is null or contains fewer than two points.
distance System.Double
When this method returns, contains the System.Double value representing the distance between the two extreme points, or System.Double.NaN if the collection is null or contains fewer than two points.
Determines whether a specified Point3D is within the range of the provided DiGi.Geometry.Spatial.Interfaces.IPlanar<> geometry, considering a given tolerance.
public static bool InRange<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T> planar, DiGi.Geometry.Spatial.Classes.Point3D point3D, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type of polygonal geometry, which must implement IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object to check against.
point3D Point3D
The Point3D point to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating whether the Point3D is within range; otherwise, false.
Determines whether a segmentable 3D entity is within the range of a planar entity.
public static bool InRange<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T> planar, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D segmentable3D, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type that implements IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object to check against.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating true if the segmentable 3D entity is within range; otherwise, false.
Determines whether a collection of Point3D objects are within the range of the specified DiGi.Geometry.Spatial.Interfaces.IPlanar<> object.
public static bool InRange<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T>? planar, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type of polygonal geometry, which must implement IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object to check against.
point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> containing the points to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating true if the points are within range; otherwise, false.
Determines whether a specified Point3D is inside the given DiGi.Geometry.Spatial.Interfaces.IPlanar<> object within a certain tolerance.
public static bool Inside<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T>? planar, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
The type of the polygonal 2D object, which must implement IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object to check against.
point3D Point3D
The Point3D point to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance for the operation.
System.Boolean
A System.Boolean value indicating whether the Point3D is inside the DiGi.Geometry.Spatial.Interfaces.IPlanar<> object; otherwise, false if either parameter is null.
Determines whether a specified DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object is located inside a specified DiGi.Geometry.Spatial.Interfaces.IPlanar<> planar region within a given tolerance.
public static bool Inside<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T>? planar, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
A type that implements IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> planar region to check against.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance for the operation.
System.Boolean
A System.Boolean value indicating true if the DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object is inside the planar region; otherwise, false.
Determines whether a collection of Point3D points are located on the plane of the specified DiGi.Geometry.Spatial.Interfaces.IPlanar<> object within a given tolerance.
public static bool Inside<T>(DiGi.Geometry.Spatial.Interfaces.IPlanar<T>? planar, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06)
where T : DiGi.Geometry.Planar.Interfaces.IPolygonal2D;T
A type that implements IPolygonal2D.
planar DiGi.Geometry.Spatial.Interfaces.IPlanar<T>
The DiGi.Geometry.Spatial.Interfaces.IPlanar<> object whose plane is being evaluated.
point3Ds System.Collections.Generic.IEnumerable<Point3D>
An System.Collections.Generic.IEnumerable<> containing the points to check.
tolerance System.Double
A System.Double value representing the distance tolerance for the operation.
System.Boolean
A System.Boolean value indicating true if all provided points are on the plane within the specified tolerance; otherwise, false.
Calculates the intersection point of two lines defined by their start and end points.
public static DiGi.Geometry.Spatial.Classes.Point3D? IntersectionPoint(DiGi.Geometry.Spatial.Classes.Point3D? point3D_1_Start, DiGi.Geometry.Spatial.Classes.Point3D? point3D_1_End, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2_Start, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2_End, double tolerance=1E-06);point3D_1_Start Point3D
The starting Point3D of the first line.
point3D_1_End Point3D
The ending Point3D of the first line.
point3D_2_Start Point3D
The starting Point3D of the second line.
point3D_2_End Point3D
The ending Point3D of the second line.
tolerance System.Double
The System.Double tolerance used to determine if an intersection exists.
Point3D
A Point3D representing the intersection point, or null if no intersection is found within the specified tolerance.
Intersection of tw lines represented by vector3D (direction) and Point3D (origin). Source: https://github\.com/arakis/Net3dBool/blob/39354914eba2f9d34aedd2a16a6528d50e19beec/src/Net3dBool/Line\.cs\#L46
public static DiGi.Geometry.Spatial.Classes.Point3D? IntersectionPoint(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, bool bounded, double tolerance=1E-06);point3D_1 Point3D
Origin point3D of first line
vector3D_1 Vector3D
Direction Vector3D of first line
point3D_2 Point3D
Origin point3D of second line
vector3D_2 Vector3D
Direction Vector3D of second line
bounded System.Boolean
Bounded means the intersection is limited to the line segments
tolerance System.Double
Tolerance
Determines whether the specified Polyhedron<TPolygonalFace3D> is fully closed (i.e., has no naked edges) within the given distance tolerance.
public static bool IsClosed<TPolygonalFace3D>(this DiGi.Geometry.Spatial.Classes.Polyhedron<TPolygonalFace3D>? polyhedron, double tolerance=1E-06)
where TPolygonalFace3D : DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D;TPolygonalFace3D
The type of the polygonal face, which must implement DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D.
polyhedron DiGi.Geometry.Spatial.Classes.Polyhedron<TPolygonalFace3D>
The Polyhedron<TPolygonalFace3D> to evaluate.
tolerance System.Double
The System.Double distance tolerance. Defaults to DiGi.Core.Constants.Tolerance.Distance.
System.Boolean
A System.Boolean value indicating whether the polyhedron is fully closed.
Returns the maximum of two Point3D? points.
public static DiGi.Geometry.Spatial.Classes.Point3D? Max(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2);point3D_1 Point3D
The first Point3D? point to compare.
point3D_2 Point3D
The second Point3D? point to compare.
Point3D
The maximum of the two Point3D? points, or null if either input is null.
Returns the maximum Point3D from the specified collection of nullable Point3D objects.
public static DiGi.Geometry.Spatial.Classes.Point3D? Max(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of nullable Point3D objects to evaluate.
Point3D
The maximum Point3D found in the collection, or null if the collection is null or empty.
Returns the maximum Point3D? from the specified collection of Point3D? objects and outputs the minimum Point3D?.
public static DiGi.Geometry.Spatial.Classes.Point3D? Max(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, out DiGi.Geometry.Spatial.Classes.Point3D? min);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The IEnumerable<Point3D?>? collection to evaluate.
min Point3D
When this method returns, contains the minimum Point3D? found in the collection, if any.
Point3D
The maximum Point3D found in the collection, or null if the collection is null or empty.
Returns the minimum of two nullable Point3D points.
public static DiGi.Geometry.Spatial.Classes.Point3D? Min(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2);point3D_1 Point3D
The first nullable Point3D point to compare.
point3D_2 Point3D
The second nullable Point3D point to compare.
Point3D
The minimum nullable Point3D point, or null if either point3D_1 or point3D_2 is null.
Returns the minimum Point3D from the specified collection of Point3D objects.
public static DiGi.Geometry.Spatial.Classes.Point3D? Min(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of Point3D objects to evaluate.
Point3D
The minimum Point3D found in the collection, or null if the collection is null or empty.
Calculates the minimum and maximum points from a collection of nullable Point3D objects.
public static DiGi.Geometry.Spatial.Classes.Point3D? Min(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D?>? point3Ds, out DiGi.Geometry.Spatial.Classes.Point3D? max);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> of nullable Point3D objects to evaluate.
max Point3D
When this method returns, contains the maximum Point3D found in the collection, or null if no valid points were found.
Point3D
The minimum Point3D found in the collection, or null if the collection is null or empty.
Calculates the normal vector of a Plane based on a collection of Point2D points.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Normal(this DiGi.Geometry.Spatial.Classes.Plane? plane, System.Collections.Generic.IEnumerable<DiGi.Geometry.Planar.Classes.Point2D>? point2Ds);plane Plane
The Plane instance.
point2Ds System.Collections.Generic.IEnumerable<Point2D>
An IEnumerable<Planar.Classes.Point2D> containing the points used to calculate the normal vector.
Vector3D
A Vector3D representing the normal vector, or null if the plane is null, the point collection is null, or there are fewer than three points.
Calculates the unit normal vector of a plane defined by three points.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Normal(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Point3D? point3D_3);point3D_1 Point3D
The first Point3D point.
point3D_2 Point3D
The second Point3D? point.
point3D_3 Point3D
The third Point3D? point.
Vector3D
A Vector3D? representing the unit normal vector, or null if any of the provided points are null or if the points are collinear.
Calculates the normal vector perpendicular to the two specified axes.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Normal(this DiGi.Geometry.Spatial.Classes.Vector3D? axisX, DiGi.Geometry.Spatial.Classes.Vector3D? axisY);axisX Vector3D
The first Vector3D? axis.
axisY Vector3D
The second Vector3D? axis.
Vector3D
A normalized Vector3D? representing the cross product of the two axes, or null if either Vector3D? parameter is null.
Calculates the normal vector of a plane defined by a collection of 3D points.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Normal(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Point3D>? point3Ds, double tolerance=1E-06);point3Ds System.Collections.Generic.IEnumerable<Point3D>
The System.Collections.Generic.IEnumerable<> collection of points used to determine the normal vector.
tolerance System.Double
The System.Double tolerance value used to check if the points are collinear.
Vector3D
A Vector3D representing the normal vector, or null if the collection is null, contains fewer than three points, or the points are collinear within the specified tolerance.
Determines whether a specified Point3D lies on the Plane within a given tolerance.
public static bool On(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06);plane Plane
The Plane to check.
point3D Point3D
The Point3D to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating whether the point is on the plane within the specified tolerance; otherwise, false if either the plane or point is null.
Determines whether a Segment3D lies on a Plane within a specified tolerance.
public static bool On(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D, double tolerance=1E-06);plane Plane
The Plane to check against.
segment3D Segment3D
The Segment3D to evaluate.
tolerance System.Double
A System.Double value representing the distance tolerance.
System.Boolean
A System.Boolean value indicating true if the segment is on the plane; otherwise, false.
Determines whether the specified Vector3D? lies on the Plane? within a given tolerance.
public static bool On(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, double tolerance=1E-06);plane Plane
The Plane to check.
vector3D Vector3D
The Vector3D? to evaluate.
tolerance System.Double
The System.Double tolerance value used for the distance calculation.
System.Boolean
A System.Boolean indicating whether the Vector3D? is on the Plane?.
Determines whether an DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object lies on a Plane within a specified tolerance.
public static bool On(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D, double tolerance=1E-06);plane Plane
The Plane to check against.
segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object to evaluate.
tolerance System.Double
The System.Double tolerance value used for the distance calculation.
System.Boolean
A System.Boolean indicating whether all points of the DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object are on the Plane.
Determines whether the specified Point3D is on any of the segments of the DiGi.Geometry.Spatial.Interfaces.ISegmentable3D object within a given tolerance.
public static bool On(this DiGi.Geometry.Spatial.Interfaces.ISegmentable3D? segmentable3D, DiGi.Geometry.Spatial.Classes.Point3D? point3D, double tolerance=1E-06);segmentable3D DiGi.Geometry.Spatial.Interfaces.ISegmentable3D
The DiGi.Geometry.Spatial.Interfaces.ISegmentable3D instance to check.
point3D Point3D
The Point3D point to evaluate.
tolerance System.Double
A System.Double value specifying the distance tolerance.
System.Boolean
A System.Boolean value indicating whether the Point3D is on any of the segments within the specified tolerance; otherwise, false.
Returns the opposite of the specified Side.
public static DiGi.Geometry.Core.Enums.Side Opposite(this DiGi.Geometry.Core.Enums.Side side);side Side
The Side value to invert.
Determines the orientation of a polygonal shape on a specified plane.
public static DiGi.Geometry.Core.Enums.Orientation Orientation(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Planar.Interfaces.IPolygonal2D? polygonal2D, bool convexHull=true);plane Plane
The Plane on which the orientation is calculated.
polygonal2D IPolygonal2D
The IPolygonal2D object whose orientation is to be determined.
convexHull System.Boolean
A System.Boolean value indicating whether to calculate the orientation based on the convex hull of the points.
Orientation
An Orientation value representing the orientation of the polygonal shape.
Determines the orientation of a collection of 2D points on a specified plane.
public static DiGi.Geometry.Core.Enums.Orientation Orientation(this DiGi.Geometry.Spatial.Classes.Plane? plane, System.Collections.Generic.IEnumerable<DiGi.Geometry.Planar.Classes.Point2D>? point2Ds, bool convexHull=true);plane Plane
The Plane used to convert 2D points into 3D space.
point2Ds System.Collections.Generic.IEnumerable<Point2D>
An System.Collections.Generic.IEnumerable<> containing the points to evaluate.
convexHull System.Boolean
A System.Boolean value indicating whether to compute the convex hull of the points before determining orientation. Defaults to true.
Orientation
The calculated Orientation, or Undefined if the plane is null, the point collection is empty, or there are fewer than three valid points.
Determines the orientation of three Point3D points relative to a specified Vector3D normal vector.
public static DiGi.Geometry.Core.Enums.Orientation Orientation(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, DiGi.Geometry.Spatial.Classes.Point3D? point3D_3, DiGi.Geometry.Spatial.Classes.Vector3D? normal);point3D_1 Point3D
The first Point3D? point.
point3D_2 Point3D
The second Point3D? point.
point3D_3 Point3D
The third Point3D? point.
normal Vector3D
The Vector3D? normal vector used to determine the orientation.
Orientation
An Orientation value indicating if the points are clockwise, counter-clockwise, collinear, or undefined.
Determines the orientation of two vectors relative to a normal vector in 3D space.
public static DiGi.Geometry.Core.Enums.Orientation Orientation(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, DiGi.Geometry.Spatial.Classes.Vector3D? normal);vector3D_1 Vector3D
The first Vector3D? vector.
vector3D_2 Vector3D
The second Vector3D? vector.
normal Vector3D
The normal Vector3D? vector used to determine the orientation.
Orientation
An Orientation value indicating whether the vectors are collinear, clockwise, or counter-clockwise.
Determines the orientation of the specified 3D polygonal object.
public static DiGi.Geometry.Core.Enums.Orientation Orientation(this DiGi.Geometry.Spatial.Interfaces.IPolygonal3D? polygonal3D, bool convexHull=true);polygonal3D DiGi.Geometry.Spatial.Interfaces.IPolygonal3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonal3D object to evaluate.
convexHull System.Boolean
A System.Boolean value indicating whether the convex hull should be used for orientation calculation. Defaults to true.
Orientation
An Orientation value representing the orientation of the polygonal object, or Undefined if the plane is not defined.
Determines whether two Vector3D vectors are parallel within a specified tolerance.
public static bool Parallel(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, double tolerance=1E-06);vector3D_1 Vector3D
The first Vector3D vector to evaluate.
vector3D_2 Vector3D
The second Vector3D vector to evaluate.
tolerance System.Double
A System.Double value representing the tolerance for determining if the vectors are parallel.
System.Boolean
A System.Boolean value indicating whether the two vectors are parallel; returns false if either vector is null.
Determines whether two planes are perpendicular within a specified tolerance.
public static bool Perpendicular(this DiGi.Geometry.Spatial.Classes.Plane? plane_1, DiGi.Geometry.Spatial.Classes.Plane? plane_2, double tolerance=1E-06);plane_1 Plane
The first Plane to evaluate.
plane_2 Plane
The second Plane to evaluate.
tolerance System.Double
A System.Double value representing the tolerance for the perpendicularity check.
System.Boolean
A System.Boolean value indicating whether the two planes are perpendicular.
Determines whether two Vector3D? vectors are perpendicular within a specified tolerance.
public static bool Perpendicular(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, double tolerance=1E-06);vector3D_1 Vector3D
The first Vector3D? vector.
vector3D_2 Vector3D
The second Vector3D? vector.
tolerance System.Double
The System.Double tolerance value used to determine if the vectors are perpendicular.
System.Boolean
A System.Boolean value indicating whether the two Vector3D? vectors are perpendicular.
Calculates a vector that is perpendicular to the specified Vector3D.
public static DiGi.Geometry.Spatial.Classes.Vector3D? PerpendicularVector(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D, double tolerance=1E-06);vector3D Vector3D
The Vector3D for which to find a perpendicular vector.
tolerance System.Double
A System.Double value used to determine the alignment of the input vector relative to world axes.
Vector3D
A Vector3D that is perpendicular to the input vector, or null if the input Vector3D is null.
Projects a Point3D onto a Plane.
public static DiGi.Geometry.Spatial.Classes.Point3D? Project(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Point3D? point3D);plane Plane
The Plane to project the point onto.
point3D Point3D
The Point3D to be projected.
Point3D
The projected Point3D on the plane, or null if either the plane or the point is null.
Projects the specified Vector3D onto the specified Plane.
public static DiGi.Geometry.Spatial.Classes.Vector3D? Project(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D);plane Plane
The Plane onto which the vector is projected.
vector3D Vector3D
The Vector3D to project.
Vector3D
A Vector3D representing the projection of the Vector3D on the Plane, or null if either the plane or the vector3D is null.
Projects the specified 3D geometry onto the plane.
public static T? Project<T>(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IGeometry3D? geometry3D, double tolerance=1E-06)
where T : DiGi.Geometry.Spatial.Interfaces.IGeometry3D;T
The type of the resulting projected geometry, which must implement DiGi.Geometry.Spatial.Interfaces.IGeometry3D.
plane Plane
The Plane onto which the geometry is projected.
geometry3D DiGi.Geometry.Spatial.Interfaces.IGeometry3D
The DiGi.Geometry.Spatial.Interfaces.IGeometry3D object to be projected.
tolerance System.Double
A System.Double value representing the distance tolerance for the projection operation.
T
The projected geometry of type <typeparam ref="T" />, or null if the projection fails or input parameters are null.
Determines whether two vectors are within the same half-space based on a specified tolerance.
public static bool SameHalf(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, double tolerance=0.0349066);vector3D_1 Vector3D
The first Vector3D? vector to compare.
vector3D_2 Vector3D
The second Vector3D? vector to compare.
tolerance System.Double
A System.Double value representing the tolerance for the angle comparison.
System.Boolean
A System.Boolean value indicating whether the vectors are in the same half; returns false if either vector is null.
Scales the specified Ray3D by a given factor.
public static DiGi.Geometry.Spatial.Classes.Ray3D? Scale(this DiGi.Geometry.Spatial.Classes.Ray3D? ray3D, double factor);ray3D Ray3D
The Ray3D instance to scale.
factor System.Double
A System.Double value representing the scaling factor.
Ray3D
A new scaled Ray3D instance, or null if the input ray is null, the factor is System.Double.NaN, or the ray's origin or direction are null.
Scales a collection of Ray3D objects by the specified factor.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Ray3D>? Scale(this System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Classes.Ray3D>? ray3Ds, double factor);ray3Ds System.Collections.Generic.IEnumerable<Ray3D>
The System.Collections.Generic.IEnumerable<> of Ray3D objects to scale.
factor System.Double
The System.Double factor by which each ray is scaled.
System.Collections.Generic.List<Ray3D>
A System.Collections.Generic.List<> containing the scaled Ray3D objects, or null if the input collection is null.
Retrieves a list of Segment3D objects from the specified DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D, optionally including external and internal edges.
public static System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Segment3D>? Segment3Ds(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, bool external=true, bool @internal=true);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to extract segments from.
external System.Boolean
A System.Boolean value indicating whether the external edge segments should be included in the result. Defaults to true.
internal System.Boolean
A System.Boolean value indicating whether the internal edge segments should be included in the result. Defaults to true.
System.Collections.Generic.List<Segment3D>
A System.Collections.Generic.List<> containing the extracted segments, or null if the provided DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D is null.
Determines whether two Point3D points are similar within a specified tolerance.
public static bool Similar(this DiGi.Geometry.Spatial.Classes.Point3D? point3D_1, DiGi.Geometry.Spatial.Classes.Point3D? point3D_2, double tolerance=1E-06);point3D_1 Point3D
The first Point3D? point to compare.
point3D_2 Point3D
The second Point3D? point to compare.
tolerance System.Double
The System.Double tolerance value used for the comparison.
System.Boolean
A System.Boolean value indicating whether the two points are similar.
Determines whether two Segment3D segments are similar, meaning they are either almost equal or one is the reverse of the other within a specified tolerance.
public static bool Similar(this DiGi.Geometry.Spatial.Classes.Segment3D? segment3D_1, DiGi.Geometry.Spatial.Classes.Segment3D? segment3D_2, double tolerance=1E-06);segment3D_1 Segment3D
The first Segment3D segment to compare.
segment3D_2 Segment3D
The second Segment3D segment to compare.
tolerance System.Double
The System.Double tolerance value used for the comparison.
System.Boolean
A System.Boolean value indicating whether the two segments are similar.
Determines whether two Vector3D objects are similar, meaning they are either almost equal or one is the inverse of the other within a specified tolerance.
public static bool Similar(this DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_1, DiGi.Geometry.Spatial.Classes.Vector3D? vector3D_2, double tolerance=1E-06);vector3D_1 Vector3D
The first Vector3D object to compare.
vector3D_2 Vector3D
The second Vector3D object to compare.
tolerance System.Double
The System.Double tolerance value used for the comparison.
System.Boolean
A System.Boolean value indicating whether the two vectors are similar.
Query.TryGetConnectedPolygonalFace3Ds(this IPolygonalFace3D, IEnumerable<IPolygonalFace3D>, List<IPolygonalFace3D>, List<IPolygonalFace3D>, double) Method
Attempts to separate a collection of polygonal faces into those connected and disconnected from a specified source polygonal face based on a distance tolerance.
public static bool TryGetConnectedPolygonalFace3Ds(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds_Connected, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds_Disconnected, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The source DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D object.
polygonalFace3Ds System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
An System.Collections.Generic.IEnumerable<> of DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D objects to be evaluated.
polygonalFace3Ds_Connected System.Collections.Generic.List<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
When this method returns, contains a System.Collections.Generic.List<> of DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D objects that are connected to the source face; otherwise, null.
polygonalFace3Ds_Disconnected System.Collections.Generic.List<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
When this method returns, contains a System.Collections.Generic.List<> of DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D objects that are not connected to the source face; otherwise, null.
tolerance System.Double
The distance System.Double tolerance used to determine connectivity.
System.Boolean
A System.Boolean value indicating whether the operation was successful.
Attempts to split a 3D polygonal face using the specified plane.
public static bool TrySplit(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.PolygonalFace3D>? result, double tolerance=1E-06);plane Plane
The Plane used as the splitting surface.
polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to be split.
result System.Collections.Generic.List<PolygonalFace3D>
When this method returns, contains a System.Collections.Generic.List<> of the resulting faces if the operation succeeded; otherwise, null.
tolerance System.Double
The System.Double distance tolerance used for intersection calculations.
System.Boolean
A System.Boolean value indicating whether the split was successful.
Attempts to split a polyhedron using a specified plane.
public static bool TrySplit(this DiGi.Geometry.Spatial.Classes.Plane? plane, DiGi.Geometry.Spatial.Interfaces.IPolyhedron? polyhedron, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Polyhedron>? polyhedrons, double tolerance=1E-06);plane Plane
The Plane used to perform the split operation.
polyhedron DiGi.Geometry.Spatial.Interfaces.IPolyhedron
The DiGi.Geometry.Spatial.Interfaces.IPolyhedron that is to be split.
polyhedrons System.Collections.Generic.List<Polyhedron>
When this method returns, contains a System.Collections.Generic.List<> of the resulting polyhedrons if the operation succeeded; otherwise, null.
tolerance System.Double
A System.Double value representing the distance tolerance for intersection calculations.
System.Boolean
A System.Boolean value indicating whether the polyhedron was successfully split.
Query.TrySplit(this IPolygonalFace3D, IEnumerable<IPolygonalFace3D>, List<PolygonalFace3D>, double) Method
Attempts to split the specified polygonal face using a collection of other polygonal faces.
public static bool TrySplit(this DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D? polygonalFace3D, System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>? polygonalFace3Ds, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.PolygonalFace3D>? result, double tolerance=1E-06);polygonalFace3D DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D
The DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instance to be split.
polygonalFace3Ds System.Collections.Generic.IEnumerable<DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D>
A collection of DiGi.Geometry.Spatial.Interfaces.IPolygonalFace3D instances used as splitting boundaries.
result System.Collections.Generic.List<PolygonalFace3D>
When this method returns, contains a System.Collections.Generic.List<> of the resulting split faces if successful; otherwise, null.
tolerance System.Double
The double value representing the distance tolerance for intersection calculations.
System.Boolean
True if the polygonal face was successfully split; otherwise, false.
Attempts to split the specified polyhedron using a collection of other polyhedrons.
public static bool TrySplit<TPolyhedron>(this DiGi.Geometry.Spatial.Interfaces.IPolyhedron? polyhedron, System.Collections.Generic.IEnumerable<TPolyhedron>? polyhedrons, out DiGi.Geometry.Spatial.Classes.Polyhedron? result, double tolerance=1E-06)
where TPolyhedron : DiGi.Geometry.Spatial.Interfaces.IPolyhedron;TPolyhedron
The type of polyhedrons in the collection, which must implement DiGi.Geometry.Spatial.Interfaces.IPolyhedron.
polyhedron DiGi.Geometry.Spatial.Interfaces.IPolyhedron
The DiGi.Geometry.Spatial.Interfaces.IPolyhedron to be split.
polyhedrons System.Collections.Generic.IEnumerable<TPolyhedron>
An System.Collections.Generic.IEnumerable<> of polyhedrons used for the splitting process.
result Polyhedron
When this method returns, contains the resulting Polyhedron if the operation succeeded; otherwise, null.
tolerance System.Double
A System.Double value specifying the distance tolerance.
System.Boolean
A System.Boolean value indicating whether the split was successful.
Attempts to split a collection of polyhedrons based on a specified tolerance.
public static bool TrySplit<TPolyhedron>(this System.Collections.Generic.IEnumerable<TPolyhedron> polyhedrons, out System.Collections.Generic.List<DiGi.Geometry.Spatial.Classes.Polyhedron>? result, double tolerance=1E-06)
where TPolyhedron : DiGi.Geometry.Spatial.Interfaces.IPolyhedron;TPolyhedron
The type of polyhedron, which must implement DiGi.Geometry.Spatial.Interfaces.IPolyhedron.
polyhedrons System.Collections.Generic.IEnumerable<TPolyhedron>
The System.Collections.Generic.IEnumerable<> of polyhedrons to split.
result System.Collections.Generic.List<Polyhedron>
When this method returns, contains the System.Collections.Generic.List<> of resulting polyhedrons if the operation succeeded; otherwise, null.
tolerance System.Double
The System.Double tolerance value used to determine splitting boundaries.
System.Boolean
A System.Boolean value indicating whether the split was successful.