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.