CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
OdIfc::OdIfcModelerGeometry Class Referenceabstract

#include <IfcModelerGeometry.h>

Inheritance diagram for OdIfc::OdIfcModelerGeometry:
OdRxObject

Public Member Functions

 ODRX_DECLARE_MEMBERS (OdIfcModelerGeometry)
 
virtual bool draw (OdGiWorldDraw *pWd) const =0
 
virtual void transform (const OdGeMatrix3d &m)=0
 
virtual OdResult getBoundingBox (OdGeExtents3d &box) const =0
 
virtual OdResult copyBody (OdIfcModelerGeometryPtr b)=0
 
virtual OdResult boolean (OdIfcHalfSpaceSolidPtr tool)=0
 
virtual OdResult boolean (OdIfcModelerGeometryPtr tool, IfcBooleanOperator op, IfcModelerKeep keep=kBoth)=0
 
virtual OdResult boolean (OdIfcModelerGeometryPtr tool, OdIfcModelerGeometryPtr blank, IfcBooleanOperator op, IfcModelerKeep keep=kBoth)=0
 
virtual OdResult extrude (OdIfcProfileDefPtr profile, OdGeVector3d dir)=0
 
virtual OdResult revolve (OdIfcProfileDefPtr profile, const OdGeVector3d &axisOfRevolution, const OdGePoint3d &axisPosition, double startAng, double endAng)=0
 
virtual OdResult sweep (OdIfcSectionedSolidPtr pSolid)=0
 
virtual OdResult sweepWithInclination (OdIfcProfileDefPtr pProfile, OdGeCurve3dPtr pPath, OdIfcAxisLateralInclinationPtr pInclination, bool isFixedAxisVertical)=0
 
virtual OdResult sweepWithCant (OdIfcProfileDefPtr pProfile, OdGeCurve3dPtr pPath, OdIfcAlignmentCantPtr pInclination)=0
 
virtual OdResult sweep (OdIfcSweptDiskSolidPtr pSolid)=0
 
virtual OdResult sweep (OdIfcFixedReferenceSweptAreaSolidPtr pSolid)=0
 
virtual OdResult createFacetedBrep (OdIfcConnectedFaceSetPtr pFaceSet)=0
 
virtual OdResult createTessellation (const OdGePoint3dArray &vertices, const OdArray< OdArray< int > > &faces, OdDAI::Boolean isClosed, const OdGeVector3dArray &normals, const OdIfc::OdIfcVisualData *pData, const OdArray< IfcInteger > &flags=OdArray< IfcInteger >())=0
 
virtual OdResult createTessellation (const OdGePoint3dArray &vertices, const OdDAIObjectIds &faces, OdDAI::Boolean isClosed, const OdIfc::OdIfcVisualData *pData)=0
 
virtual OdResult createAdvancedBrep (OdIfcAdvancedBrepPtr pBrep)=0
 
virtual OdResult box (const OdGePoint3d &ptOrigin, const OdGeVector3d &vSizes)=0
 
virtual OdResult block (const OdGePoint3d &ptOrigin, double xLength, double yLength, double zLength)=0
 
virtual OdResult rectangularPyramid (const OdGePoint3d &ptOrigin, double xLength, double yLength, double height)=0
 
virtual OdResult rightCircularCone (const OdGePoint3d &ptOrigin, double height, double bottomRadius)=0
 
virtual OdResult rightCircularCylinder (const OdGePoint3d &ptOrigin, double height, double radius)=0
 
virtual OdResult sphere (const OdGePoint3d &ptOrigin, double radius)=0
 
virtual void setDeviationParams (const OdIfcDeviationParams &params)=0
 
virtual OdIBrFile * brep () const =0
 
virtual OdIfcBodyVariant bodyContainer () const =0
 
- Public Member Functions inherited from OdRxObject
 ODRX_HEAP_OPERATORS ()
 
 OdRxObject ()
 
virtual ~OdRxObject ()
 
virtual OdRxObjectqueryX (const OdRxClass *pClass) const
 
virtual OdRxObjectx (const OdRxClass *pClass) const
 
virtual OdRxClassisA () const
 
virtual void addRef ()=0
 
virtual void release ()=0
 
virtual long numRefs () const
 
bool isKindOf (const OdRxClass *pClass) const
 
virtual OdRxObjectPtr clone () const
 
virtual void copyFrom (const OdRxObject *pSource)
 
virtual OdRx::Ordering comparedTo (const OdRxObject *pOther) const
 
virtual bool isEqualTo (const OdRxObject *pOther) const
 

Protected Member Functions

void copyFrom (const OdRxObject *)=0
 

Additional Inherited Members

- Static Public Member Functions inherited from OdRxObject
static OdRxObjectPtr cast (const OdRxObject *pointer)
 
static OdRxClassdesc ()
 

Detailed Description

The class provides geometry modeler functionality for IFC SDK. It keeps a body for the visualization and other operations in the format of appropriate modeler implementation.

Definition at line 123 of file IfcModelerGeometry.h.

Member Function Documentation

◆ block()

virtual OdResult OdIfc::OdIfcModelerGeometry::block ( const OdGePoint3d ptOrigin,
double  xLength,
double  yLength,
double  zLength 
)
pure virtual

Creates a block body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the block position.
xLength[in] A length of the block along the X-axis.
yLength[in] A length of the block along the Y-axis.
zLength[in] A length of the block along the Z-axis.
Returns
Returns the operation result code: eOk if the block was successfully created; otherwise, the method returns an appropriate error code.

◆ bodyContainer()

virtual OdIfcBodyVariant OdIfc::OdIfcModelerGeometry::bodyContainer ( ) const
pure virtual

Retrieves the container with the body from the geometry modeler object.

Returns
Returns an OdIfcBodyVariant object that represents the body container.
Remarks
The value returned by the method is up to date only while the modeler is not changed.

◆ boolean() [1/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::boolean ( OdIfcHalfSpaceSolidPtr  tool)
pure virtual

Creates a half-space solid and stores it in the geometry modeler object.

Parameters
tool[in] A smart-pointer to the half-space solid object.
Returns
Returns the creation result code: eOk if the half-space solid was successfully created. eNullEntityPointer if the tool has the illegal type. eGeneralModelingFailure in other cases.
Remarks
The method returns the eNullEntityPointer value when the geometry modeler body is equal to the NULL, or the surface that defines the side of the half-space is equal to the NULL.

◆ boolean() [2/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::boolean ( OdIfcModelerGeometryPtr  tool,
IfcBooleanOperator  op,
IfcModelerKeep  keep = kBoth 
)
pure virtual

Performs a specified boolean operation between the currently stored blank body and the tool. The result of the operation is stored in the geometry modeler object instead of the currently stored body.

Parameters
tool[in] A tool operand represented with a smart-pointer to the geometry modeler object.
op[in] A type of the boolean operation to be performed.
keep[in] An option value that determines which operands stay unchanged after the operation.
Returns
Returns the operation result code: eOk if the operation was performed successfully. eIllegalEntityType if operands have illegal types. eGeneralModelingFailure in other cases.

◆ boolean() [3/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::boolean ( OdIfcModelerGeometryPtr  tool,
OdIfcModelerGeometryPtr  blank,
IfcBooleanOperator  op,
IfcModelerKeep  keep = kBoth 
)
pure virtual

Performs a specified boolean operation between the currently stored body and the tool. The result of the operation is stored in the specified geometry modeler object.

Parameters
tool[in] A tool operand.
blank[in] A blank operand.
op[in] A type of the boolean operation to be performed.
keep[in] An option value that determines which operands stay unchanged after the operation.
Returns
Returns the operation result code: eOk if the operation was performed successfully. eIllegalEntityType if operands have illegal types. eGeneralModelingFailure in other cases.

◆ box()

virtual OdResult OdIfc::OdIfcModelerGeometry::box ( const OdGePoint3d ptOrigin,
const OdGeVector3d vSizes 
)
pure virtual

Creates a box body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the box position.
vSizes[in] The box sizes.
Returns
Returns the operation result code: eOk if the box was successfully created; otherwise, the method returns an appropriate error code.

◆ brep()

virtual OdIBrFile * OdIfc::OdIfcModelerGeometry::brep ( ) const
pure virtual

Retrieves the OdBrFile interface from the geometry modeler object.

Returns
Returns a raw pointer to the OdIBrFile interface.

◆ copyBody()

virtual OdResult OdIfc::OdIfcModelerGeometry::copyBody ( OdIfcModelerGeometryPtr  b)
pure virtual

Copies the body from a specified geometry modeler instance.

Parameters
b[in] A smart-pointer to the source geometry modeler object.
Returns
Returns the copy result code: eOk if the body was successfully copied; eNullEntityPointer if the source is NULL; eIllegalEntityType if the source object is not an instance of the OdIfcModelerGeometry class.

◆ copyFrom()

void OdIfc::OdIfcModelerGeometry::copyFrom ( const OdRxObject pSource)
protectedpure virtual

details Copies the contents of the specified object into this object.

Parameters
pSource[in] Pointer to the source object.
Remarks
The default implementation of this function does nothing but throw an eNotApplicable exception.

Throws: eNotApplicable Exception

Reimplemented from OdRxObject.

◆ createAdvancedBrep()

virtual OdResult OdIfc::OdIfcModelerGeometry::createAdvancedBrep ( OdIfcAdvancedBrepPtr  pBrep)
pure virtual

Creates an OdBrFile object from the specified OdIfcAdvnacedBrep object and stores it into the geometry modeler object.

Parameters
pBrep[in] A smart pointer to the OdIfcAdvancedBrep entity.
Returns
Returns the operation result code: eOk if the operation was successful. eWrongObjectType if getting the attribute is failed. eNullObjectPointer if the specified OdIfcAdvancedBrep entity or its sub-entity has an unsupported type. eEmptySet if the specified OdIfcAdvancedBrep entity or its sub-entity has empty set; eGeneralModelingFailure in other cases.

◆ createFacetedBrep()

virtual OdResult OdIfc::OdIfcModelerGeometry::createFacetedBrep ( OdIfcConnectedFaceSetPtr  pFaceSet)
pure virtual

Creates a faceted body and stores it in the geometry modeler object.

Parameters
pFaceSet[in] A smart pointer to the set of faces for the body.
Returns
Returns the operation result code: eOk if the faceted body was successfully created. eInvalidInput in other cases.

◆ createTessellation() [1/2]

virtual OdResult OdIfc::OdIfcModelerGeometry::createTessellation ( const OdGePoint3dArray vertices,
const OdArray< OdArray< int > > &  faces,
OdDAI::Boolean  isClosed,
const OdGeVector3dArray normals,
const OdIfc::OdIfcVisualData *  pData,
const OdArray< IfcInteger > &  flags = OdArrayIfcInteger >() 
)
pure virtual

Creates a tessellated body and stores it in the geometry modeler object.

Parameters
vertices[in] An array of points that represents the ordered list of points used by the faces.
faces[in] A two-dimensional array that contains the list for the indexed-based faces.
isClosed[in] A flag value that determines whether the tessellated body is a closed shell or not.
normals[in] An array of 3D vectors, which contain normals.
pData[in] A raw pointer to additional visual data (faces' colors and textures).
flags[in] Additional flags for each face indicating break lines between faces or designation as a hole or void.
Returns
Returns the operation result code: eOk if the tessellated body was successfully created. eInvalidInput in other cases.

◆ createTessellation() [2/2]

virtual OdResult OdIfc::OdIfcModelerGeometry::createTessellation ( const OdGePoint3dArray vertices,
const OdDAIObjectIds &  faces,
OdDAI::Boolean  isClosed,
const OdIfc::OdIfcVisualData *  pData 
)
pure virtual

Creates a tessellated body and stores it in the geometry modeler object.

Parameters
vertices[in] An array of points that represents the ordered list of points used by the faces.
faces[in] A two-dimensional array that contains the list for the indexed-based faces.
isClosed[in] A flag value that determines whether the tessellated body is a closed shell or not.
pData[in] A raw pointer to additional visual data (faces' colors and textures).
Returns
Returns result code, eOk if all right, eInvalidInput in other cases.

◆ draw()

virtual bool OdIfc::OdIfcModelerGeometry::draw ( OdGiWorldDraw pWd) const
pure virtual

Draws the body to the <exref target="https://docs.opendesign.com/tv/OdGiWorldDraw.html">OdGiWorldDraw interface</exref>.

Parameters
pWd[in] A raw pointer to the object for the entity-level vectorization.
Returns
true if the body was successfully drawn; otherwise the method returns false.

◆ extrude()

virtual OdResult OdIfc::OdIfcModelerGeometry::extrude ( OdIfcProfileDefPtr  profile,
OdGeVector3d  dir 
)
pure virtual

Creates an extrusion body and stores it in the geometry modeler object.

Parameters
profile[in] A smart pointer to the base profile for the extrusion.
dir[in] A vector object that represents the length and the direction of the extrusion.
Returns
Returns the operation result code: eOk if the extrusion was performed successfully. eNullEntityPointer if the smart pointer to the base profile is NULL. eEmptySet if the base profile has no contours. eGeneralModelingFailure in other cases.

◆ getBoundingBox()

virtual OdResult OdIfc::OdIfcModelerGeometry::getBoundingBox ( OdGeExtents3d box) const
pure virtual

Calculates the extents of the body within the geometry modeler.

Parameters
box[out] A placeholder for the body extents object.
Returns
Returns eOk if the bounding box was successfully returned; otherwise, the eNullExtents value is returned.
Remarks
If the bounding box was not successfully calculated, the output parameter, that contains the box object, is equal to the NULL value.

◆ ODRX_DECLARE_MEMBERS()

OdIfc::OdIfcModelerGeometry::ODRX_DECLARE_MEMBERS ( OdIfcModelerGeometry  )

◆ rectangularPyramid()

virtual OdResult OdIfc::OdIfcModelerGeometry::rectangularPyramid ( const OdGePoint3d ptOrigin,
double  xLength,
double  yLength,
double  height 
)
pure virtual

Creates a rectangular pyramid body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the position of the pyramid.
xLength[in] A length of the pyramid along the X-axis.
yLength[in] A length of the pyramid along the Y-axis.
height[in] A height of the pyramid.
Returns
Returns the operation result code: eOk if the pyramid was successfully created; otherwise, the method returns an appropriate error code.

◆ revolve()

virtual OdResult OdIfc::OdIfcModelerGeometry::revolve ( OdIfcProfileDefPtr  profile,
const OdGeVector3d axisOfRevolution,
const OdGePoint3d axisPosition,
double  startAng,
double  endAng 
)
pure virtual

Creates a revolution body and stores it in the geometry modeler object.

Parameters
profile[in] A smart pointer to the base profile for the extrusion.
axisOfRevolution[in] A vector object that represents the axis of the revolution that is used by the base profile for revolution body creation.
axisPosition[in] A point that defines the position of the revolution axis.
startAng[in] A starting angle value of the revolution.
endAng[in] An ending angle of the revolution.
Returns
Returns the operation result code: eOk if the revolution was created successfully. eNullEntityPointer if the smart pointer to the base profile is NULL. eGeneralModelingFailure in other cases.

◆ rightCircularCone()

virtual OdResult OdIfc::OdIfcModelerGeometry::rightCircularCone ( const OdGePoint3d ptOrigin,
double  height,
double  bottomRadius 
)
pure virtual

Creates a right circular cone body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the position of cone.
height[in] A height of the cone.
bottomRadius[in] A radius of the cone.
Returns
Returns the operation result code: eOk if the cone was successfully created; otherwise, the method returns an appropriate error code.

◆ rightCircularCylinder()

virtual OdResult OdIfc::OdIfcModelerGeometry::rightCircularCylinder ( const OdGePoint3d ptOrigin,
double  height,
double  radius 
)
pure virtual

Creates a right circular cylinder body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the position of the cylinder.
height[in] A height of the cylinder.
radius[in] a radius of the cylinder.
Returns
Returns the operation result code: eOk if the cylinder was successfully created; otherwise, the method returns an appropriate error code.

◆ setDeviationParams()

virtual void OdIfc::OdIfcModelerGeometry::setDeviationParams ( const OdIfcDeviationParams params)
pure virtual

Assigns deviation params to the geometry modeler object.

Parameters
params[in] A set of deviation parameters to be assigned.

◆ sphere()

virtual OdResult OdIfc::OdIfcModelerGeometry::sphere ( const OdGePoint3d ptOrigin,
double  radius 
)
pure virtual

Creates a sphere body in the geometry modeler object.

Parameters
ptOrigin[in] A point that defines the position of the sphere.
radius[in] A radius of the sphere.
Returns
Returns the operation result code: eOk if the sphere was successfully created; otherwise, the method returns an appropriate error code.

◆ sweep() [1/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::sweep ( OdIfcFixedReferenceSweptAreaSolidPtr  pSolid)
pure virtual

Creates a type of the swept area solid that is the result of the sweeping a specified area along a directrix. The swept area is provided by a subtype of the OdIfcProfileDef class. The profile is placed by an implicit cartesian transformation operator at the start point of the sweep, where the profile normal agrees to the tangent of the directrix at this point, and the profile's x-axis agrees to the FixedReference direction. The orientation of the curve during the sweeping operation is controlled by the FixedReference direction.

Parameters
pSolid[in] A smart pointer to the OdIfcFixedReferenceSweptAreaSolid entity.
Returns
Returns the operation result code: eOk if the sweep operation was successful. eNullPtr if the smart pointer to the OdIfcFixedReferenceSweptAreaSolid entity is NULL. eGeneralModelingFailure in other cases.

◆ sweep() [2/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::sweep ( OdIfcSectionedSolidPtr  pSolid)
pure virtual

Creates a solid constructed by sweeping potentially variable cross sections along a directrix.

Parameters
pSolid[in] A smart pointer to the sectioned solid entity.
Returns
Returns the operation result code: eOk if the revolution was created successfully. eNullPtr if the smart pointer to the sectioned solid entity is NULL. eGeneralModelingFailure in other cases.

◆ sweep() [3/3]

virtual OdResult OdIfc::OdIfcModelerGeometry::sweep ( OdIfcSweptDiskSolidPtr  pSolid)
pure virtual

Sweeps the body along a path and stores the result in the geometry modeler object.

Parameters
pSolid[in] A smart pointer to the swept disk solid entity.
Returns
Returns the operation result code: eOk if the swept body was created successfully. eNullPtr if the smart pointer to the swept disk solid entity is NULL. eGeneralModelingFailure in other cases.

◆ sweepWithCant()

virtual OdResult OdIfc::OdIfcModelerGeometry::sweepWithCant ( OdIfcProfileDefPtr  pProfile,
OdGeCurve3dPtr  pPath,
OdIfcAlignmentCantPtr  pInclination 
)
pure virtual

Creates a specialized sweep with cants. The orientation of the profile's x-axis is always follows the rule defined by the IfcAlignment.

Parameters
pProfile[in] A smart pointer to the base profile for the sweep.
pPath[in] A smart pointer to a curve object that defines the main sweep path.
pCant[in] Defines the lateral inclination of the sweep profile based on the sweep path.
Returns
Returns result code, eOk if all right, eNullEntityPointer if pProfile or OdGeCurvePtrs are NULL, or eGeneralModelingFailure in other cases.

◆ sweepWithInclination()

virtual OdResult OdIfc::OdIfcModelerGeometry::sweepWithInclination ( OdIfcProfileDefPtr  pProfile,
OdGeCurve3dPtr  pPath,
OdIfcAxisLateralInclinationPtr  pInclination,
bool  isFixedAxisVertical 
)
pure virtual

Creates a specialized IfcDirectrixDistanceSweptAreaSolid object. The orientation of the profile's X-axis always follows the rule defined by the specified IfcAxisLateralInclination object.

Parameters
pProfile[in] A smart pointer to the base profile for the sweep.
pPath[in] A smart pointer to a curve object that defines the main sweep path.
pInclination[in] A smart pointer to an object that represents the lateral inclination of the base profile based on the specified path.
isFixedAxisVertical[in] A flag that Indicates whether the profile is oriented with its Y-axis facing upwards in +Z direction (true), or vertically perpendicular to the sweep directrix varying according to the slope (false).
Returns
eOk if the method works successfully. eNullEntityPointer if the pProfile or the OdGeCurvePtrs smart pointers are NULL eGeneralModelingFailure in other cases.

◆ transform()

virtual void OdIfc::OdIfcModelerGeometry::transform ( const OdGeMatrix3d m)
pure virtual

Transforms the body within the geometry modeler.

Parameters
m[in] A transformation matrix object.

The documentation for this class was generated from the following file: