CFx SDK Documentation
2022 SP0
|
#include <GiGeometrySimplifier.h>
Public Member Functions | |
OdGiGeometrySimplifier () | |
~OdGiGeometrySimplifier () | |
void | setDeviation (const OdGeDoubleArray &deviations) |
void | setDeviation (const OdGiDeviation *pDeviation) |
OdGsView::RenderMode | renderMode () |
void | setDrawContext (OdGiConveyorContext *pDrawCtx) |
OdGiConveyorContext * | drawContext () |
const OdGiConveyorContext * | drawContext () 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 OdGePoint3d * | vertexDataList () const |
const OdGiVertexData * | vertexData () const |
OdGsMarker | baseSubEntMarker () 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 | 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 ¢er, double radius, const OdGeVector3d &normal, 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 ¢er, 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 | 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 void | generateShellFill (OdGiHatchPatternPtr pHatch, 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 | 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, const OdGePoint3d &, const OdGeBoundBlock3d *) |
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) |
Protected Types | |
enum | SimplifierFlags { kSimplProcessingText = (1 << 0) , kSimplFillModeDisabled = (1 << 1) , kSimplEyeSpaceSilhs = (1 << 2) , kSimplLastFlag = kSimplEyeSpaceSilhs , kZInverted = (1 << 30) , kDiscardBackFaces = (1 << 31) } |
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 } |
This class provides tessellation functionality for the Teigha vectorization framework.
An instance of this class is used to simplify the geometry produced by the Teigha vectorization framework.
<group OdGi_Classes>
Definition at line 58 of file GiGeometrySimplifier.h.
|
protected |
Enumerator | |
---|---|
kSimplProcessingText | |
kSimplFillModeDisabled | |
kSimplEyeSpaceSilhs | |
kSimplLastFlag | |
kZInverted | |
kDiscardBackFaces |
Definition at line 79 of file GiGeometrySimplifier.h.
OdGiGeometrySimplifier::OdGiGeometrySimplifier | ( | ) |
OdGiGeometrySimplifier::~OdGiGeometrySimplifier | ( | ) |
|
inline |
Returns base subentity selection marker for polylineOut().
Definition at line 286 of file GiGeometrySimplifier.h.
|
protected |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Process circle data.
firstPoint | [in] First point of a 3-point circle. |
secondPoint | [in] Second point of a 3-point circle. |
thirdPoint | [in] Third point of a 3-point circle. |
pExtrusion | [in] Pointer to the extrusion vector. |
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Processes circular arc data.
firstPoint | [in] First point of a 3-point arc. |
secondPoint | [in] Second point of a 3-point arc. |
thirdPoint | [in] Third point of a 3-point arc. |
arcType | [in] Arc type. |
pExtrusion | [in] Pointer to the extrusion vector. |
Implements OdGiConveyorGeometry.
void OdGiGeometrySimplifier::convertMeshToShell | ( | OdInt32 | rows, |
OdInt32 | columns, | ||
const OdGePoint3d * | pVertexList, | ||
const OdGiEdgeData * | pEdgeData, | ||
const OdGiFaceData * | pFaceData, | ||
const OdGiVertexData * | pVertexData | ||
) |
|
protected |
Returns the recommended maximum deviation of the current vectorization for the specified point on the curve or surface being tesselated.
deviationType | [in] Deviation type. |
pointOnCurve | [in] Point on the curve. |
|
inline |
Returns the OdGiConveyorContext associated with this Vectorizer object.
Definition at line 209 of file GiGeometrySimplifier.h.
|
inline |
Definition at line 210 of file GiGeometrySimplifier.h.
|
protected |
Draws an arc of the specified type.
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. |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
|
inlineprotected |
Enables processing silhouettes in ECS (Eye Coordinates Space).
Definition at line 134 of file GiGeometrySimplifier.h.
|
virtual |
Outputs a facet.
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.
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. |
|
protected |
Returns the FillMode and DrawEdges for this Vectorizer object.
drawEdges | [out] Receives the DrawEdges value. |
|
protected |
|
protected |
|
virtual |
Tessellates a filled mesh.
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.
numRows | [in] Number of rows in the mesh. |
numColumns | [in] Number of columns in the mesh. |
pFaceData | [in] Pointer to additional face data. |
|
protected |
|
virtual |
Tessellates a wireframe mesh.
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.
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. |
|
virtual |
Tessellates a filled wireframe shell.
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.
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. |
|
virtual |
Tessilates a shell.
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.
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. |
|
virtual |
Applies given fill pattern to the shell
|
virtual |
Tessellates a wireframe shell
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.
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. |
|
inlineprotected |
Returns the OdGiContext for this Vectorizer object.
Definition at line 139 of file GiGeometrySimplifier.h.
|
virtual |
Initializes a texture map for this Vectorizer object.
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]. |
|
protected |
|
protected |
|
protected |
|
protected |
|
virtual |
Outputs a face of a tessilated mesh.
faceList | [in] Array of numbers that define the face. |
pNormal | [in] Pointer to the normal to the face. |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
protectedvirtual |
Controls plineProc arc segment output.
drawContextFlags | [in] Input conveyor context draw flags. |
|
virtual |
The pXfm transformation (if any) that must be applied to the polyline. Extrusion of the polyline (if it has a non-zero thickness). Creating the closing segment if the polyline is closed. Start and end widths for each segment, or constant width, if applicable. Arc segments (if bulge values are present).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.
Implements OdGiConveyorGeometry.
|
virtual |
Passes polygon data to this Vectorizer object.
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. |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Passes polyline data to this Vectorizer object.
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.
numPoints | [in] Number of points in the polyline. |
vertexList | [in] Array of vertices that make up the polyline. |
|
virtual |
Passes polyline data to this Vectorizer object.
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.
vertexIndexList | [in] Array of vertex indices in vertexDataList(). |
|
virtual |
OdGiGeometrySimplifier::polylineProc is only called for polylines with a continuous linetype.
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
inlineprotected |
Returns true if and only if this Vectorizer object is processing TrueType text.
Definition at line 125 of file GiGeometrySimplifier.h.
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Implements OdGiConveyorGeometry.
|
inline |
Returns the render mode for this object.
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.
Definition at line 195 of file GiGeometrySimplifier.h.
|
virtual |
Implements OdGiConveyorGeometry.
void OdGiGeometrySimplifier::setDeviation | ( | const OdGeDoubleArray & | deviations | ) |
Specifies the maximum deviation allowed during the tessellation process.
deviations | [in] Array of deviation values. |
Each OdGiDeviationType value is used as an index into this array.
void OdGiGeometrySimplifier::setDeviation | ( | const OdGiDeviation * | pDeviation | ) |
Specifies the maximum deviation allowed during the tessellation process.
pDeviation | [in] Deviation to be used for anisotropic space (perspective view). |
void OdGiGeometrySimplifier::setDrawContext | ( | OdGiConveyorContext * | pDrawCtx | ) |
Sets the OdGiConveyorContext for this object.
pDrawCtx | [in] Pointer to the draw context. |
void OdGiGeometrySimplifier::setVertexData | ( | OdInt32 | numVertices, |
const OdGePoint3d * | vertexList, | ||
const OdGiVertexData * | pVertexData = 0 |
||
) |
Sets vertex data for tessilation of meshes and shells.
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. |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Outputs the face of a tessilated shell.
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.
faceListSize | [in] Number of entries in faceList. |
faceList | [in] List of numbers that define the face. |
pNormal | [in] Normal vector for this face. |
|
virtual |
Implements OdGiConveyorGeometry.
|
protected |
|
protected |
|
inlineprotected |
Returns true if silhouettes processing in ECS (Eye Coordinates Space) enabled.
Definition at line 130 of file GiGeometrySimplifier.h.
void OdGiGeometrySimplifier::subdivideShellByVertexLimit | ( | OdInt32 | numVertices, |
const OdGePoint3d * | vertexList, | ||
OdInt32 | faceListSize, | ||
const OdInt32 * | faceList, | ||
const OdGiEdgeData * | pEdgeData, | ||
const OdGiFaceData * | pFaceData, | ||
const OdGiVertexData * | pVertexData, | ||
OdUInt32 | nLimit | ||
) |
|
virtual |
Implements OdGiConveyorGeometry.
|
virtual |
Reimplemented from OdGiConveyorGeometry.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineprotected |
Definition at line 833 of file GiGeometrySimplifier.h.
|
virtual |
Output a triangle.
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.
vertices | [in] List of 3 numbers that define the vertices in the triangle. |
pNormal | [in] Normal vector for this triangle. |
|
virtual |
Reimplemented from OdGiConveyorGeometry.
|
virtual |
Releases a texture map for this Vectorizer object.
|
inline |
Returns the vertex attribute data set in the most recent call to setVertexData.
Definition at line 278 of file GiGeometrySimplifier.h.
|
inline |
Returns the vertex count set in the most recent call to setVertexData.
Definition at line 262 of file GiGeometrySimplifier.h.
|
inline |
Returns the vertex list set in the most recent call to setVertexData.
Definition at line 270 of file GiGeometrySimplifier.h.
|
virtual |
Implements OdGiConveyorGeometry.
|
protected |
Definition at line 77 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 98 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 830 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 831 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 97 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 75 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 832 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 829 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 827 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 828 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 76 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 99 of file GiGeometrySimplifier.h.
|
protected |
Definition at line 88 of file GiGeometrySimplifier.h.