VolumeMassProperties
ReferencesContains static initialization methods and allows access to the computed metrics of volume, volume centroid and volume moments in in solid meshes, in solid surfaces and in solid (closed) boundary representations.
Finalizer
~VolumeMassProperties
#~VolumeMassProperties()
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
Properties
Gets the volume centroid in the world coordinate system.
Moments of inertia with respect to centroid coordinate system. X = integral of ((y-y0)^2 + (z-z0)^2) dm Y = integral of ((z-z0)^2 + (x-x0)^2) dm Z = integral of ((z-z0)^2 + (y-y0)^2) dm where (x0,y0,z0) = centroid.
Remarks: What is meant by "moments of inertia" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.
Uncertainty in centroid coordinates moments of inertia calculation.
Product moments with respect to centroid coordinate system.
Uncertainty in product moments with respect to centroid coordinate system.
Radii of gyration with respect to centroid coordinate system. X = sqrt(integral of ((y-y0)^2 + (z-z0)^2) dm/M) Y = sqrt(integral of ((z-z0)^2 + (x-x0)^2) dm/M) Z = sqrt(integral of ((z-z0)^2 + (y-y0)^2) dm/M) where (x0,y0,z0) = centroid.
Remarks: What is meant by "radii of gyration" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.
Second moments with respect to centroid coordinate system. X = integral of (x-x0)^2 dm Y = integral of (y-y0)^2 dm Z = integral of (z-z0)^2 dm where (x0,y0,z0) = centroid.
Uncertainty in centroid coordinates second moments calculation.
Gets the uncertainty in the Centroid calculation.
Gets the uncertainty in the volume calculation.
Returns the world coordinate first moments if they were able to be calculated. X is integral of "x dm" over the volume Y is integral of "y dm" over the volume Z is integral of "z dm" over the volume.
Uncertainty in world coordinates first moments calculation.
The moments of inertia about the world coordinate axes. X = integral of (y^2 + z^2) dm Y = integral of (z^2 + x^2) dm Z = integral of (z^2 + y^2) dm.
Remarks: What is meant by "moments of inertia" varies widely in textbooks and papers. The values returned here are the integrals listed in the Summary section. Some applications may want the values from WorldCoordinatesSecondMoments instead of the values returned here.
Uncertainty in world coordinates moments of inertia calculation.
Returns the world coordinate product moments if they were able to be calculated. X is integral of "xy dm" over the volume Y is integral of "yz dm" over the volume Z is integral of "zx dm" over the volume.
Uncertainty in world coordinates second moments calculation.
Radii of gyration with respect to world coordinate system. X = sqrt(integral of (y^2 + z^2) dm/M) Y = sqrt(integral of (z^2 + x^2) dm/M) Z = sqrt(integral of (z^2 + y^2) dm/M)
Remarks: What is meant by "radii of gyration" varies widely in textbooks and papers. The values returned here are the integrals listed in the Returns section.
Returns the world coordinate second moments if they were able to be calculated. X is integral of "xx dm" over the volume Y is integral of "yy dm" over the volume Z is integral of "zz dm" over the volume.
Methods
public bool CentroidCoordinatesPrincipalMoments(out double x, out Vector3d xaxis, out double y, out Vector3d yaxis, out double z, out Vector3d zaxis)
Calculates the eigenvalues and eigenvectors of the moments matrix with respect to centroid coordinates.
public bool CentroidCoordinatesPrincipalMomentsOfInertia(out double x, out Vector3d xaxis, out double y, out Vector3d yaxis, out double z, out Vector3d zaxis)
Calculates the principal moments of inertia and principal axes with respect to centroid coordinates.
public static VolumeMassProperties Compute(Brep brep, bool volume, bool firstMoments, bool secondMoments, bool productMoments, double relativeTolerance, double absoluteTolerance)
Compute the VolumeMassProperties for a single Brep.
Parameters:
| brep (Brep) | Brep to measure. |
| volume (bool) | true to calculate volume. |
| firstMoments (bool) | true to calculate volume first moments, volume, and volume centroid. |
| secondMoments (bool) | true to calculate volume second moments. |
| productMoments (bool) | true to calculate volume product moments. |
| relativeTolerance (double) | The relative tolerance used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used. |
| absoluteTolerance (double) | The absolute tolerancwe used for the calculation. In overloads of this function where tolerances are not specified, 1.0e-6 is used. |
Returns: The VolumeMassProperties for the given Brep or null on failure.
Exceptions:
| ArgumentNullException | When brep is null. |
public static VolumeMassProperties Compute(Brep brep, bool volume, bool firstMoments, bool secondMoments, bool productMoments)
Compute the VolumeMassProperties for a single Brep.
Parameters:
| brep (Brep) | Brep to measure. |
| volume (bool) | true to calculate volume. |
| firstMoments (bool) | true to calculate volume first moments, volume, and volume centroid. |
| secondMoments (bool) | true to calculate volume second moments. |
| productMoments (bool) | true to calculate volume product moments. |
Returns: The VolumeMassProperties for the given Brep or null on failure.
Exceptions:
| ArgumentNullException | When brep is null. |
Compute the VolumeMassProperties for a single Brep.
Parameters:
| brep (Brep) | Brep to measure. |
Returns: The VolumeMassProperties for the given Brep or null on failure.
Exceptions:
| ArgumentNullException | When brep is null. |
public static VolumeMassProperties Compute(IEnumerable<GeometryBase> geometry, bool volume, bool firstMoments, bool secondMoments, bool productMoments)
Computes the VolumeMassProperties for a collection of geometric objects. At present only Breps, Surfaces, Meshes and Planar Closed Curves are supported.
Parameters:
| geometry (IEnumerable<GeometryBase>) | Objects to include in the volume computation. |
| volume (bool) | true to calculate volume. |
| firstMoments (bool) | true to calculate volume first moments, volume, and volume centroid. |
| secondMoments (bool) | true to calculate volume second moments. |
| productMoments (bool) | true to calculate volume product moments. |
Returns: The VolumeMassProperties for the entire collection or null on failure.
Computes the VolumeMassProperties for a collection of geometric objects. At present only Breps, Surfaces, and Meshes are supported.
Parameters:
| geometry (IEnumerable<GeometryBase>) | Objects to include in the volume computation. |
Returns: The VolumeMassProperties for the entire collection or null on failure.
public static VolumeMassProperties Compute(Mesh mesh, bool volume, bool firstMoments, bool secondMoments, bool productMoments)
Compute the VolumeMassProperties for a single Mesh.
Parameters:
| mesh (Mesh) | Mesh to measure. |
| volume (bool) | true to calculate volume. |
| firstMoments (bool) | true to calculate volume first moments, volume, and volume centroid. |
| secondMoments (bool) | true to calculate volume second moments. |
| productMoments (bool) | true to calculate volume product moments. |
Returns: The VolumeMassProperties for the given Mesh or null on failure.
Exceptions:
| ArgumentNullException | When Mesh is null. |
Compute the VolumeMassProperties for a single Mesh.
Parameters:
| mesh (Mesh) | Mesh to measure. |
Returns: The VolumeMassProperties for the given Mesh or null on failure.
Exceptions:
| ArgumentNullException | When mesh is null. |
public static VolumeMassProperties Compute(Surface surface, bool volume, bool firstMoments, bool secondMoments, bool productMoments)
Compute the VolumeMassProperties for a single Surface.
Parameters:
| surface (Surface) | Surface to measure. |
| volume (bool) | true to calculate volume. |
| firstMoments (bool) | true to calculate volume first moments, volume, and volume centroid. |
| secondMoments (bool) | true to calculate volume second moments. |
| productMoments (bool) | true to calculate volume product moments. |
Returns: The VolumeMassProperties for the given Surface or null on failure.
Exceptions:
| ArgumentNullException | When surface is null. |
Compute the VolumeMassProperties for a single Surface.
Parameters:
| surface (Surface) | Surface to measure. |
Returns: The VolumeMassProperties for the given Surface or null on failure.
Exceptions:
| ArgumentNullException | When surface is null. |
public void Dispose()
Actively reclaims unmanaged resources that this instance uses.
Dispose
#For derived class implementers.
This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method.
You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true.
Also, you must call the base virtual method within your overriding method.
Parameters:
| disposing (bool) | true if the call comes from the Dispose() method; false if it comes from the Garbage Collector finalizer. |
Sum mass properties together to get an aggregate mass.
Parameters:
| summands (IEnumerable<VolumeMassProperties>) | An array of mass properties to add. |
| bAddTo (bool) | If true, then the summands are added to the existing mass. |
Returns: True if successful.
Exceptions:
| ArgumentNullException |
Sum
#Sum mass properties together to get an aggregate mass.
Parameters:
| summand (VolumeMassProperties) | mass properties to add. |
Returns: true if successful.
On input, this contains the mass properties for some geometry G. On exit, this contains the mass properties for the transformed geometry xform(G).
Remarks: The Area of a transformed object can not be calculated from the area of the original object if the transform is not a similarity, like a non-uniform scaling.
Parameters:
| xform (Transform) | The transformation. When computing volumne mass properties, transform must be an affine transformation, or Transform.IsAffine. When computing area mass properties, transform must be a similarity transformation, or Transform.IsSimilarity(double). Perspective transformations are not allowed. |
Returns: True if successful, false otherwise.
public static VolumeMassProperties WeightedSum(IEnumerable<VolumeMassProperties> summands, IEnumerable<double> weights)
Sum a list of mass properties together to get an aggregate mass, weighting each by a density factor.Ignores existing mass properties in this object.
Parameters:
| summands (IEnumerable<VolumeMassProperties>) | An array of mass properties to add. |
| weights (IEnumerable<double>) | An array of non-negative densities, of the same length as summands. |
Returns: An VolumeMassProperties containing the result if successful, null if a failure occurs.
Exceptions:
| ArgumentNullException | When summands or weights is null. |
public bool WorldCoordinatesPrincipalMoments(out double x, out Vector3d xaxis, out double y, out Vector3d yaxis, out double z, out Vector3d zaxis)
Calculates the eigenvalues and eigenvectors of moments matrix in world coordinates.