24#ifndef __ODGISECTIONGEOMETRYOUTPUT_H__
25#define __ODGISECTIONGEOMETRYOUTPUT_H__
132 { m_this.setupTraits(m_drawContext); }
319 destGeometry().plineProc(polyline, pXfm, fromIndex, numSegs);
336 destGeometry().polylineProc(numPoints, vertexList, pNormal, pExtrusion, baseSubEntMarker);
351 destGeometry().polygonProc(numPoints, vertexList, pNormal, pExtrusion);
395 destGeometry().meshProc(numRows, numColumns, vertexList, pEdgeData, pFaceData, pVertexData);
412 destGeometry().shellProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
427 destGeometry().circleProc(center, radius, normal, pExtrusion);
443 destGeometry().circleProc2(center, radius, normal, startVector, pExtrusion);
459 destGeometry().circleProc(firstPoint, secondPoint, thirdPoint, pExtrusion);
488 destGeometry().circularArcProc(center, radius, normal, startVector, sweepAngle, arcType, pExtrusion);
507 destGeometry().circularArcProc(firstPoint, secondPoint, thirdPoint, arcType, pExtrusion);
531 destGeometry().ellipArcProc(ellipArc, endPointOverrides, arcType, pExtrusion);
561 destGeometry().textProc(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion);
581 destGeometry().textProc2(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion, extentsBox);
599 destGeometry().shapeProc(position, direction, upVector, shapeNumber, pTextStyle, pExtrusion);
617 const OdGePoint2d* uvBoundary,
OdUInt32 numBoundPts,
bool transparency =
false,
double brightness = 50.0,
618 double contrast = 50.0,
double fade = 0.0)
620 destGeometry().rasterImageProc(origin, u,
v, pImage, uvBoundary, numBoundPts, transparency, brightness, contrast, fade);
634 bool dcAligned =
true,
bool allowClipping =
false)
636 destGeometry().metafileProc(origin, u,
v, pMetafile, dcAligned, allowClipping);
683 destGeometry().ttfPolyDrawProc(numVertices, vertexList, faceListSize, faceList, pBezierTypes, pFaceData);
701 destGeometry().polypointProc(numPoints, vertexList, pColors, pTransparency, pNormals, pExtrusions, pSubEntMarkers, nPointSize);
713 destGeometry().rowOfDotsProc(numPoints, startPoint, dirToNextPoint);
884 destGeometry().shellProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
892 OdInt32 nFace = 0, nFaceList = 0;
895 while (nFaceList < faceListSize)
899 if (pNormal && bExtrusion)
900 extrusion = *pNormal *
drawContext().subEntityTraits().thickness();
903 for (
OdInt32 nVert = 0; nVert < numVerts; nVert++)
904 tmpPoints[nVert] = vertexList[faceList[nFaceList++]];
905 tmpPoints[numVerts] = tmpPoints[0];
906 destGeometry().polylineProc(numVerts + 1, tmpPoints, pNormal, (pNormal && bExtrusion) ? &extrusion : NULL);
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
OdSmartPtr< OdGiSectionGeometryOutput > OdGiSectionGeometryOutputPtr
OdSmartPtr< OdGiClippedGeometryOutputCallback > OdGiClippedGeometryOutputCallbackPtr
OdSmartPtr< OdGiCuttedGeometryOutput > OdGiCuttedGeometryOutputPtr
OdSmartPtr< OdGiClippedGeometryOutput > OdGiClippedGeometryOutputPtr
bool OdNonZero(double x, double tol=1.e-10)
#define SETBIT(flags, bit, value)
#define SETBIT_0(flags, bit)
#define GETBIT(flags, bit)
#define SETBIT_1(flags, bit)
WrapTraitsProc(OdGiClippedGeometryOutput *pThis)
OdGiClippedGeometryOutputCallback()
virtual bool clippedGeometryOutputCallbackProc(OdGiClippedGeometryOutput &pGeomOutput, const OdGiConveyorContext &pDrawContext)=0
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)
virtual void setupTraits(OdGiConveyorContext &context)
void pointCloudProc(const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter)
OdGiSubEntityTraitsData & traitsOverrides()
virtual void releaseTraits(OdGiConveyorContext &context)
void xlineProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
void setProcessingEnabled(bool bSet)
void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
void edgeProc(const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)
void setTraitsOverrideFlags(OdUInt32 nFlags)
void shellProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
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 *extentsBox=0)
ClippedGeometryOutputInterface * getInterface()
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)
void circularArcProc(const OdGePoint3d ¢er, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
OdGiSubEntityTraitsData m_traits
void ttfPolyDrawProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdUInt8 *pBezierTypes, const OdGiFaceData *pFaceData=0)
void plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
void setGeometryProcessingCallback(OdGiClippedGeometryOutputCallback *pCallback)
void rayProc(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
OdUInt32 traitsOverrideFlags() const
@ kNonSectionableGeometryClip
void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
OdGiSubEntityTraitsData m_overrides
void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
void circleProc2(const OdGePoint3d ¢er, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, const OdGeVector3d *pExtrusion=0)
void shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
OdGiClippedGeometryOutputCallbackPtr m_pDrawCallback
OdGiClippedGeometryOutputCallback * geometryProcessingCallback()
bool isProcessingEnabled() const
void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
const OdGiSubEntityTraitsData & traitsOverrides() const
ClippedGeometryOutputInterface * m_pIface
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 copyFrom(const OdRxObject *pSource)
virtual void setupDrawableProcessing()
OdGiConveyorGeometry & destGeometry()
void metafileProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
void setInterface(ClippedGeometryOutputInterface *pInterface)
void rayProc2(const OdGePoint3d &basePoint, const OdGeVector3d &direction)
void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
OdGiConveyorContext & drawContext()
void circleProc(const OdGePoint3d ¢er, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
bool isNonSectionableGeometryClipping() const
void setNonSectionableGeometryClipping(bool bSet)
void setTraitsOverrides(const OdGiSubEntityTraitsData &pData)
OdGiClippedGeometryOutput()
void xlineProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
virtual OdGiSubEntityTraits & subEntityTraits() const =0
virtual void onTraitsModified()=0
ODRX_DECLARE_MEMBERS(OdGiCuttedGeometryOutput)
virtual void copyFrom(const OdRxObject *pSource)
OdGiCuttedGeometryOutput()
const OdGeVector3d * normals() const
bool isOpenedSectionsOutputEnabled() const
void resetSectionToleranceOverride()
void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
virtual void copyFrom(const OdRxObject *pSource)
bool isOutputOfClosedSectionsAsPolylinesEnabled() const
bool isClosedSectionsOutputEnabled() const
@ kOutputOpenedPrimitives
@ kClosedPrimitivesAsPolylines
@ kToleranceOverrideEnabled
@ kOutputClosedPrimitives
void enableClosedSectionsOutput(bool bSet)
OdGePoint3dArray m_tmpPoints
void setSectionToleranceOverride(double tolOverride)
void enableOutputOfClosedSectionsAsPolylines(bool bSet)
OdGiSectionGeometryOutput()
bool isSectionToleranceOverrideEnabled() const
void shellProc(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void shellProcAsPolylineProc(OdInt32, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *, const OdGiFaceData *pFaceData, const OdGiVertexData *)
double sectionToleranceOverride() const
ODRX_DECLARE_MEMBERS(OdGiSectionGeometryOutput)
void enableOpenedSectionsOutput(bool bSet)
static void copyTraits(OdGiSubEntityTraits &pFrom, OdGiSubEntityTraits &pTo, OdUInt32 nFlags=kAllChanged)
void setTraits(TData &pTraits)
static OdRxObjectPtr cast(const OdRxObject *pointer)
virtual OdGiConveyorGeometry & destinationGeometry()=0
virtual OdGiConveyorContext & conveyorContext()=0