Functions

Functions

int mdlSurface_extractRevolution2 (MSElementDescrH boundaryEdPP, DPoint3dP centerP, DPoint3dP axisP, double *sweepAngleP, MSElementDescrCP surfaceEdP)
 Used to retrieve information about a revolved surface. More...
 
int mdlSurface_extractExtrusion (MSElementDescrH edPP, DVec3dP directionP, double *distanceP, MSElementDescrCP surfaceEdP)
 Used to retrieve information from an extruded surface. More...
 
bool mdlSurface_revolutionIsSphere (double *radiusP, DPoint3dP centerP, RotMatrixP rotMatrixP, MSElementDescrP boundaryEdP, DPoint3dP revCenterP, DPoint3dP revAxisP, double revSweep)
 Returns whether a revolution operation on a given set of values will produce a sphere. More...
 
bool mdlSurface_revolutionIsTorus (double *primaryRadiusP, double *secondaryRadiusP, DPoint3dP centerP, RotMatrixP rotMatrixP, MSElementDescrP boundaryEdP, DPoint3dP revCenterP, DPoint3dP revAxisP, double revSweep)
 Returns whether a revolution operation on a given set of values will produce a torus. More...
 
bool mdlSurface_extrusionIsWedge (double *radiusP, double *sweepAngleP, DPoint3dP centerP, RotMatrixP rotMatrixP, MSElementDescrP boundEdP, DgnModelRefP modelRef)
 Returns whether an extrusion operation on a given boundary element will produce a wedge. More...
 
bool mdlSurface_extrusionIsBlock (double *lengthP, double *widthP, DPoint3dP centerPtP, RotMatrixP rMatrixP, DPoint3dP extrudeDirP, double extrudeDist, MSElementDescrP boundEdP)
 Returns whether an extrusion operation on a given boundary element will produce a block. More...
 

Detailed Description

Function Documentation

int mdlSurface_extractExtrusion ( MSElementDescrH  edPP,
DVec3dP  directionP,
double *  distanceP,
MSElementDescrCP  surfaceEdP 
)

Used to retrieve information from an extruded surface.

Parameters
[out]edPPis a pointer to the boundary profile used to create the extrusion.
[out]directionPis the direction relative to the boundary profile of the extrusion.
[out]distancePis the distance of the extrusion.
[in]surfaceEdPis a pointer to a solid or surface element.
Returns
SUCCESS if the operation is completed successfully, or MDLERR_BADELEMENT if the process cannot be completed on the given solid or surface.
See also
mdlSurface_extractRevolution2
int mdlSurface_extractRevolution2 ( MSElementDescrH  boundaryEdPP,
DPoint3dP  centerP,
DPoint3dP  axisP,
double *  sweepAngleP,
MSElementDescrCP  surfaceEdP 
)

Used to retrieve information about a revolved surface.

Parameters
[out]boundaryEdPPis the boundary profile of the revolved surface.
[out]centerPis the center point of the revolved surface, or NULL.
[out]axisPis the direction of the axis of revolution, or NULL.
[out]sweepAnglePis the sweep angle of the revolved surface, or NULL.
[in]surfaceEdPis the surface or solid element from which the information will be retrieved by the function.
Returns
SUCCESS if the operation is completed successfully, or MDLERR_BADELEMENT if the surface is not of the appropriate type, or ERROR if an error occurs.
See also
mdlSurface_revolutionIsSphere
bool mdlSurface_extrusionIsBlock ( double *  lengthP,
double *  widthP,
DPoint3dP  centerPtP,
RotMatrixP  rMatrixP,
DPoint3dP  extrudeDirP,
double  extrudeDist,
MSElementDescrP  boundEdP 
)

Returns whether an extrusion operation on a given boundary element will produce a block.

Parameters
[out]lengthPlength of the block
[out]widthPwidth of the block
[out]centerPtPthe center point of the equivalent block
[out]rMatrixPindicates the rotation matrix giving the orientation of the equivalent block to the extrusion of the boundary element.
[in]extrudeDirPdirection of extrusion operation
[in]extrudeDistextrusion distance
[in]boundEdPthe boundary element to be tested.
Returns
true if the extrusion of the boundary would yield a block; false otherwise.
bool mdlSurface_extrusionIsWedge ( double *  radiusP,
double *  sweepAngleP,
DPoint3dP  centerP,
RotMatrixP  rotMatrixP,
MSElementDescrP  boundEdP,
DgnModelRefP  modelRef 
)

Returns whether an extrusion operation on a given boundary element will produce a wedge.

If the boundary element is a complex shape or a complex string element, and it is comprised of two lines and an arc element, there is at least the possibility of the extrusion being a wedge. If these conditions are not met by the boundary element, the function exits and returns false. If the extrusion does create a wedge, then the radius, sweep angle, center point and rotation matrix for the equivalent wedge are calculated and returned.

Parameters
[out]radiusPis the radius value of the equivalent wedge to the extrusion of the boundary element.
[out]sweepAnglePis the sweep angle of the equivalent wedge to the extrusion of the boundary element.
[out]centerPis the center point of the equivalent wedge to the extrusion of the boundary element.
[out]rotMatrixPindicates the rotation matrix giving the orientation of the equivalent wedge to the extrusion of the boundary element.
[in]boundEdPis the boundary element to be tested.
[in]modelRefindicates the design model that contains the boundary element.
Returns
true if the extrusion of the boundary would yield a wedge; false otherwise.
See also
mdlSurface_revolutionIsTorus
bool mdlSurface_revolutionIsSphere ( double *  radiusP,
DPoint3dP  centerP,
RotMatrixP  rotMatrixP,
MSElementDescrP  boundaryEdP,
DPoint3dP  revCenterP,
DPoint3dP  revAxisP,
double  revSweep 
)

Returns whether a revolution operation on a given set of values will produce a sphere.

If the boundary element of the revolution is an arc, and the axis of revolution lies in the same plane as the arc, then there is at least the possibility of the revolution producing a sphere, and the function will proceed with a complete check, returning radius, center, and rotation matrix values for the sphere equivalent of the revolution operation. If neither of these cases is true, the revolution will not produce a sphere, and the function exits.

Parameters
[out]radiusPis the radius value of the equivalent sphere to the revolution operation of the given boundary.
[out]centerPis the center point of the equivalent sphere to the revolution operation of the given boundary.
[out]rotMatrixPis the rotation matrix of the equivalent sphere to the revolution operation of the given boundary.
[in]boundaryEdPis the boundary element to be used in the revolution operation.
[in]revCenterPis the center of the revolution operation.
[in]revAxisPis the axis of revolution.
[in]revSweepis the sweep angle of the revolution operation.
Returns
true if the revolution operation would produce a sphere, otherwise false.
See also
mdlSurface_extractRevolution2
bool mdlSurface_revolutionIsTorus ( double *  primaryRadiusP,
double *  secondaryRadiusP,
DPoint3dP  centerP,
RotMatrixP  rotMatrixP,
MSElementDescrP  boundaryEdP,
DPoint3dP  revCenterP,
DPoint3dP  revAxisP,
double  revSweep 
)

Returns whether a revolution operation on a given set of values will produce a torus.

If the boundary element of the revolution is a circle, and the axis of revolution lies in the same plane as the arc, then there is at least the possibility of the revolution producing a torus, and the function will proceed with a complete check, returning radius, center, and rotation matrix values for the torus equivalent of the revolution operation. If neither of these cases is true, the revolution will not produce a torus, and the function exits.

Parameters
[out]primaryRadiusPis the radius value of the equivalent torus to the revolution operation of the given boundary.
[out]secondaryRadiusPis the radius value of the equivalent torus to the revolution operation of the given boundary.
[out]centerPis the center location of the equivalent torus to the revolution operation of the given boundary.
[out]rotMatrixPis the rotation matrix specifying the orientation of the equivalent torus to the revolution operation of the given boundary.
[in]boundaryEdPis the boundary element to test.
[in]revCenterPis the center point of the revolution.
[in]revAxisPindicates the direction of the axis of revolution.
[in]revSweepis the sweep angle of the revolution applied to the boundary.
Returns
true if the revolution applied to the boundary element would result in a torus; false otherwise.
See also
mdlSurface_revolutionIsSphere

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.