CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
OdIfc::OdIfcModelerGeometry Class Referenceabstract

#include <IfcModelerGeometry.h>

Inheritance diagram for OdIfc::OdIfcModelerGeometry:

Public Member Functions

 ODRX_DECLARE_MEMBERS (OdIfcModelerGeometry)
 
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 sweep (OdIfcSurfaceCurveSweptAreaSolidPtr 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
 

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 130 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ 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/4]

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/4]

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/4]

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

Creates a type of the swept area solid that is the result of the sweeping a specified area on surface. 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. At any point along the directrix, the swept profile origin lies on the directrix, the profile''s normal points towards the tangent of the directrix, and the profile''s x-axis is identical to the surface normal at this point.

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

◆ sweep() [4/4]

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] A curve object that defines the lateral inclination of the sweep profile based on the sweep path.
pInclination[in] A smart pointer to an OdIfcAlignmentCant object that defines the inclination.
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.

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