CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
OdGiGeometrySimplifier Class Reference

#include <GiGeometrySimplifier.h>

Inheritance diagram for OdGiGeometrySimplifier:
OdGiConveyorGeometry AECGe::Harvester OdGiPlineContourCalcSimplifierInheritance< SimplClass > AECGe::HarvesterOverall

Public Member Functions

 OdGiGeometrySimplifier ()
 
 ~OdGiGeometrySimplifier ()
 
void setDeviation (const OdGeDoubleArray &deviations)
 
void setDeviation (const OdGiDeviation *pDeviation)
 
OdGsView::RenderMode renderMode ()
 
void setDrawContext (OdGiConveyorContext *pDrawCtx)
 
OdGiConveyorContextdrawContext ()
 
const OdGiConveyorContextdrawContext () const
 
virtual void polylineOut (OdInt32 numPoints, const OdGePoint3d *vertexList)
 
virtual void polygonOut (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0)
 
void setVertexData (OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGiVertexData *pVertexData=0)
 
OdInt32 vertexDataCount () const
 
const OdGePoint3dvertexDataList () const
 
const OdGiVertexDatavertexData () const
 
OdGsMarker baseSubEntMarker () const
 
OdGiVisibility polylineOutEdgeVisibility () const
 
virtual void plineProc (const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
 
virtual void polylineProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
 
virtual void polygonProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
 
virtual void xlineProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
 
virtual void rayProc (const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
 
virtual void meshProc (OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
 
virtual void generateMeshWires (OdInt32 numRows, OdInt32 numColumns, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData)
 
virtual void generateMeshFaces (OdInt32 numRows, OdInt32 numColumns, const OdGiFaceData *pFaceData)
 
virtual void meshFaceOut (const OdInt32 *faceList, const OdGeVector3d *pNormal)
 
virtual void filledShellProc (const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
virtual void shellProc (OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
 
virtual void generateShellWires (OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
virtual void generateShellFaces (OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0)
 
virtual void shellFaceOut (OdInt32 faceListSize, const OdInt32 *faceList, const OdGeVector3d *pNormal)
 
virtual void triangleOut (const OdInt32 *vertices, const OdGeVector3d *pNormal)
 
virtual void generateShellFacets (OdInt32 faceListSize, const OdInt32 *faceList, const OdGiFaceData *pFaceData=0, OdInt32 maxFacetSize=3)
 
virtual void facetOut (const OdInt32 *faceList, const OdInt32 *edgeIndices, const OdGeVector3d *pNormal)
 
virtual void circleProc (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
 
void circleProc2 (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, const OdGeVector3d *pExtrusion=0)
 
virtual void circleProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
 
virtual void circularArcProc (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
 
virtual void circularArcProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
 
virtual void textProc (const OdGePoint3d &position, const OdGeVector3d &u, const OdGeVector3d &v, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
 
virtual void textProc2 (const OdGePoint3d &position, const OdGeVector3d &u, const OdGeVector3d &v, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0, const OdGeExtents3d *extentsBox=0)
 
virtual void shapeProc (const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
 
virtual void nurbsProc (const OdGeNurbCurve3d &nurbsCurve)
 
virtual void ellipArcProc (const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
 
virtual bool ellipArcProc (const OdGeEllipArc3d &ellipArc, double width)
 
virtual void rasterImageProc (const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiRasterImage *pImage, const OdGePoint2d *uvBoundary, OdUInt32 numBoundPts, bool transparency=false, double brightness=50.0, double contrast=50.0, double fade=0.0)
 
virtual void initTexture (const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiRasterImage *pImage, bool transparency, double brightness, double contrast, double fade)
 
virtual void uninitTexture ()
 
virtual void metafileProc (const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
 
virtual void polypointProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency=0, const OdGeVector3d *pNormals=0, const OdGeVector3d *pExtrusions=0, const OdGsMarker *pSubEntMarkers=0, OdInt32 nPointSize=0)
 
virtual void rowOfDotsProc (OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
 
virtual void pointCloudProc (const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter=NULL)
 
virtual void edgeProc (const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)
 
virtual void polylineOut (OdInt32 numPoints, const OdInt32 *vertexIndexList)
 
void convertMeshToShell (OdInt32 rows, OdInt32 columns, const OdGePoint3d *pVertexList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData, const OdGiVertexData *pVertexData)
 
virtual void ttfPolyDrawProc (OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *pBezierTypes, const OdGiFaceData *pFaceData=0)
 
void subdivideShellByVertexLimit (OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData, const OdGiFaceData *pFaceData, const OdGiVertexData *pVertexData, OdUInt32 nLimit)
 
virtual bool generateShellFill (OdGiHatchPatternPtr pHatch, OdDouble &fillDensity, const OdGePoint3d *pVertexList, OdInt32 faceListSize, const OdInt32 *pFaceList, const OdGiFaceData *pFaceData=0, OdGiMapperItemEntry *pMapper=0)
 
- Public Member Functions inherited from OdGiConveyorGeometry
virtual ~OdGiConveyorGeometry ()
 
virtual void plineProc (const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)=0
 
virtual void polylineProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)=0
 
virtual void polygonProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)=0
 
virtual void xlineProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)=0
 
virtual void rayProc (const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)=0
 
virtual void meshProc (OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
 
virtual void shellProc (OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)=0
 
virtual void circleProc (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)=0
 
virtual void circleProc2 (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &, const OdGeVector3d *pExtrusion=0)
 
virtual void circleProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)=0
 
virtual void circularArcProc (const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
 
virtual void circularArcProc (const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
 
virtual void ellipArcProc (const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)=0
 
virtual void nurbsProc (const OdGeNurbCurve3d &nurbsCurve)=0
 
virtual void textProc (const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, const OdChar *msg, OdInt32 numBytes, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)=0
 
virtual void textProc2 (const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, const OdChar *msg, OdInt32 numBytes, bool raw, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0, const OdGeExtents3d *=0)
 
virtual void shapeProc (const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)=0
 
virtual void rasterImageProc (const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiRasterImage *pImage, const OdGePoint2d *uvBoundary, OdUInt32 numBoundPts, bool transparency=false, double brightness=50.0, double contrast=50.0, double fade=0.0)=0
 
virtual void metafileProc (const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)=0
 
virtual void xlineProc2 (const OdGePoint3d &basePoint, const OdGeVector3d &direction)
 
virtual void rayProc2 (const OdGePoint3d &basePoint, const OdGeVector3d &direction)
 
virtual void setExtentsProc (const OdGePoint3d *, bool=true)
 
virtual int ttfCharProcFlags () const
 
virtual bool ttfCharProc (OdChar, bool, const OdGePoint3d &, const OdGeBoundBlock3d *)
 
virtual void ttfPolyDrawProc (OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *, const OdGiFaceData *pFaceData=0)
 
virtual void conveyorBoundaryInfoProc (const OdGeBoundBlock3d &, OdUInt32 &)
 
void polypointProc2 (OdGiConveyorContext *pContext, OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors=0, const OdCmTransparency *pTransparency=0, const OdGeVector3d *pNormals=0, const OdGeVector3d *pExtrusions=0, const OdGsMarker *pSubEntMarkers=0, OdInt32 nPointSize=0)
 
void rowOfDotsProc2 (OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
 
virtual void polypointProc (OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency=0, const OdGeVector3d *pNormals=0, const OdGeVector3d *pExtrusions=0, const OdGsMarker *pSubEntMarkers=0, OdInt32 nPointSize=0)=0
 
void polyPolygonProc2 (OdGiConveyorContext *pContext, OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions, const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints, const OdCmEntityColor *pOutlineColors=NULL, const OdUInt32 *pOutlinePsLinetypes=NULL, const OdCmEntityColor *pFillColors=NULL, const OdCmTransparency *pFillTransparencies=NULL)
 
virtual void rowOfDotsProc (OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)=0
 
void pointCloudProc2 (OdGiConveyorContext *pContext, const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter)
 
virtual void pointCloudProc (const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter=NULL)=0
 
virtual void edgeProc (const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)=0
 

Protected Types

enum  SimplifierFlags {
  kSimplProcessingText = (1 << 0) , kSimplFillModeDisabled = (1 << 1) , kSimplEyeSpaceSilhs = (1 << 2) , kSimplEdgeVisible = (1 << 3) ,
  kSimplEdgeSilhouette = (1 << 4) , kSimplNoFaceNormals = (1 << 5) , kSimplGenTrgNormals = (1 << 6) , kSimplLastFlag = kSimplGenTrgNormals ,
  kZInverted = (1 << 30) , kDiscardBackFaces = (1 << 31)
}
 

Protected Member Functions

void drawTypedArc (OdGiArcType arcType, const OdGePoint3d &center, OdGePoint3dArray &points, const OdGeVector3d *pNormal, const OdGeVector3d *pExtrusion)
 
double deviation (const OdGiDeviationType deviationType, const OdGePoint3d &pointOnCurve) const
 
bool fillMode ()
 
bool fillMode (bool &drawEdges)
 
bool fillMode (bool &drawEdges, bool &secColor)
 
bool circleArcFillMode ()
 
bool shmFillMode (bool &drawEdges)
 
bool shmFillMode (bool &drawEdges, bool &secColor)
 
bool processingText () const
 
bool silhouettesProcessingInEyeSpace () const
 
void enableSilhouettesProcessingInEyeSpace (bool bEnable)
 
OdGiContextgiCtx () const
 
virtual bool plineArcSegmentsAsArcProc (OdUInt32 drawContextFlags) const
 
bool jointLineWithArc (const OdGiPolyline &lwBuf, OdInt32 LineSegNo, OdInt32 ArcSegNo, OdGePoint3dArray &points)
 
bool jointLineWithLine (const OdGiPolyline &lwBuf, OdInt32 LineSegNo1, OdInt32 LineSegNo2, OdGePoint3dArray &points)
 
bool jointArcWithLine (const OdGiPolyline &lwBuf, OdGeCircArc2d &arc, OdInt32 arcSegNo, OdInt32 lineSegNo, OdGePoint3d &point1, OdGePoint3d &point2)
 
bool isMeshRequireVertexNormals (const OdGiVertexData *pVertexData)
 
void generateMeshVertexNormals (OdInt32 numRows, OdInt32 numCols, const OdGePoint3d *pVertexList, const OdGiVertexData *pVertexData, OdGiVertexData &vertexData, OdGeVector3dArray &normals)
 
void polylineOut (OdInt32 numPoints, const OdInt32 *vertexIndexList, const OdGiEdgeData *pEdgeData, OdInt32 nEdgeIndex)
 
OdGeLineSeg2dtmpLineSeg2d ()
 
OdGeLineSeg2dtmpLineSeg2dEx (int n)
 
OdGeLine2dtmpLine2dEx (int n)
 
OdGeCircArc2dtmpCircArc2d ()
 
OdGeCircArc3dtmpCircArc3d ()
 
OdGeEllipArc3dtmpEllipArc3d ()
 
OdGePoint3dArraytmpPoints3d (int nLevel)
 

Protected Attributes

OdGiConveyorContextm_pDrawCtx
 
OdGiSubEntityTraitsm_pTraits
 
OdGsMarker m_baseSubEntMarker
 
OdUInt32 m_simplFlags
 
const OdGiDeviationm_pDeviation
 
OdGeDoubleArray m_deviations
 
OdGsView::RenderMode m_renderMode
 
OdGeLineSeg2dm_pLineSeg2d
 
OdGeLineSeg2dm_pLineSeg2dEx [2]
 
OdGeLine2dm_pLine2dEx [4]
 
OdGeCircArc2dm_pCircArc2d
 
OdGeCircArc3dm_pCircArc3d
 
OdGeEllipArc3dm_pEllipArc3d
 

Additional Inherited Members

- Public Types inherited from OdGiConveyorGeometry
enum  ETtfCharProcFlags { kTtfCharProcEnable = 1 , kTtfCharProcBoundBlock = 2 }
 
enum  EConveyorBoundaryInfoFlags {
  kBoundaryProcXform = 1 , kBoundaryProcXformNonUni = 2 , kBoundaryProcProjection = 4 , kBoundaryProcClip = 8 ,
  kBoundaryProcClipFull = 16
}
 

Detailed Description

This class provides tessellation functionality for the ODA Platform vectorization framework.

Remarks
Tessellation consists of breaking complex entities into sets of simpler entities.

An instance of this class is used to simplify the geometry produced by the ODA Platform vectorization framework.

<group OdGi_Classes>

Definition at line 58 of file GiGeometrySimplifier.h.

Member Enumeration Documentation

◆ SimplifierFlags

Enumerator
kSimplProcessingText 
kSimplFillModeDisabled 
kSimplEyeSpaceSilhs 
kSimplEdgeVisible 
kSimplEdgeSilhouette 
kSimplNoFaceNormals 
kSimplGenTrgNormals 
kSimplLastFlag 
kZInverted 
kDiscardBackFaces 

Definition at line 79 of file GiGeometrySimplifier.h.

Constructor & Destructor Documentation

◆ OdGiGeometrySimplifier()

OdGiGeometrySimplifier::OdGiGeometrySimplifier ( )

◆ ~OdGiGeometrySimplifier()

OdGiGeometrySimplifier::~OdGiGeometrySimplifier ( )

Member Function Documentation

◆ baseSubEntMarker()

OdGsMarker OdGiGeometrySimplifier::baseSubEntMarker ( ) const
inline

Retrieves base sub-entity selection marker for polylineOut().

Returns
sub-entity selection markers.

Definition at line 313 of file GiGeometrySimplifier.h.

◆ circleArcFillMode()

bool OdGiGeometrySimplifier::circleArcFillMode ( )
protected

◆ circleProc() [1/2]

virtual void OdGiGeometrySimplifier::circleProc ( const OdGePoint3d center,
double  radius,
const OdGeVector3d normal,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a circle into this vectorization context.

Parameters
center[in] Center point.
radius[in] Radius.
normal[in] Normal vector.
pExtrusion[in] Extrusion vector.
Remarks
Client applications have the option of overriding these function to process the circle data themselves. If the function is not overridden, the default implementation tessellates the passed in circle using the current kOdGiMaxDevForCircle deviation, and calls polylineProc with the resulting data.
See also
<link tv_geometry_circles, Work with Circles>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ circleProc() [2/2]

virtual void OdGiGeometrySimplifier::circleProc ( const OdGePoint3d firstPoint,
const OdGePoint3d secondPoint,
const OdGePoint3d thirdPoint,
const OdGeVector3d pExtrusion = 0 
)
virtual

Processes a circle.

Parameters
firstPoint[in] First point.
secondPoint[in] Second point.
thirdPoint[in] Third point.
pExtrusion[in] Extrusion vector.
See also
<link tv_geometry_circles, Work with Circles>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ circleProc2()

void OdGiGeometrySimplifier::circleProc2 ( const OdGePoint3d center,
double  radius,
const OdGeVector3d normal,
const OdGeVector3d startVector,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a circle into this vectorization context.

Parameters
center[in] Center point.
radius[in] Radius.
normal[in] Normal vector.
startVector[in] Normal vector.
pExtrusion[in] Extrusion vector.
See also
<link tv_geometry_circles, Work with Circles>

Reimplemented from OdGiConveyorGeometry.

◆ circularArcProc() [1/2]

virtual void OdGiGeometrySimplifier::circularArcProc ( const OdGePoint3d center,
double  radius,
const OdGeVector3d normal,
const OdGeVector3d startVector,
double  sweepAngle,
OdGiArcType  arcType = kOdGiArcSimple,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a circular arc into this vectorization context.

Parameters
center[in] Center point.
radius[in] Radius.
normal[in] Normal to a plane on which a circular arc lies.
startVector[in] Defines the start of this arc.
sweepAngle[in] Angle that defines the arc.
arcType[in] Arc type.
pExtrusion[in] Extrusion vector.
Remarks
arcType must be one of the following:

Value Description kOdGiArcSimple 0 Unfilled. kOdGiArcSector 1 Filled area bounded by the arc and its center. kOdGiArcChord 2 Filled area bounded by the arc and its end points

Remarks
Client applications have the option of overriding this function to process the circular arc data themselves. If the function is not overridden, the default implementation tessellates the passed in circular arc using the current kOdGiMaxDevForCircle deviation, and calls polylineProc with the resulting data (for kOdGiArcSimple type arcs). For kOdGiArcSector and kOdGiArcChord arc types, polygonOut is called.
See also
<link tv_geometry_arcs, Work with Arcs>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ circularArcProc() [2/2]

virtual void OdGiGeometrySimplifier::circularArcProc ( const OdGePoint3d firstPoint,
const OdGePoint3d secondPoint,
const OdGePoint3d thirdPoint,
OdGiArcType  arcType = kOdGiArcSimple,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a circular arc into this vectorization context.

Parameters
firstPoint[in] First point.
secondPoint[in] Second point.
thirdPoint[in] Third point.
arcType[in] Arc type.
pExtrusion[in] Extrusion vector.
Remarks
arcType must be one of the following:

Value Description kOdGiArcSimple 0 Unfilled. kOdGiArcSector 1 Filled area bounded by the arc and its center. kOdGiArcChord 2 Filled area bounded by the arc and its end points


Remarks
Client applications have the option of overriding this function to process the circular arc data themselves. If the function is not overridden, the default implementation tessellates the passed in circular arc using the current kOdGiMaxDevForCircle deviation, and calls polylineProc with the resulting data (for kOdGiArcSimple type arcs). For kOdGiArcSector and kOdGiArcChord arc types, polygonOut is called.
See also
<link tv_geometry_arcs, Work with Arcs>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ convertMeshToShell()

void OdGiGeometrySimplifier::convertMeshToShell ( OdInt32  rows,
OdInt32  columns,
const OdGePoint3d pVertexList,
const OdGiEdgeData pEdgeData,
const OdGiFaceData pFaceData,
const OdGiVertexData pVertexData 
)

Utility function to be called from client implementation of meshProc() to unify mesh primitives processing.

Parameters
rows[in] Number of rows.
columns[in] Number of columns.
pVertexList[in] Pointer to an array of vertices.
pEdgeData[in] Additional edge data.
pFaceData[in] Additional face data.
pVertexData[in] Additional vertex data.
See also
<link tv_geometry_meshes, Work with Meshes>
<link tv_geometry_shells, Work with Shells>

◆ deviation()

double OdGiGeometrySimplifier::deviation ( const OdGiDeviationType  deviationType,
const OdGePoint3d pointOnCurve 
) const
protected

Returns the recommended maximum deviation of the current vectorization for the specified point on the curve or surface being tesselated.

Parameters
deviationType[in] Deviation type.
pointOnCurve[in] Point on the curve.

◆ drawContext() [1/2]

OdGiConveyorContext * OdGiGeometrySimplifier::drawContext ( )
inline

Retrieves the OdGiConveyorContext associated with this Vectorizer object.

Returns
pointer to the OdGiConveyorContext object associated with this Vectorizer.

Definition at line 217 of file GiGeometrySimplifier.h.

◆ drawContext() [2/2]

const OdGiConveyorContext * OdGiGeometrySimplifier::drawContext ( ) const
inline

Retrieves the OdGiConveyorContext associated with this Vectorizer object.

Returns
pointer to the OdGiConveyorContext object associated with this Vectorizer.

Definition at line 225 of file GiGeometrySimplifier.h.

◆ drawTypedArc()

void OdGiGeometrySimplifier::drawTypedArc ( OdGiArcType  arcType,
const OdGePoint3d center,
OdGePoint3dArray points,
const OdGeVector3d pNormal,
const OdGeVector3d pExtrusion 
)
protected

Draws an arc of the specified type.

Parameters
arcType[in] Arc type.
center[in] Center of arc.
points[out] Receives an array of points comprising the arc.
pNormal[in] Pointer to the normal to the arc.
pExtrusion[in] Pointer to the extrusion direction of the arc.

◆ edgeProc()

virtual void OdGiGeometrySimplifier::edgeProc ( const OdGiEdge2dArray edges,
const OdGeMatrix3d pXform = 0 
)
virtual

Introduces an edge into this vectorization context.

Parameters
edges[in] Array of 2d points that define a boundary.
pXform[in] Transformation matrix.
Remarks
Client applications have the option of overriding this function to process the edge data themselves. If the function is not overridden, the default implementation of this function processes the edge, calling polylineProc for each hatch line or shellProc for solid and gradient filling.

Implements OdGiConveyorGeometry.

◆ ellipArcProc() [1/2]

virtual void OdGiGeometrySimplifier::ellipArcProc ( const OdGeEllipArc3d ellipArc,
const OdGePoint3d endPointOverrides = 0,
OdGiArcType  arcType = kOdGiArcSimple,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces an elliptical arc into this vectorization context.

Parameters
ellipArc[in] Elliptical arc.
endPointOverrides[in] Array of points to be used as the first and last points of the vectorized arc.
arcType[in] Arc type.
pExtrusion[in] Extrusion vector.
Remarks
Client applications have the option of overriding this function to process the elliptical arc data themselves. If the function is not overridden, the default implementation tessellates the passed in elliptical arc using the current kOdGiMaxDevForCurve deviation, and calls polylineProc with the resulting data.
See also
<link tv_geometry_arcs, Work with Arcs>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ ellipArcProc() [2/2]

virtual bool OdGiGeometrySimplifier::ellipArcProc ( const OdGeEllipArc3d ellipArc,
double  width 
)
virtual

Introduces an elliptical arc into this vectorization context.

Parameters
ellipArc[in] Elliptical arc.
width[in] Arc width.
Remarks
Client applications have the option of overriding this function to process the elliptical arc data themselves. If the function is not overridden, the default implementation tessellates the passed in elliptical arc using the current kOdGiMaxDevForCurve deviation, and calls polylineProc with the resulting data.
See also
<link tv_geometry_arcs, Work with Arcs>

◆ enableSilhouettesProcessingInEyeSpace()

void OdGiGeometrySimplifier::enableSilhouettesProcessingInEyeSpace ( bool  bEnable)
inlineprotected

Enables processing silhouettes in ECS (Eye Coordinates Space).

Definition at line 138 of file GiGeometrySimplifier.h.

◆ facetOut()

virtual void OdGiGeometrySimplifier::facetOut ( const OdInt32 faceList,
const OdInt32 edgeIndices,
const OdGeVector3d pNormal 
)
virtual

Outputs a facet.

Parameters
faceList[in] List of numbers that define the vertices in the facet.
edgeIndices[in] Currently not used.
pNormal[in] Pointer to the normal vector for this face.
Remarks
This function is called from the default implementations of generateShellFacets.
Vertex data needed for this function is obtained by calling vertexDataList and vertexData. Client applications have the option of overriding this function to process the face data themselves. If the function is not overridden, the default implementation of this function calls polygonOut with the face data.
See also
Vectorization Primitives

◆ filledShellProc()

virtual void OdGiGeometrySimplifier::filledShellProc ( const OdGePoint3d vertexList,
OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiEdgeData pEdgeData = 0,
const OdGiFaceData pFaceData = 0 
)
virtual

BIM-specific version of shellProc which also generates fill pattern data for shell faces.

Parameters
vertexList[in] OdGePoint3d Array which represents vertices.
faceListSize[in] Number of entries in faceList.
faceList[in] List of numbers that define the faces in the shell.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
See also
<link tv_geometry_shells, Work with Shells>
<link tv_working_with_attributes_fill_patterns, Work with Fill Patterns>

◆ fillMode() [1/3]

bool OdGiGeometrySimplifier::fillMode ( )
protected

Returns the FillMode and DrawEdges for this Vectorizer object.

Parameters
drawEdges[out] Receives the DrawEdges value.
Remarks
As implemented, this function returns false if called without arguments

◆ fillMode() [2/3]

bool OdGiGeometrySimplifier::fillMode ( bool &  drawEdges)
protected

◆ fillMode() [3/3]

bool OdGiGeometrySimplifier::fillMode ( bool &  drawEdges,
bool &  secColor 
)
protected

◆ generateMeshFaces()

virtual void OdGiGeometrySimplifier::generateMeshFaces ( OdInt32  numRows,
OdInt32  numColumns,
const OdGiFaceData pFaceData 
)
virtual

Tessellates a filled mesh.

Parameters
numRows[in] Number of rows in the mesh.
numColumns[in] Number of columns in the mesh.
pFaceData[in] Pointer to additional face data.
Remarks
This function is called from the default implementation of meshProc to tessellate a filled mesh. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData.

Client applications have the option of overriding this function to process the mesh data themselves. If the function is not overridden, the default implementation of this function processes the mesh into a set of facets. More specifically, the default generateMeshFaces function processes mesh attributes, and calls triangleOut function with the tessellated mesh data.

◆ generateMeshVertexNormals()

void OdGiGeometrySimplifier::generateMeshVertexNormals ( OdInt32  numRows,
OdInt32  numCols,
const OdGePoint3d pVertexList,
const OdGiVertexData pVertexData,
OdGiVertexData vertexData,
OdGeVector3dArray normals 
)
protected

◆ generateMeshWires()

virtual void OdGiGeometrySimplifier::generateMeshWires ( OdInt32  numRows,
OdInt32  numColumns,
const OdGiEdgeData pEdgeData,
const OdGiFaceData pFaceData 
)
virtual

Tessellates a wireframe mesh.

Parameters
numRows[in] Number of rows in the mesh.
numColumns[in] Number of columns in the mesh.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
Remarks
This function is called from the default implementation of meshProc to tessellate a wireframe mesh. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData.

Client applications have the option of overriding this function to process the mesh data themselves. If the function is not overridden, the default implementation of this function processes the mesh into a set of facets. More specifically, the default generateMeshWires function processes mesh attributes, and calls polylineOut with the tessellated mesh data.

◆ generateShellFaces()

virtual void OdGiGeometrySimplifier::generateShellFaces ( OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiEdgeData pEdgeData = 0,
const OdGiFaceData pFaceData = 0 
)
virtual

Tessellates a filled wireframe shell.

Parameters
faceListSize[in] Number of entries in faceList.
faceList[in] List of numbers that define the faces in the shell.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
Remarks
This function is called from the default implementation of shellProc to tessellate a filled wireframe shell. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData. Client applications have the option of overriding this function to process the shell data themselves. If the function is not overridden, the default implementation of this function processes the shell into a set of facets. More specifically, the default generateShellFaces function processes shell attributes, and calls shellFaceOut with the tessellated shell data.
See also
OdGiEdgeData, OdGiFaceData, Vectorization Primitives

◆ generateShellFacets()

virtual void OdGiGeometrySimplifier::generateShellFacets ( OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiFaceData pFaceData = 0,
OdInt32  maxFacetSize = 3 
)
virtual

Tessellates a shell.

Parameters
faceListSize[in] Number of entries in faceList.
faceList[in] List of numbers that define the faces in the shell.
pFaceData[in] Pointer to additional face data.
maxFacetSize[in] Maximum number of edges in the tessellated faces produced by this function.
Remarks
This auxiliary function that can be used to tessellate a shell up into a set of faces, each with a maximum number of edges.
Vertex data needed for this function is obtained by calling vertexDataList and vertexData (so the caller of this function is responsible for setting this data). Face data is passed to the facetOut function, which can be overridden by client applications to capture the tessellated data.
See also
OdGiFaceData, Vectorization Primitives

◆ generateShellFill()

virtual bool OdGiGeometrySimplifier::generateShellFill ( OdGiHatchPatternPtr  pHatch,
OdDouble fillDensity,
const OdGePoint3d pVertexList,
OdInt32  faceListSize,
const OdInt32 pFaceList,
const OdGiFaceData pFaceData = 0,
OdGiMapperItemEntry pMapper = 0 
)
virtual

Applies given fill pattern to the shell. Returns true if pattern was applied succesfully and false if pattern is too dense and solid fill is required.

Parameters
pHatch[in] Smart pointer to hatch pattern to be applied.
fillDensity[in] Fill density.
pVertexList[in] Pointer to a vertex list.
faceListSize[in] Number of faces.
pFaceList[in] Pointer to a face list.
pFaceData[in] Additional face data.
pMapper[in] Pointer to a material mapper.

◆ generateShellWires()

virtual void OdGiGeometrySimplifier::generateShellWires ( OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiEdgeData pEdgeData = 0,
const OdGiFaceData pFaceData = 0 
)
virtual

Tessellates a wireframe shell.

Parameters
faceListSize[in] Number of entries in faceList.
faceList[in] List of numbers that define the faces in the shell.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
Remarks
This function is called from the default implementation of shellProc to tessellate a wireframe shell. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData. Client applications have the option of overriding this function to process the shell data themselves. If the function is not overridden, the default implementation of this function processes the shell into a set of facets. More specifically, the default generateShellWires function processes shell attributes, and calls polylineOut with the tessellated shell data.
See also
OdGiEdgeData, OdGiFaceData, Vectorization Primitives

Reimplemented in OdGiPlineContourCalcSimplifierInheritance< SimplClass >.

◆ giCtx()

OdGiContext & OdGiGeometrySimplifier::giCtx ( ) const
inlineprotected

Returns the OdGiContext for this Vectorizer object.

Definition at line 143 of file GiGeometrySimplifier.h.

◆ initTexture()

virtual void OdGiGeometrySimplifier::initTexture ( const OdGePoint3d origin,
const OdGeVector3d u,
const OdGeVector3d v,
const OdGiRasterImage pImage,
bool  transparency,
double  brightness,
double  contrast,
double  fade 
)
virtual

Initializes a texture map for this Vectorizer object.

Parameters
origin[in] Lower-left corner.
u[in] Image width vector.
v[in] Image height vector.
pImage[in] Pointer to the RasterImage object.
transparency[in] True if and only if image transparency is on.
brightness[in] Image brightness [0.0 .. 100.0].
contrast[in] Image contrast [0.0 .. 100.0].
fade[in] Image fade value [0.0 .. 100.0].

◆ isMeshRequireVertexNormals()

bool OdGiGeometrySimplifier::isMeshRequireVertexNormals ( const OdGiVertexData pVertexData)
protected

◆ jointArcWithLine()

bool OdGiGeometrySimplifier::jointArcWithLine ( const OdGiPolyline lwBuf,
OdGeCircArc2d arc,
OdInt32  arcSegNo,
OdInt32  lineSegNo,
OdGePoint3d point1,
OdGePoint3d point2 
)
protected

◆ jointLineWithArc()

bool OdGiGeometrySimplifier::jointLineWithArc ( const OdGiPolyline lwBuf,
OdInt32  LineSegNo,
OdInt32  ArcSegNo,
OdGePoint3dArray points 
)
protected

◆ jointLineWithLine()

bool OdGiGeometrySimplifier::jointLineWithLine ( const OdGiPolyline lwBuf,
OdInt32  LineSegNo1,
OdInt32  LineSegNo2,
OdGePoint3dArray points 
)
protected

◆ meshFaceOut()

virtual void OdGiGeometrySimplifier::meshFaceOut ( const OdInt32 faceList,
const OdGeVector3d pNormal 
)
virtual

Outputs a face of a tessilated mesh.

Parameters
faceList[in] Array of numbers that define the face.
pNormal[in] Pointer to the normal to the face.
See also
Vectorization Primitives

◆ meshProc()

virtual void OdGiGeometrySimplifier::meshProc ( OdInt32  numRows,
OdInt32  numColumns,
const OdGePoint3d vertexList,
const OdGiEdgeData pEdgeData = 0,
const OdGiFaceData pFaceData = 0,
const OdGiVertexData pVertexData = 0 
)
virtual

Processes meshes.

Parameters
numRows[in] Number of rows.
numColumns[in] Number of columns.
vertexList[in] Array of vertices.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
pVertexData[in] Pointer to additional vertex data.
Remarks
Client applications have the option of overriding this function to process the mesh data themselves. If the function is not overridden, the default implementation of this function processes the mesh into a set of facets. More specifically, the default meshProc function calls setVertexData, and the calls either generateMeshFaces for filled facets, or generateMeshWires for a wireframe.
See also
<link tv_geometry_meshes, Work with Meshes>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ metafileProc()

virtual void OdGiGeometrySimplifier::metafileProc ( const OdGePoint3d origin,
const OdGeVector3d u,
const OdGeVector3d v,
const OdGiMetafile pMetafile,
bool  dcAligned = true,
bool  allowClipping = false 
)
virtual

Processes a metafile. Currently not implemented.

Parameters
origin[in] Origin of a metafile content.
u[in] Metafile content u-parameter.
v[in] Metafile content v-parameter.
pMetafile[in] Pointer to a metafile.
dcAligned[in] Flag that specifies whether metafile content should be aligned to device coordinate system.
allowClipping[in] Flag that specifies whether clipping should be allowed for a metafile.

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester.

◆ nurbsProc()

virtual void OdGiGeometrySimplifier::nurbsProc ( const OdGeNurbCurve3d nurbsCurve)
virtual

Introduces nurbs into this vectorization context.

Parameters
nurbsCurve[in] NURBS curve data.
Remarks
Client applications have the option of overriding this function to process the NURBS data themselves. If the function is not overridden, the default implementation tessellates the passed in NURBS curve using the current kOdGiMaxDevForCurve deviation, and calls polylineProc with the resulting data.
See also
<link tv_geometry_nurbs, Work with NURBS>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ plineArcSegmentsAsArcProc()

virtual bool OdGiGeometrySimplifier::plineArcSegmentsAsArcProc ( OdUInt32  drawContextFlags) const
protectedvirtual

Controls plineProc arc segment output.

Parameters
drawContextFlags[in] Input conveyor context draw flags.
Returns
Returns true if plineProc arc segments as arc output enabled. Returns false to output plineProc arc segments as polyline segments chain.

◆ plineProc()

virtual void OdGiGeometrySimplifier::plineProc ( const OdGiPolyline polyline,
const OdGeMatrix3d pXfm = 0,
OdUInt32  fromIndex = 0,
OdUInt32  numSegs = 0 
)
virtual

Processes polylines.

Parameters
polyline[in] Polyline to process.
pXfm[in] Transformation matrix.
fromIndex[in] Index of the first segment to be processed.
numSegs[in] Number of segments to be processed.
Remarks
Client applications have the option of overriding this function to process the polyline data themselves. If the function is not overridden, the default implementation of this function processes the polyline. In the default implementation of this function, line segments with a non-zero width will be converted into calls to shellProc, and segments with no width will generate calls to polylineProc. Arc segments with non-zero width will be converted into calls to polygonProc, and arc segments with no width will generate calls to polylineProc.
OdGiGeometrySimplifier::plineProc is only called for polylines with a continuous linetype.
See also
<link tv_geometry_lines, Work with Lines>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ pointCloudProc()

virtual void OdGiGeometrySimplifier::pointCloudProc ( const OdGiPointCloud pCloud,
const OdGiPointCloudFilter pFilter = NULL 
)
virtual

Introduces an point cloud object into this vectorization context.

Parameters
pCloud[in] Point cloud object.
pFilter[in] Optional set of point cloud object conveyor filters.
Remarks
Client applications have the option of overriding this function to process the point cloud data themselves. If the function is not overridden, the default implementation of this function processes the point cloud, calling polypointProc for set of points.

Implements OdGiConveyorGeometry.

◆ polygonOut()

virtual void OdGiGeometrySimplifier::polygonOut ( OdInt32  numPoints,
const OdGePoint3d vertexList,
const OdGeVector3d pNormal = 0 
)
virtual

Passes polygon data to this Vectorizer object.

Parameters
numPoints[in] Number of points in the polygon.
vertexList[in] Array of vertices that make up the polygon.
pNormal[in] Normal vector for the polygon.
Remarks
This function is called by the OdGiGeometrySimplifier class to pass polygon data generated during tessellation, to a client application. Clients should override this function.
See also
<link tv_geometry_polygons, Work with Polygons>

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ polygonProc()

virtual void OdGiGeometrySimplifier::polygonProc ( OdInt32  numPoints,
const OdGePoint3d vertexList,
const OdGeVector3d pNormal = 0,
const OdGeVector3d pExtrusion = 0 
)
virtual

Processes polygons.

Parameters
numPoints[in] Number of points.
vertexList[in] Pointer to an array of vertices.
pNormal[in] Pointer to the normal vector.
pExtrusion[in] Extrusion vector.
Remarks
Client applications have the option of overriding this function to process the polygon data themselves. If the function is not overridden, the default implementation of this function processes the polygon, calling polygonOut if the data is not extruded, or shellProc if an extrusion value is present.
See also
<link tv_geometry_polygons, Work with Polygons>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ polylineOut() [1/3]

virtual void OdGiGeometrySimplifier::polylineOut ( OdInt32  numPoints,
const OdGePoint3d vertexList 
)
virtual

Passes polyline data to this Vectorizer object.

Parameters
numPoints[in] Number of points in the polyline.
vertexList[in] Array of vertices that make up the polyline.
Remarks
This function is called by the OdGiGeometrySimplifier class to pass polyline data generated during tessellation, to a client application. Client applications have the option of overriding this function to process the data themselves. If the function is not overridden, the default implementation of this function calls polylineOut with the vertex list.
See also
<link tv_geometry_lines, Work with Lines>

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ polylineOut() [2/3]

virtual void OdGiGeometrySimplifier::polylineOut ( OdInt32  numPoints,
const OdInt32 vertexIndexList 
)
virtual

Passes polyline data to this Vectorizer object.

Parameters
numPoints[in] Number of points.
vertexIndexList[in] Pointer to an array of vertex indices.
Remarks
This function is called by the OdGiGeometrySimplifier class to pass polyline data generated during tessellation, to a client application.

Client applications have the option of overriding this function to process the data themselves. If the function is not overridden, the default implementation of this function calls polylineOut with the vertex list.

◆ polylineOut() [3/3]

void OdGiGeometrySimplifier::polylineOut ( OdInt32  numPoints,
const OdInt32 vertexIndexList,
const OdGiEdgeData pEdgeData,
OdInt32  nEdgeIndex 
)
inlineprotected

Definition at line 1182 of file GiGeometrySimplifier.h.

◆ polylineOutEdgeVisibility()

OdGiVisibility OdGiGeometrySimplifier::polylineOutEdgeVisibility ( ) const
inline

Retrieves edge visibility state for indexed polylineOut() call.

Returns
Edge visibility state.

Definition at line 324 of file GiGeometrySimplifier.h.

◆ polylineProc()

virtual void OdGiGeometrySimplifier::polylineProc ( OdInt32  numPoints,
const OdGePoint3d vertexList,
const OdGeVector3d pNormal = 0,
const OdGeVector3d pExtrusion = 0,
OdGsMarker  baseSubEntMarker = -1 
)
virtual

Processes polylines.

Parameters
numPoints[in] Number of points.
vertexList[in] Pointer to an array of vertices.
pNormal[in] Pointer to the normal vector.
pExtrusion[in] Extrusion vector.
baseSubEntMarker[in] Base sub-entity marker.
Remarks
Client applications have the option of overriding this function to process the polyline data themselves. If the function is not overridden, the default implementation of this function processes the polyline, calling polylineOut if the data is not extruded, or meshProc if an extrusion value is present. OdGiGeometrySimplifier::polylineProc is only called for polylines with a continuous linetype.
See also
<link tv_geometry_lines, Work with Lines>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ polypointProc()

virtual void OdGiGeometrySimplifier::polypointProc ( OdInt32  numPoints,
const OdGePoint3d vertexList,
const OdCmEntityColor pColors,
const OdCmTransparency pTransparency = 0,
const OdGeVector3d pNormals = 0,
const OdGeVector3d pExtrusions = 0,
const OdGsMarker pSubEntMarkers = 0,
OdInt32  nPointSize = 0 
)
virtual

Introduces a polypoint into this vectorization context.

Parameters
numPoints[in] Number of points.
vertexList[in] Pointer to an array of vertices.
pColors[in] Pointer to point colors.
pTransparency[in] Pointer to point transparency.
pNormals[in] Array of normal vectors.
pSubEntMarkers[in] Array of sub-entity markers.
nPointSize[in] Points size.
Remarks
Client applications have the option of overriding this function to process the polypoint data themselves. If the function is not overridden, the default implementation of this function processes the polypoint, calling polylineProc for each point.

Implements OdGiConveyorGeometry.

◆ processingText()

bool OdGiGeometrySimplifier::processingText ( ) const
inlineprotected

Returns true if and only if this Vectorizer object is processing TrueType text.

Definition at line 129 of file GiGeometrySimplifier.h.

◆ rasterImageProc()

virtual void OdGiGeometrySimplifier::rasterImageProc ( const OdGePoint3d origin,
const OdGeVector3d u,
const OdGeVector3d v,
const OdGiRasterImage pImage,
const OdGePoint2d uvBoundary,
OdUInt32  numBoundPts,
bool  transparency = false,
double  brightness = 50.0,
double  contrast = 50.0,
double  fade = 0.0 
)
virtual

Introduces a raster image into this vectorization context.

Parameters
origin[in] Image origin.
u[in] Image width vector.
v[in] Image height vector.
pImage[in] pointer to a raster image.
uvBoundary[in] pointer to an array of boundary points.
numBoundPts[in] number of boundary points.
transparency[in] Flag that specifies image transparency.
brightness[in] Brightness of an image in range of [0..100].
contrast[in] Contrast of an image in range of [0..100].
fade[in] Fade of an image in range of [0..100].
Remarks
Client applications have the option of overriding this function to process raster images data themselves.
See also
<link tv_geometry_raster_images, Work with Raster Image Geometry Data>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester.

◆ rayProc()

virtual void OdGiGeometrySimplifier::rayProc ( const OdGePoint3d basePoint,
const OdGePoint3d throughPoint 
)
virtual

Processes rays.

Parameters
basePoint[in] Base point.
throughPoint[in] Through point
Remarks
This function should not be overridden by clients.
See also
<link tv_geometry_lines, Work with Lines>

Implements OdGiConveyorGeometry.

◆ renderMode()

OdGsView::RenderMode OdGiGeometrySimplifier::renderMode ( )
inline

Returns the render mode for this object.

Returns
OdGsView::RenderMode value which can be one of the following:

Value Description kBoundingBox -1 Bounding box. For internal use only. k2DOptimized 0 Standard display. Optimized for 2D. kWireframe 1 Standard display. Uses 3D pipeline. kHiddenLine 2 Wireframe display. Hidden lines removed. kFlatShaded 3 Faceted display. One color per face. kGouraudShaded 4 Smooth shaded display. Colors interpolated between vertices. kFlatShadedWithWireframe 5 Faceted display with wireframe overlay. kGouraudShadedWithWireframe 6 Smooth shaded display with wireframe overlay.

See also
<exref target="https://docs.opendesign.com/tv/tv_working_with_base_classes_view_functionality.html#7">Managing Render Modes</exref>

Definition at line 200 of file GiGeometrySimplifier.h.

◆ rowOfDotsProc()

virtual void OdGiGeometrySimplifier::rowOfDotsProc ( OdInt32  numPoints,
const OdGePoint3d startPoint,
const OdGeVector3d dirToNextPoint 
)
virtual

Introduces a row of points into this vectorization context.

Parameters
numPoints[in] Number of points.
startPoint[in] First point to draw.
dirToNextPoint[in] Offset to next point.
Remarks
Client applications have the option of overriding this function to process the rowOfDots data themselves. If the function is not overridden, the default implementation of this function processes the rowOfDots, calling polylineProc for each point.

Implements OdGiConveyorGeometry.

◆ setDeviation() [1/2]

void OdGiGeometrySimplifier::setDeviation ( const OdGeDoubleArray deviations)

Specifies the maximum deviation allowed during the tessellation process.

Parameters
deviations[in] Array of deviation values. Specifies the limit for the maximum difference between the actual curve or surface, and the tessellated curve or surface.
Remarks
The deviation values (in isotropic world space) are
the deviation types defined by the OdGiDeviationType enum.

Each OdGiDeviationType value is used as an index into this array.

◆ setDeviation() [2/2]

void OdGiGeometrySimplifier::setDeviation ( const OdGiDeviation pDeviation)

Specifies the maximum deviation allowed during the tessellation process.

Parameters
pDeviation[in] Deviation to be used for anisotropic space (perspective view).

◆ setDrawContext()

void OdGiGeometrySimplifier::setDrawContext ( OdGiConveyorContext pDrawCtx)

Sets the OdGiConveyorContext for this object.

Parameters
pDrawCtx[in] Pointer to the draw context.
Remarks
The draw context must be set before calling any of the tessellation functions.

◆ setVertexData()

void OdGiGeometrySimplifier::setVertexData ( OdInt32  numVertices,
const OdGePoint3d vertexList,
const OdGiVertexData pVertexData = 0 
)

Sets vertex data for tessellation of meshes and shells.

Parameters
numVertices[in] Number of vertices in the mesh or shell.
vertexList[in] Array of vertices that make up the mesh or shell.
pVertexData[in] Pointer to additional vertex data.
Remarks
Called by the default implementations of meshProc and shellProc, to set vertex data that will be used in the tessellation of these objects.

◆ shapeProc()

virtual void OdGiGeometrySimplifier::shapeProc ( const OdGePoint3d position,
const OdGeVector3d direction,
const OdGeVector3d upVector,
int  shapeNumber,
const OdGiTextStyle pTextStyle,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a shape into this vectorization context.

Parameters
position[in] Position of the shape.
direction[in] Baseline direction for the shape.
upVector[in] Text up vector.
shapeNumber[in] Shape number.
pTextStyle[in] Pointer to the TextStyle for the shape.
pExtrusion[in] Extrusion vector.
Remarks
Client applications have the option of overriding this function to process the shape data themselves. If the function is not overridden, the default implementation tessellates the passed in shape, by calling the shapeProc function on the associated OdGiContext object. The resulting geometry will get sent to polylineProc and polygonProc.

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ shellFaceOut()

virtual void OdGiGeometrySimplifier::shellFaceOut ( OdInt32  faceListSize,
const OdInt32 faceList,
const OdGeVector3d pNormal 
)
virtual

Outputs the face of a tessellated shell.

Parameters
faceListSize[in] Number of entries in faceList.
faceList[in] List of numbers that define the face.
pNormal[in] Normal vector for this face.
Remarks
This function is called from the default implementation of generateShellFaces, to process a single face in a shell along with the holes in that face. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData. Client applications have the option of overriding this function to process the face data themselves. If the function is not overridden, the default implementation of this function processes the face information calls triangleOut with the resulting triangle data.
See also
Vectorization Primitives

◆ shellProc()

virtual void OdGiGeometrySimplifier::shellProc ( OdInt32  numVertices,
const OdGePoint3d vertexList,
OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiEdgeData pEdgeData = 0,
const OdGiFaceData pFaceData = 0,
const OdGiVertexData pVertexData = 0 
)
virtual

Processes shells.

Parameters
numVertices[in] Number of vertices.
vertexList[in] Array of vertices.
faceListSize[in] Number of entries in faceList.
faceList[in] Array of numbers that define the faces.
pEdgeData[in] Pointer to additional edge data.
pFaceData[in] Pointer to additional face data.
pVertexData[in] Pointer to additional vertex data.
Remarks
Client applications have the option of overriding this function to process the shell data themselves. If the function is not overridden, the default implementation of this function processes the shell into a set of facets. More specifically, the default shellProc function calls setVertexData, and the calls either generateShellFaces for filled facets, or generateShellWires for a wireframe.
See also
<link tv_geometry_shells, Work with Shells>

Implements OdGiConveyorGeometry.

◆ shmFillMode() [1/2]

bool OdGiGeometrySimplifier::shmFillMode ( bool &  drawEdges)
protected

◆ shmFillMode() [2/2]

bool OdGiGeometrySimplifier::shmFillMode ( bool &  drawEdges,
bool &  secColor 
)
protected

◆ silhouettesProcessingInEyeSpace()

bool OdGiGeometrySimplifier::silhouettesProcessingInEyeSpace ( ) const
inlineprotected

Returns true if silhouettes processing in ECS (Eye Coordinates Space) enabled.

Definition at line 134 of file GiGeometrySimplifier.h.

◆ subdivideShellByVertexLimit()

void OdGiGeometrySimplifier::subdivideShellByVertexLimit ( OdInt32  numVertices,
const OdGePoint3d vertexList,
OdInt32  faceListSize,
const OdInt32 faceList,
const OdGiEdgeData pEdgeData,
const OdGiFaceData pFaceData,
const OdGiVertexData pVertexData,
OdUInt32  nLimit 
)

Utility function to be called from client implementation of shellProc() to subdivide shell onto set of smaller shell primitives by vertexes number limit.

Parameters
numVertices[in] Number of vertices.
vertexList[in] Pointer to an array of vertices.
faceListSize[in] Number of faces.
faceList[in] Pointer to an array of faces.
pEdgeData[in] Additional edge data.
pFaceData[in] Additional face data.
pVertexData[in] Additional vertex data.
nLimit[in] Vertex limit.

◆ textProc()

virtual void OdGiGeometrySimplifier::textProc ( const OdGePoint3d position,
const OdGeVector3d u,
const OdGeVector3d v,
const OdChar msg,
OdInt32  length,
bool  raw,
const OdGiTextStyle pTextStyle,
const OdGeVector3d pExtrusion = 0 
)
virtual

Introduces a text into this vectorization context.

Parameters
position[in] Position of the text.
u[in] U parameter of the text.
v[in] V parameter of the text.
msg[in] Message string.
length[in] Message length.
raw[in] Flag that specifies whether escape sequences, such as %P, will not be converted to special characters.
pTextStyle[in] Pointer to a text style.
pExtrusion[in] Extrusion vector.
Remarks
Client applications have the option of overriding this function to process the text data themselves. If the function is not overridden, the default implementation tessellates the passed in text string, by calling the textProc function on the associated OdGiContext object. TrueType text will result in calls to shellProc, and SHX text will get sent to polylineProc and polygonProc.
See also
<link tv_geometry_text, Work with Text>

Implements OdGiConveyorGeometry.

Reimplemented in AECGe::Harvester, and AECGe::HarvesterOverall.

◆ textProc2()

virtual void OdGiGeometrySimplifier::textProc2 ( const OdGePoint3d position,
const OdGeVector3d u,
const OdGeVector3d v,
const OdChar msg,
OdInt32  length,
bool  raw,
const OdGiTextStyle pTextStyle,
const OdGeVector3d pExtrusion = 0,
const OdGeExtents3d extentsBox = 0 
)
virtual

Introduces a text into this vectorization context.

Parameters
position[in] Position of the text.
u[in] U parameter of the text.
v[in] V parameter of the text.
msg[in] Message string.
length[in] Message length.
raw[in] Flag that specifies whether escape sequences, such as %P, will not be converted to special characters.
pTextStyle[in] Pointer to a text style.
pExtrusion[in] Extrusion vector.
extentsBox[in] Text extents bounds.
Remarks
Client applications have the option of overriding this function to process the text data themselves. If the function is not overridden, the default implementation tessellates the passed in text string, by calling the textProc function on the associated OdGiContext object. TrueType text will result in calls to shellProc, and SHX text will get sent to polylineProc and polygonProc.
See also
<link tv_geometry_text, Work with Text>

Reimplemented from OdGiConveyorGeometry.

◆ tmpCircArc2d()

OdGeCircArc2d & OdGiGeometrySimplifier::tmpCircArc2d ( )
protected

◆ tmpCircArc3d()

OdGeCircArc3d & OdGiGeometrySimplifier::tmpCircArc3d ( )
protected

◆ tmpEllipArc3d()

OdGeEllipArc3d & OdGiGeometrySimplifier::tmpEllipArc3d ( )
protected

◆ tmpLine2dEx()

OdGeLine2d & OdGiGeometrySimplifier::tmpLine2dEx ( int  n)
protected

◆ tmpLineSeg2d()

OdGeLineSeg2d & OdGiGeometrySimplifier::tmpLineSeg2d ( )
protected

◆ tmpLineSeg2dEx()

OdGeLineSeg2d & OdGiGeometrySimplifier::tmpLineSeg2dEx ( int  n)
protected

◆ tmpPoints3d()

OdGePoint3dArray & OdGiGeometrySimplifier::tmpPoints3d ( int  nLevel)
inlineprotected

Definition at line 1201 of file GiGeometrySimplifier.h.

◆ triangleOut()

virtual void OdGiGeometrySimplifier::triangleOut ( const OdInt32 vertices,
const OdGeVector3d pNormal 
)
virtual

Output a triangle.

Parameters
vertices[in] List of 3 numbers that define the vertices in the triangle.
pNormal[in] Normal vector for this triangle.
Remarks
This function is called from the default implementations of shellFaceOut and generateMeshFaces. Vertex data needed for this function can be obtained by calling vertexDataList and vertexData.
Client applications have the option of overriding this function to process the triangle data themselves. If the function is not overridden, the default implementation of this function processes the color attributes for the triangle, and calls polygonOut.

◆ ttfPolyDrawProc()

virtual void OdGiGeometrySimplifier::ttfPolyDrawProc ( OdInt32  numVertices,
const OdGePoint3d vertexList,
OdInt32  faceListSize,
const OdInt32 faceList,
const OdUInt8 pBezierTypes,
const OdGiFaceData pFaceData = 0 
)
virtual

Processes TrueType font characters in dynamic polyDraw mode which is similar to shellProc() method, except here additional information about bezier data is passed for processing.

Parameters
numVertices[in] Number of vertices.
vertexList[in] Pointer to an array of vertices.
faceListSize[in] Number of faces.
faceList[in] Pointer to an array of faces.
pBezierTypes[in] Additional bezier data for the geometry conveyor, so client code can tessellate text using any quality that is required for TrueType font processing.
pFaceData[in] Additional face data.
Remarks
Client applications have the option of overriding this function to process the PolyDraw data themselves. If the function is not overridden, the default implementation tessellates the passed in PolyDraw contours using the current kOdGiMaxDevForCurve deviation, and calls shellProc with the resulting data.
See also
<link gi_ttf_render_quality, Adjusting the Quality of TrueType Font Text>

Reimplemented from OdGiConveyorGeometry.

◆ uninitTexture()

virtual void OdGiGeometrySimplifier::uninitTexture ( )
virtual

Releases a texture map for this Vectorizer object.

◆ vertexData()

const OdGiVertexData * OdGiGeometrySimplifier::vertexData ( ) const
inline

Retrieves the vertex attribute data set in the most recent call to setVertexData.

Returns
pointer to the vertex attributes.

Definition at line 302 of file GiGeometrySimplifier.h.

◆ vertexDataCount()

OdInt32 OdGiGeometrySimplifier::vertexDataCount ( ) const
inline

Retrieves the vertex count set in the most recent call to setVertexData.

Returns
vertex count as OdInt32 value.

Definition at line 280 of file GiGeometrySimplifier.h.

◆ vertexDataList()

const OdGePoint3d * OdGiGeometrySimplifier::vertexDataList ( ) const
inline

Retrieves the vertex list set in the most recent call to setVertexData.

Returns
pointer to the vertex list.

Definition at line 291 of file GiGeometrySimplifier.h.

◆ xlineProc()

virtual void OdGiGeometrySimplifier::xlineProc ( const OdGePoint3d firstPoint,
const OdGePoint3d secondPoint 
)
virtual

Processes x-lines.

Parameters
firstPoint[in] First point.
secondPoint[in] Second point.
Remarks
This function should not be overridden by clients.
See also
<link tv_geometry_lines, Work with Lines>

Implements OdGiConveyorGeometry.

Member Data Documentation

◆ m_baseSubEntMarker

OdGsMarker OdGiGeometrySimplifier::m_baseSubEntMarker
protected

Definition at line 77 of file GiGeometrySimplifier.h.

◆ m_deviations

OdGeDoubleArray OdGiGeometrySimplifier::m_deviations
protected

Definition at line 102 of file GiGeometrySimplifier.h.

◆ m_pCircArc2d

OdGeCircArc2d* OdGiGeometrySimplifier::m_pCircArc2d
protected

Definition at line 1198 of file GiGeometrySimplifier.h.

◆ m_pCircArc3d

OdGeCircArc3d* OdGiGeometrySimplifier::m_pCircArc3d
protected

Definition at line 1199 of file GiGeometrySimplifier.h.

◆ m_pDeviation

const OdGiDeviation* OdGiGeometrySimplifier::m_pDeviation
protected

Definition at line 101 of file GiGeometrySimplifier.h.

◆ m_pDrawCtx

OdGiConveyorContext* OdGiGeometrySimplifier::m_pDrawCtx
protected

Definition at line 75 of file GiGeometrySimplifier.h.

◆ m_pEllipArc3d

OdGeEllipArc3d* OdGiGeometrySimplifier::m_pEllipArc3d
protected

Definition at line 1200 of file GiGeometrySimplifier.h.

◆ m_pLine2dEx

OdGeLine2d* OdGiGeometrySimplifier::m_pLine2dEx[4]
protected

Definition at line 1197 of file GiGeometrySimplifier.h.

◆ m_pLineSeg2d

OdGeLineSeg2d* OdGiGeometrySimplifier::m_pLineSeg2d
protected

Definition at line 1195 of file GiGeometrySimplifier.h.

◆ m_pLineSeg2dEx

OdGeLineSeg2d* OdGiGeometrySimplifier::m_pLineSeg2dEx[2]
protected

Definition at line 1196 of file GiGeometrySimplifier.h.

◆ m_pTraits

OdGiSubEntityTraits* OdGiGeometrySimplifier::m_pTraits
protected

Definition at line 76 of file GiGeometrySimplifier.h.

◆ m_renderMode

OdGsView::RenderMode OdGiGeometrySimplifier::m_renderMode
protected

Definition at line 103 of file GiGeometrySimplifier.h.

◆ m_simplFlags

OdUInt32 OdGiGeometrySimplifier::m_simplFlags
protected

Definition at line 92 of file GiGeometrySimplifier.h.


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