Table of Contents

Class GeoSolid3

Namespace
GeometryHelper.Geometry
Assembly
GeometryHelper.dll

Whether a solid touches another shape.

public sealed class GeoSolid3 : IEquatable<GeoSolid3>
Inheritance
GeoSolid3
Implements
Inherited Members
Extension Methods

Constructors

GeoSolid3(params GeoFace3[])

Initializes a solid directly from face arguments.

GeoSolid3(IEnumerable<GeoFace3>)

Initializes a solid from its bounding faces.

GeoSolid3(IEnumerable<GeoFace3>, IEnumerable<GeoSolid3>)

Initializes a solid from its bounding faces and the solids carved out of it.

Properties

Centroid

Gets the centroid of the solid, ignoring the openings.

Faces

Gets the read-only list of faces bounding the solid.

NetVolume

Gets the volume left after subtracting every opening, reading each opening whole.

Openings

Gets the read-only list of solids carved out of this one.

SurfaceArea

Gets the total area of the bounding faces, without counting the openings.

Volume

Gets the gross volume enclosed by the bounding faces, ignoring the openings.

Methods

BuildIndex()

Builds a spatial index over the surface of this body, for asking it many questions.

BuildIndex(Tolerance)

Builds a spatial index over the surface of this body, within a tolerance.

Clone()

Creates a copy of this solid, faces and openings included.

CollidesWith(GeoAabb3)

Checks whether this solid touches an axis-aligned box, using the default tolerance.

CollidesWith(GeoAabb3, Tolerance)

Checks whether this solid touches an axis-aligned box, within a tolerance.

CollidesWith(GeoArc3)

Checks whether this solid touches an arc, using the default tolerance.

CollidesWith(GeoArc3, Tolerance)

Checks whether this solid touches an arc, within a tolerance.

CollidesWith(GeoCircle3)

Checks whether this solid touches a circle, using the default tolerance.

CollidesWith(GeoCircle3, Tolerance)

Checks whether this solid touches a circle, within a tolerance.

CollidesWith(GeoEdge3)

Checks whether this solid touches an edge.

CollidesWith(GeoEdge3, Tolerance)

Checks whether this solid touches an edge, within a tolerance.

CollidesWith(GeoFace3)

Determines whether this solid touches or overlaps a face.

CollidesWith(GeoFace3, Tolerance)

Determines whether this solid touches or overlaps a face, within a tolerance.

CollidesWith(GeoLine3)

Determines whether this solid touches or overlaps a line segment.

CollidesWith(GeoLine3, Tolerance)

Determines whether this solid touches or overlaps a line segment, within a tolerance.

CollidesWith(GeoObb3)

Determines whether this solid touches or overlaps an oriented box.

CollidesWith(GeoObb3, Tolerance)

Determines whether this solid touches or overlaps an oriented box, within a tolerance.

CollidesWith(GeoPolygon3)

Determines whether this solid touches or overlaps a polygon.

CollidesWith(GeoPolygon3, Tolerance)

Determines whether this solid touches or overlaps a polygon, within a tolerance.

CollidesWith(GeoPolygonArc3)

Checks whether this solid touches a curved loop.

CollidesWith(GeoPolygonArc3, Tolerance)

Checks whether this solid touches a curved loop, within a tolerance.

CollidesWith(GeoPolyline3)

Determines whether this solid touches or overlaps a polyline.

CollidesWith(GeoPolyline3, Tolerance)

Determines whether this solid touches or overlaps a polyline, within a tolerance.

CollidesWith(GeoPolylineArc3)

Checks whether this solid touches a curved chain.

CollidesWith(GeoPolylineArc3, Tolerance)

Checks whether this solid touches a curved chain, within a tolerance.

CollidesWith(GeoRay3)

Determines whether this solid is reached by a ray.

CollidesWith(GeoRay3, Tolerance)

Determines whether this solid is reached by a ray, within a tolerance.

CollidesWith(GeoSolid3)

Determines whether this solid touches or overlaps another solid.

CollidesWith(GeoSolid3, Tolerance)

Determines whether this solid touches or overlaps another solid, within a tolerance.

Contains(GeoPoint3)

Checks whether this solid holds a point, using the default tolerance.

Contains(GeoPoint3, Tolerance)

Checks whether this solid holds a point, within a tolerance.

Cylinder(GeoPoint3, GeoPoint3, double, int)

Makes a round bar or a bolt between two points, using the default tolerance.

Cylinder(GeoPoint3, GeoPoint3, double, int, Tolerance)

Makes a round bar or a bolt between two points: a prism on a regular polygon with its corners on the circle.

DistanceTo(GeoAabb3)

Calculates the shortest distance from this solid to an axis-aligned box.

DistanceTo(GeoAabb3, Tolerance)

Calculates the shortest distance from this solid to an axis-aligned box, within a tolerance.

DistanceTo(GeoLine3)

Calculates the shortest distance from this solid to a line segment.

DistanceTo(GeoLine3, Tolerance)

Calculates the shortest distance from this solid to a line segment, within a tolerance.

DistanceTo(GeoObb3)

Calculates the shortest distance from this solid to an oriented box.

DistanceTo(GeoObb3, Tolerance)

Calculates the shortest distance from this solid to an oriented box, within a tolerance.

DistanceTo(GeoPlane3)

Calculates the shortest distance from this solid to a plane.

DistanceTo(GeoPlane3, Tolerance)

Calculates the shortest distance from this solid to a plane, within a tolerance.

DistanceTo(GeoPoint3)

Calculates the shortest distance from this solid to a point. A point inside is at distance zero.

DistanceTo(GeoPoint3, Tolerance)

Calculates the shortest distance from this solid to a point, within a tolerance.

DistanceTo(GeoPolygon3)

Calculates the shortest distance from this solid to a polygon.

DistanceTo(GeoPolygon3, Tolerance)

Calculates the shortest distance from this solid to a polygon, within a tolerance.

DistanceTo(GeoPolyline3)

Calculates the shortest distance from this solid to a polyline.

DistanceTo(GeoPolyline3, Tolerance)

Calculates the shortest distance from this solid to a polyline, within a tolerance.

DistanceTo(GeoRay3)

Calculates the shortest distance from this solid to a ray.

DistanceTo(GeoRay3, Tolerance)

Calculates the shortest distance from this solid to a ray, within a tolerance.

DistanceTo(GeoSolid3)

Calculates the shortest distance from this solid to another solid.

DistanceTo(GeoSolid3, Tolerance)

Calculates the shortest distance from this solid to another solid, within a tolerance.

DistanceTo(GeoTriangle3)

Calculates the shortest distance from this solid to a triangle.

DistanceTo(GeoTriangle3, Tolerance)

Calculates the shortest distance from this solid to a triangle, within a tolerance.

Equals(GeoSolid3)

Determines whether another solid has exactly the same faces and openings, in the same order.

Equals(object)

Determines whether the specified object is equal to the current solid.

Extrude(GeoFace2, GeoCoordinateSystem3, double)

Makes the body a face drawn in a plane sweeps out moving straight out of it, using the default tolerance.

Extrude(GeoFace2, GeoCoordinateSystem3, double, Tolerance)

Makes the body a face drawn in a plane sweeps out moving straight out of it: each hole of the face runs through the body.

Extrude(GeoFace3, GeoVector3)

Makes the body a flat face sweeps out moving along a vector, using the default tolerance.

Extrude(GeoFace3, GeoVector3, Tolerance)

Makes the body a flat face sweeps out moving along a vector: each hole of the face runs through the body as a shaft.

Extrude(GeoPolygon2, GeoCoordinateSystem3, double)

Makes the body a profile drawn in a plane sweeps out moving straight out of it, using the default tolerance.

Extrude(GeoPolygon2, GeoCoordinateSystem3, double, Tolerance)

Makes the body a profile drawn in a plane sweeps out moving straight out of it: a plate from its outline, a member from its section.

Extrude(GeoPolygon3, GeoVector3)

Makes the body a flat polygon sweeps out moving along a vector, using the default tolerance.

Extrude(GeoPolygon3, GeoVector3, Tolerance)

Makes the body a flat polygon sweeps out moving along a vector: a prism, upright or leaning.

Extrude(GeoPolygonArc2, GeoCoordinateSystem3, double, double)

Makes the body a curved loop drawn in a plane sweeps out moving straight out of it, using the default tolerance.

Extrude(GeoPolygonArc2, GeoCoordinateSystem3, double, double, Tolerance)

Makes the body a curved loop drawn in a plane sweeps out moving straight out of it, its arcs cut into chords no further than a tolerance from them.

GetAabb()

Gets the axis-aligned bounding box enclosing this solid.

GetClosestPointOnBoundary(GeoPoint3)

Gets the point on the surface of this solid closest to a target point.

GetClosestPointOnBoundary(GeoPoint3, Tolerance)

Gets the point on the surface of this solid closest to a target point, within a tolerance.

GetHashCode()

Returns the hash code for this instance.

GetIntersections(GeoArc3)

Gets every point where an arc crosses the surface of this solid, using the default tolerance.

GetIntersections(GeoArc3, Tolerance)

Gets every point where an arc crosses the surface of this solid, within a tolerance.

GetIntersections(GeoCircle3)

Gets every point where a circle crosses the surface of this solid, using the default tolerance.

GetIntersections(GeoCircle3, Tolerance)

Gets every point where a circle crosses the surface of this solid, within a tolerance.

GetIntersections(GeoEdge3)

Gets every point where an edge crosses this solid.

GetIntersections(GeoEdge3, Tolerance)

Gets every point where an edge crosses this solid, within a tolerance.

GetIntersections(GeoLine3)

Gets the points where a line segment passes through the surface of this solid.

GetIntersections(GeoLine3, Tolerance)

Gets the points where a line segment passes through the surface of this solid, within a tolerance.

GetIntersections(GeoPlane3)

Gets the points where a plane cuts the edges of this solid.

GetIntersections(GeoPlane3, Tolerance)

Gets the points where a plane cuts the edges of this solid, within a tolerance.

GetIntersections(GeoPolygonArc3)

Gets every point where a curved loop crosses this solid.

GetIntersections(GeoPolygonArc3, Tolerance)

Gets every point where a curved loop crosses this solid, within a tolerance.

GetIntersections(GeoPolylineArc3)

Gets every point where a curved chain crosses this solid.

GetIntersections(GeoPolylineArc3, Tolerance)

Gets every point where a curved chain crosses this solid, within a tolerance.

GetIntersections(GeoRay3)

Gets the points where a ray passes through the surface of this solid.

GetIntersections(GeoRay3, Tolerance)

Gets the points where a ray passes through the surface of this solid, within a tolerance.

GetMassProperties()

Gets the mass properties of the material at a density of one, using the default tolerance.

GetMassProperties(double)

Gets the mass properties of the material at a density, using the default tolerance.

GetMassProperties(double, Tolerance)

Gets the mass properties of the material at a density: volume, mass, centroid, the moments and products of inertia about the centroid, and the principal moments and axes.

GetNetVolume()

Gets the volume of the material actually left once every opening is cut out, using the default tolerance.

GetNetVolume(Tolerance)

Gets the volume of the material actually left once every opening is cut out, within a tolerance.

GetShortestLineTo(GeoLine3)

Gets the shortest segment joining this solid to a line segment.

GetShortestLineTo(GeoLine3, Tolerance)

Gets the shortest segment joining this solid to a line segment, within a tolerance.

GetShortestLineTo(GeoPoint3)

Gets the shortest segment joining this solid to a point.

GetShortestLineTo(GeoPoint3, Tolerance)

Gets the shortest segment joining this solid to a point, within a tolerance.

GetShortestLineTo(GeoRay3)

Gets the shortest segment joining this solid to a ray.

GetShortestLineTo(GeoRay3, Tolerance)

Gets the shortest segment joining this solid to a ray, within a tolerance.

GetShortestLineTo(GeoSolid3)

Gets the shortest segment joining this solid to another solid.

GetShortestLineTo(GeoSolid3, Tolerance)

Gets the shortest segment joining this solid to another solid, within a tolerance.

GetShortestLineTo(GeoTriangle3)

Gets the shortest segment joining this solid to a triangle.

GetShortestLineTo(GeoTriangle3, Tolerance)

Gets the shortest segment joining this solid to a triangle, within a tolerance.

GetSignedVolume()

Gets the signed volume enclosed by the bounding faces. It is positive when the face normals point outwards and negative when they point inwards.

Intersect(GeoSolid3)

Gets every separate region this body shares with another, one body each.

Intersect(GeoSolid3, Tolerance)

Gets every separate region this body shares with another, one body each, within a tolerance.

IsClosed()

Checks whether the boundary closes without gaps, using the default tolerance.

IsClosed(Tolerance)

Checks whether the boundary closes without gaps, within a tolerance.

IsEqualTo(GeoSolid3)

Compares whether this solid equals another using the default tolerance.

IsEqualTo(GeoSolid3, Tolerance)

Compares whether this solid equals another within a tolerance, ignoring the order the faces are listed in.

Locate(GeoPoint3)

Locates a point relative to this solid, using the default tolerance.

Locate(GeoPoint3, Tolerance)

Locates a point relative to this solid, within a tolerance.

MergeCoplanarFaces()

Runs the faces that share a plane and an edge together into single faces.

MergeCoplanarFaces(Tolerance)

Runs the faces that share a plane and an edge together into single faces, within a tolerance.

Pipe(GeoPolyline3, double, double)

Makes a round bar along a chain, using the default tolerance.

Pipe(GeoPolyline3, double, double, Tolerance)

Makes a round bar along a chain, its section a polygon no further than a chord tolerance from the circle.

Pipe(GeoPolylineArc3, double, double)

Makes a bent round bar along a chain with bends, using the default tolerance.

Pipe(GeoPolylineArc3, double, double, Tolerance)

Makes a bent round bar along a chain with bends — a reinforcing bar from its centre line — the bends and the section each cut into chords no further than a tolerance from the curve.

Prepare()

Prepares this body to be asked many questions, using the default tolerance.

Prepare(Tolerance)

Prepares this body to be asked many questions, within a tolerance.

Revolve(GeoPolygon2, GeoCoordinateSystem3, double, double)

Makes the body a profile sweeps out turned round an axis, using the default tolerance.

Revolve(GeoPolygon2, GeoCoordinateSystem3, double, double, Tolerance)

Makes the body a profile sweeps out turned round an axis: a ring, a boss, a round pier.

Section(GeoPlane3)

Gets where a plane cuts the material, using the default tolerance.

Section(GeoPlane3, Tolerance)

Gets where a plane cuts the material: the faces the cut leaves, holes and all, facing along the plane's normal.

SignedDistanceTo(GeoPoint3)

Calculates the distance from this solid to a point, negative for a point in the material.

SignedDistanceTo(GeoPoint3, Tolerance)

Calculates the distance from this solid to a point, negative for a point in the material, within a tolerance.

SplitShells()

Splits this body into the pieces of material that do not touch.

SplitShells(Tolerance)

Splits this body into the pieces of material that do not touch, within a tolerance.

Sweep(GeoPolygon2, GeoPolyline3)

Makes the body a profile sweeps out carried along a chain, using the default tolerance.

Sweep(GeoPolygon2, GeoPolyline3, GeoVector3)

Makes the body a profile sweeps out carried along a chain, standing a given way up, using the default tolerance.

Sweep(GeoPolygon2, GeoPolyline3, GeoVector3, Tolerance)

Makes the body a profile sweeps out carried along a chain, standing a given way up at the start.

Sweep(GeoPolygon2, GeoPolyline3, Tolerance)

Makes the body a profile sweeps out carried along a chain, within a tolerance.

Sweep(GeoPolygon2, GeoPolylineArc3, double)

Makes the body a profile sweeps out carried along a chain with bends, using the default tolerance.

Sweep(GeoPolygon2, GeoPolylineArc3, double, GeoVector3)

Makes the body a profile sweeps out carried along a chain with bends, standing a given way up, using the default tolerance.

Sweep(GeoPolygon2, GeoPolylineArc3, double, GeoVector3, Tolerance)

Makes the body a profile sweeps out carried along a chain with bends, standing a given way up at the start.

Sweep(GeoPolygon2, GeoPolylineArc3, double, Tolerance)

Makes the body a profile sweeps out carried along a chain with bends, each bend cut into chords no further than a tolerance from it.

ToString()

Returns a string that represents the current solid.

TransformBy(GeoTransform3)

Applies a transformation to every face and opening.

Translate(GeoVector3)

Moves the solid by a vector.

Triangulate()

Breaks every face into triangles, giving the surface of the solid as a triangle mesh, using the default tolerance.

Triangulate(Tolerance)

Breaks every face into triangles, giving the surface of the solid as a triangle mesh, within a tolerance.

TriangulateSurface()

Meshes the surface of the material, with every opening cut in first.

TriangulateSurface(Tolerance)

Meshes the surface of the material, with every opening cut in first, within a tolerance.

TryCutOpenings(out GeoSolid3)

Cuts every opening into this body, giving one without openings whose faces are the surface of its material.

TryCutOpenings(out GeoSolid3, Tolerance)

Cuts every opening into this body, giving one without openings whose faces are the surface of its material, within a tolerance.

TryGetContact(GeoSolid3, out GeoFace3[])

Gets the patches where this body and another lie against each other, face to face.

TryGetContact(GeoSolid3, out GeoFace3[], Tolerance)

Gets the patches where this body and another lie against each other, face to face, within a tolerance.

TryIntersect(GeoObb3, out GeoSolid3)

Keeps what this body and a box both enclose.

TryIntersect(GeoObb3, out GeoSolid3, Tolerance)

Keeps what this body and a box both enclose, within a tolerance.

TryIntersect(GeoSolid3, out GeoSolid3)

Gets the part this solid shares with another, using the default tolerance.

TryIntersect(GeoSolid3, out GeoSolid3, Tolerance)

Gets the part this solid shares with another, within a tolerance.

TryIntersectWith(GeoArc3, out GeoPoint3[])

Tries to find where an arc crosses the surface of this solid, using the default tolerance.

TryIntersectWith(GeoArc3, out GeoPoint3[], Tolerance)

Tries to find where an arc crosses the surface of this solid, within a tolerance.

TryIntersectWith(GeoCircle3, out GeoPoint3[])

Tries to find where a circle crosses the surface of this solid, using the default tolerance.

TryIntersectWith(GeoCircle3, out GeoPoint3[], Tolerance)

Tries to find where a circle crosses the surface of this solid, within a tolerance.

TrySplitBy(GeoPlane3, out GeoSolid3, out GeoSolid3)

Splits this solid by a plane, using the default tolerance.

TrySplitBy(GeoPlane3, out GeoSolid3, out GeoSolid3, Tolerance)

Splits this solid by a plane, within a tolerance.

TrySubtract(GeoObb3, out GeoSolid3)

Takes a box out of this body.

TrySubtract(GeoObb3, out GeoSolid3, Tolerance)

Takes a box out of this body, within a tolerance.

TrySubtract(GeoSolid3, out GeoSolid3)

Takes another solid out of this one, using the default tolerance.

TrySubtract(GeoSolid3, out GeoSolid3, Tolerance)

Takes another solid out of this one, within a tolerance.

TryUnion(GeoObb3, out GeoSolid3)

Joins this body to a box.

TryUnion(GeoObb3, out GeoSolid3, Tolerance)

Joins this body to a box, within a tolerance.

TryUnion(GeoSolid3, out GeoSolid3)

Joins this solid with another, using the default tolerance.

TryUnion(GeoSolid3, out GeoSolid3, Tolerance)

Joins this solid with another, within a tolerance.

WithOpenings(IEnumerable<GeoSolid3>)

Gets this solid with the given openings carved out of it.