C3D Toolkit
Kernel - 117958, Vision - 2.7.6.12
|
Geometrical object in three-dimensional space. More...
#include <space_item.h>
Public Member Functions | |
virtual | ~MbSpaceItem () |
Destructor. | |
void | PrepareWrite () const |
Register object. More... | |
General functions of a geometric object. | |
MbeRefType | RefType () const override |
Get a registration type (for copying, duplication). | |
virtual MbeSpaceType | IsA () const =0 |
Get the type of the object. | |
virtual MbeSpaceType | Type () const =0 |
Get the group object type. | |
virtual MbeSpaceType | Family () const =0 |
Get family of objects. | |
bool | IsFamilyRegistrable () const override |
Whether the object belongs to a registrable family. | |
virtual MbSpaceItem & | Duplicate (MbRegDuplicate *iReg=nullptr) const =0 |
Create a copy of the object. More... | |
virtual void | Transform (const MbMatrix3D &matr, MbRegTransform *iReg=nullptr)=0 |
Convert the object according to the matrix. More... | |
virtual void | Move (const MbVector3D &to, MbRegTransform *iReg=nullptr)=0 |
Move an object along a vector. More... | |
virtual void | Rotate (const MbAxis3D &axis, double angle, MbRegTransform *iReg=nullptr)=0 |
Rotate an object around an axis at a given angle. More... | |
virtual bool | IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const =0 |
Determine whether an object is equal. More... | |
virtual bool | IsSimilar (const MbSpaceItem &item) const |
Determine whether an object is similar. More... | |
virtual bool | SetEqual (const MbSpaceItem &item)=0 |
Make objects equal if they are similar. More... | |
virtual double | DistanceToPoint (const MbCartPoint3D &point) const =0 |
Determine the distance to the point. More... | |
virtual void | AddYourGabaritTo (MbCube &cube) const =0 |
Expand sent bounding box (a.k.a. gabarit), so that it included the object. More... | |
virtual void | CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const =0 |
To compute bounding box in a local coordinate system. More... | |
virtual void | Refresh () |
Translate all the time (mutable) data objects in an inconsistent (initial) state. | |
virtual MbProperty & | CreateProperty (MbePrompt name) const =0 |
Create your own property with the name. | |
virtual void | GetProperties (MbProperties &properties)=0 |
Outstanding properties of the object. More... | |
virtual void | SetProperties (const MbProperties &properties)=0 |
Change the properties of an object. More... | |
virtual void | CalculateMesh (const MbStepData &stepData, const MbFormNote ¬e, MbMesh &mesh) const =0 |
Build polygonal copy mesh. More... | |
void | CalculateWire (const MbStepData &stepData, MbMesh &mesh) const |
void | CalculateWire (double sag, MbMesh &mesh) const |
virtual void | GetBasisItems (RPArray< MbSpaceItem > &) |
Outstanding reference objects in a container sent. | |
virtual void | GetBasisPoints (MbControlData3D &) const |
Get control points of object. | |
virtual void | SetBasisPoints (const MbControlData3D &) |
Change the object by control points. | |
![]() | |
TapeBase (RegistrableRec regs=noRegistrable) | |
Constructor. | |
TapeBase (const TapeBase &) | |
Copy-constructor. | |
virtual | ~TapeBase () |
Destructor. | |
RegistrableRec | GetRegistrable () const |
Whether the stream class is registrable. | |
void | SetRegistrable (RegistrableRec regs=registrable) const |
Set the state of registration of the stream class. | |
virtual const char * | GetPureName (const VersionContainer &) const |
Get the class name. | |
![]() | |
refcount_t | GetUseCount () const |
Get count of references (get count of owners of an object). | |
refcount_t | AddRef () const |
Increase count of references by one. | |
refcount_t | DecRef () const |
Decrease count of references by one. | |
refcount_t | Release () const |
Decrease count of references by one and if count of references became zero, then remove itself. | |
Protected Member Functions | |
MbSpaceItem () | |
Default constructor. | |
![]() | |
MbRefItem () | |
Constructor without parameters. | |
Geometrical object in three-dimensional space.
The parent class of geometric objects in three dimensions. Heirs are: point MbPoint3D, curve MbCurve3D, surface MbSurface, geometric object model and MbItem other ancillary facilities.
The object has a reference count and can be written and read.
|
pure virtual |
Create a copy of the object.
Create a copy of an object using the registrator. Registrator is used to prevent multiple copy of the object. If the object contains references to the other objects, then nested objects are copied as well. It is allowed not to pass registrator into the function. Then new copy of object will be created. While copying of single object or set of not connected objects, it is allowed not to use registrator. Registrator should be used if it is required to copy several connected objects. It is possible, that objects connection is based on the references to common objects. Then, while copying without using of registrator, it is possible to obtain set of copies, that contain references to the different copies of the same nested object, that leads to loss of connection between copies.
[in] | iReg | - Registrator. |
Implemented in MbWireFrame, MbSpaceInstance, MbSolid, MbPlaneInstance, MbInstance, MbAssembly, MbTorusSurface, MbSplineSurface, MbSpiralSurface, MbSphereSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPlane, MbOffsetSurface, MbMeshSurface, MbLoftedSurface, MbJoinSurface, MbGridSurface, MbGregorySurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCylinderSurface, MbCurveBoundedSurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbConeSurface, MbChannelSurface, MbChamferSurface, MbPointFrame, MbPoint3D, MbMesh, MbThread, MbPointsSymbol, MbLeader, MbRough, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbMarker, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbOffsetCurve3D, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCurveSpiral, MbCubicSpline3D, MbCrookedSpiral, MbContourOnSurface, MbContourOnPlane, MbContour3D, MbConeSpiral, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbBSpline, MbArc3D, MbCollection, MbAssistingItem, and MbPMI.
|
pure virtual |
Convert the object according to the matrix.
Convert the original object according to the matrix using the registrator. If object contains references to the other geometric objects, then nested objects are transformed according to the matrix. Registrator is needed to prevent multiple object copying. It is allowed to use function without registrator, if it is needed to transform single object. If it is needed to transform a set of connected objects, then one should use registrator to prevent repeating transformation of nested objects, because of the possible situation when several objects contain references to the same common objects, that require to be transformed.
[in] | matr | - Transformation matrix. |
[in] | iReg | - Registrator. |
Implemented in MbTorusSurface, MbSphereSurface, MbMeshSurface, MbGridSurface, MbGregorySurface, MbElementarySurface, MbCylinderSurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbConeSurface, MbBSpline, MbSpaceInstance, MbSolid, MbInstance, MbAssembly, MbOffsetCurve3D, MbWireFrame, MbSpiralSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPolySurface, MbPlane, MbOffsetSurface, MbLoftedSurface, MbJoinSurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCurveBoundedSurface, MbChamferSurface, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbThread, MbPointsSymbol, MbLeader, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbMarker, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSpiral, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCubicSpline3D, MbContourOnSurface, MbContour3D, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbCollection, MbAssistingItem, and MbPMI.
|
pure virtual |
Move an object along a vector.
Move an object along a geometric vector using the registrator. If object contains references to the other geometric objects then the move operation is applied to the nested objects. Registrator is needed to prevent multiple copying of the object. It is allowed to use function without registrator, if it is needed to transform a single object. If it is needed to transform a set of connected objects, then one should use registrator to prevent repeating transformation of nested objects, because of the possible situation when several objects contain references to the same common objects, that require to be moved.
[in] | to | - Shift vector. |
[in] | iReg | - Registrator. |
Implemented in MbMeshSurface, MbGridSurface, MbGregorySurface, MbElementarySurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbBSpline, MbSpaceInstance, MbSolid, MbInstance, MbAssembly, MbOffsetCurve3D, MbWireFrame, MbSpiralSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPolySurface, MbOffsetSurface, MbLoftedSurface, MbJoinSurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCurveBoundedSurface, MbChamferSurface, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbThread, MbPointsSymbol, MbLeader, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbMarker, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSpiral, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCubicSpline3D, MbContourOnSurface, MbContour3D, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbCollection, MbAssistingItem, and MbPMI.
|
pure virtual |
Rotate an object around an axis at a given angle.
Rotate an object around an axis at a given angle with the registrator. If object contains references to the other geometric objects then the rotation operation is applied to the nested objects. Registrator is needed to prevent multiple copying of the object. It is allowed to use function without registrator, if it is needed to transform a single object. If it is needed to transform a set of connected objects, then one should use registrator to prevent repeating transformation of nested objects, because of the possible situation when several objects contain references to the same common objects, that require to be rotated.
[in] | axis | - The axis of rotation. |
[in] | angle | - Rotation. |
[in] | iReg | - Registrator. |
Implemented in MbMeshSurface, MbGridSurface, MbGregorySurface, MbElementarySurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbBSpline, MbThread, MbPointsSymbol, MbLeader, MbSpaceInstance, MbSolid, MbInstance, MbAssembly, MbOffsetCurve3D, MbWireFrame, MbSpiralSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPolySurface, MbOffsetSurface, MbLoftedSurface, MbJoinSurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCurveBoundedSurface, MbChamferSurface, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbMarker, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSpiral, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCubicSpline3D, MbContourOnSurface, MbContour3D, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbCollection, MbAssistingItem, and MbPMI.
|
pure virtual |
Determine whether an object is equal.
Still considered objects of the same type, all data is the same (equal).
[in] | item | - The object to compare. |
[in] | accuracy | - The accuracy to compare. |
Implemented in MbTorusSurface, MbSplineSurface, MbSpiralSurface, MbSphereSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPlane, MbOffsetSurface, MbMeshSurface, MbLoftedSurface, MbJoinSurface, MbGridSurface, MbGregorySurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCylinderSurface, MbCurveBoundedSurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbConeSurface, MbChannelSurface, MbChamferSurface, MbSpaceInstance, MbPoint3D, MbMesh, MbPointsSymbol, MbLeader, MbRough, MbMarker, MbInstance, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSilhouetteCurve, MbReparamCurve3D, MbPlaneCurve, MbOffsetCurve3D, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCurveSpiral, MbCubicSpline3D, MbCrookedSpiral, MbContourOnSurface, MbContour3D, MbCharacterCurve3D, MbBezier3D, MbBSpline, MbArc3D, MbAssistingItem, MbAssembly, MbPMI, MbCollection, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbWireFrame, MbSolid, MbPointFrame, MbPlaneInstance, MbThread, MbSpiral, MbPolyline3D, MbContourOnPlane, MbConeSpiral, and MbBridgeCurve3D.
|
virtual |
Determine whether an object is similar.
Such are considered the same objects whose data are similar.
[in] | item | - The object to compare. |
Reimplemented in MbMeshSurface, MbGridSurface, MbGregorySurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbSpaceInstance, MbMarker, MbInstance, MbBridgeCurve3D, MbAssistingItem, MbPMI, MbWireFrame, MbSpiralSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbOffsetSurface, MbLoftedSurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCurveBoundedSurface, MbChannelSurface, MbChamferSurface, MbSolid, MbPointFrame, MbPlaneInstance, MbThread, MbSymbol, MbDimension, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSilhouetteCurve, MbReparamCurve3D, MbPlaneCurve, MbOffsetCurve3D, MbContourOnSurface, MbContour3D, and MbAssembly.
|
pure virtual |
Make objects equal if they are similar.
You can still make only a similar objects.
[in] | item | - The object to initialize. |
Implemented in MbMeshSurface, MbGridSurface, MbGregorySurface, MbCoverSurface, MbCornerSurface, MbCoonsPatchSurface, MbConeSurface, MbSpaceInstance, MbPoint3D, MbMesh, MbMarker, MbInstance, MbCurveSpiral, MbCrookedSpiral, MbBSpline, MbCollection, MbAssistingItem, MbWireFrame, MbTorusSurface, MbSplineSurface, MbSpiralSurface, MbSphereSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbRevolutionSurface, MbPlane, MbOffsetSurface, MbLoftedSurface, MbJoinSurface, MbFilletSurface, MbExtrusionSurface, MbExplorationSurface, MbExpansionSurface, MbExactionSurface, MbEvolutionSurface, MbElevationSurface, MbCylinderSurface, MbCurveBoundedSurface, MbChannelSurface, MbChamferSurface, MbSolid, MbPointFrame, MbPlaneInstance, MbThread, MbPointsSymbol, MbLeader, MbRough, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSpiral, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbOffsetCurve3D, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCubicSpline3D, MbContourOnSurface, MbContour3D, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbAssembly, and MbPMI.
|
pure virtual |
Determine the distance to the point.
Determine the distance to the point.
[in] | point | - Point. |
Implemented in MbElementarySurface, MbWireFrame, MbSurface, MbPlane, MbGridSurface, MbCurveBoundedSurface, MbSpaceInstance, MbSolid, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbThread, MbSymbol, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbMarker, MbInstance, MbCurve3D, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbLine3D, MbContourOnSurface, MbContour3D, MbArc3D, MbCollection, MbAssistingItem, MbAssembly, and MbPMI.
Expand sent bounding box (a.k.a. gabarit), so that it included the object.
Expand sent bounding box, so that it included the object.
[in,out] | cube | - The bounding box to expand. |
Implemented in MbSpaceInstance, MbPointFrame, MbPoint3D, MbMesh, MbMarker, MbInstance, MbSurfaceIntersectionCurve, MbContourOnSurface, MbCollection, MbAssistingItem, MbAssembly, MbPMI, MbSurface, MbWireFrame, MbSolid, MbPlaneInstance, MbThread, MbSymbol, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbCurve3D, MbSurfaceCurve, MbSpiral, MbPolyCurve3D, MbPlaneCurve, MbOffsetCurve3D, MbLine3D, MbCharacterCurve3D, MbBridgeCurve3D, and MbArc3D.
|
pure virtual |
To compute bounding box in a local coordinate system.
To obtain bounding box of object with regar to a local coordinate system, sent box is made to be empty. Then it is computed bounding box of object in a local coordinate system \ and it is stored in box 'cube'
[in] | into | - Transformation matrix from object's current coordinate system to a local coordinate system |
[in,out] | cube | - Information on bounding box |
Implemented in MbThread, MbWireFrame, MbSurface, MbSpaceInstance, MbSolid, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbLegend, MbInstance, MbCurve3D, MbCollection, MbAssistingItem, MbAssembly, MbLine3D, MbSphereSurface, MbSectorSurface, MbSectionSurface, MbRuledSurface, MbPlane, MbExtrusionSurface, MbEvolutionSurface, MbCylinderSurface, MbCurveBoundedSurface, MbConeSurface, MbChamferSurface, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbLineSegment3D, MbContour3D, and MbArc3D.
|
pure virtual |
Outstanding properties of the object.
Issue internal data (properties) of the object for viewing and modification.
[in] | properties | - Container for the internal data of the object. |
Implemented in MbTorusSurface, MbSpiralSurface, MbSphereSurface, MbRuledSurface, MbRevolutionSurface, MbPlane, MbOffsetSurface, MbMeshSurface, MbLoftedSurface, MbJoinSurface, MbGridSurface, MbGregorySurface, MbFilletSurface, MbExtrusionSurface, MbExpansionSurface, MbExactionSurface, MbElevationSurface, MbCylinderSurface, MbCoverSurface, MbConeSurface, MbChannelSurface, MbChamferSurface, MbSpaceInstance, MbPoint3D, MbItem, MbMesh, MbMarker, MbInstance, MbBSpline, MbAssistingItem, MbPMI, MbWireFrame, MbSplineSurface, MbSectorSurface, MbSectionSurface, MbExplorationSurface, MbEvolutionSurface, MbCurveBoundedSurface, MbCornerSurface, MbCoonsPatchSurface, MbSolid, MbPointFrame, MbPlaneInstance, MbThread, MbPointsSymbol, MbLeader, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbOffsetCurve3D, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCurveSpiral, MbCubicSpline3D, MbCrookedSpiral, MbContourOnSurface, MbContourOnPlane, MbContour3D, MbConeSpiral, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbCollection, and MbAssembly.
|
pure virtual |
Change the properties of an object.
Changing the internal data (properties) of the object you are copying the corresponding values from the sent object.
[in] | properties | - Container for the internal data of the object. |
Implemented in MbTorusSurface, MbSpiralSurface, MbSphereSurface, MbRuledSurface, MbRevolutionSurface, MbPlane, MbOffsetSurface, MbMeshSurface, MbLoftedSurface, MbJoinSurface, MbGridSurface, MbGregorySurface, MbFilletSurface, MbExtrusionSurface, MbExpansionSurface, MbExactionSurface, MbElevationSurface, MbCylinderSurface, MbCoverSurface, MbConeSurface, MbChamferSurface, MbSpaceInstance, MbPoint3D, MbItem, MbMesh, MbMarker, MbInstance, MbBSpline, MbAssistingItem, MbPMI, MbWireFrame, MbSplineSurface, MbSectorSurface, MbSectionSurface, MbExplorationSurface, MbEvolutionSurface, MbCurveBoundedSurface, MbCornerSurface, MbCoonsPatchSurface, MbSolid, MbPointFrame, MbPlaneInstance, MbThread, MbPointsSymbol, MbLeader, MbRadialDimension, MbAngularDimension, MbLinearDimension, MbTrimmedCurve3D, MbSurfaceIntersectionCurve, MbSurfaceCurve, MbSilhouetteCurve, MbReparamCurve3D, MbPolyline3D, MbPlaneCurve, MbOffsetCurve3D, MbNurbs3D, MbLineSegment3D, MbLine3D, MbHermit3D, MbCurveSpiral, MbCubicSpline3D, MbCrookedSpiral, MbContourOnSurface, MbContourOnPlane, MbContour3D, MbConeSpiral, MbCharacterCurve3D, MbBridgeCurve3D, MbBezier3D, MbArc3D, MbCollection, and MbAssembly.
|
pure virtual |
Build polygonal copy mesh.
Build a polygonal copy of the object that is represented by polygons or/and fasets.
[in] | stepData | - Data for еру step calculation for polygonal object. |
[in] | note | - Way for polygonal object constructing. |
[in,out] | mesh | - The builded polygonal object. |
Implemented in MbWireFrame, MbSurface, MbGridSurface, MbCurveBoundedSurface, MbSpaceInstance, MbSolid, MbPointFrame, MbPoint3D, MbPlaneInstance, MbMesh, MbThread, MbSymbol, MbMarker, MbInstance, MbCurve3D, MbSurfaceIntersectionCurve, MbContourOnSurface, MbContour3D, MbBSpline, MbCollection, MbAssistingItem, MbAssembly, MbPMI, MbRadialDimension, MbAngularDimension, and MbLinearDimension.
|
inline |
Register object.
Register object to prevent its rewritable. Other objects may contain a pointer to the given object. Function sets a flag to 'true', which allows to write object for one time, and make a reference to the written instance of the other records. Reading is performed once, and there is substitution of already read object for all the remaining reading cases.