CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiSectionGeometryOutput.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2024 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef __ODGISECTIONGEOMETRYOUTPUT_H__
25#define __ODGISECTIONGEOMETRYOUTPUT_H__
26
28#include "Gi/GiDummyGeometry.h"
29#include "Ge/GePoint3dArray.h"
30
31#include "TD_PackPush.h"
32
33// Forward declarations
35
44{
45 public:
50
58 virtual bool clippedGeometryOutputCallbackProc(OdGiClippedGeometryOutput &pGeomOutput, const OdGiConveyorContext &pDrawContext) = 0;
59};
60
65
73class ODGI_EXPORT OdGiClippedGeometryOutput : public OdRxObject, public OdGiConveyorPassingImpl<OdGiClippedGeometryOutput>
74{
75 public:
96 protected:
97 //DOM-IGNORE-BEGIN
105 //DOM-IGNORE-END
106 protected:
107 ClippedGeometryOutputInterface *m_pIface; // Conveyor geometry output interface.
109 OdUInt32 m_flags; // Generic flags storage.
110 OdUInt32 m_overrideFlags; // Traits override flags storage.
111 OdGiSubEntityTraitsData m_overrides; // Traits override values.
112 OdGiSubEntityTraitsData m_traits; // Actual traits storage.
113 public:
119 OdGiConveyorGeometry& destGeometry() { if (!m_pIface) throw OdError(eInvalidContext); return m_pIface->destinationGeometry(); }
120
126 OdGiConveyorContext& drawContext() { if (!m_pIface) throw OdError(eInvalidContext); return m_pIface->conveyorContext(); }
127 protected:
128 //DOM-IGNORE-BEGIN
130 { OdGiClippedGeometryOutput &m_this; OdGiConveyorContext &m_drawContext;
131 public: WrapTraitsProc(OdGiClippedGeometryOutput *pThis) : m_this(*pThis), m_drawContext(pThis->drawContext())
132 { m_this.setupTraits(m_drawContext); }
133 ~WrapTraitsProc() { m_this.releaseTraits(m_drawContext); }
134 };
135 //DOM-IGNORE-END
136 public:
142
150 virtual void copyFrom(const OdRxObject* pSource)
151 {
152 const OdGiClippedGeometryOutput *pFrom = static_cast<const OdGiClippedGeometryOutput*>(pSource);
153 if (!pFrom)
154 throw OdError(eInvalidInput);
156 m_flags = pFrom->m_flags;
158 m_overrides = pFrom->m_overrides;
159 }
160
173 void setInterface(ClippedGeometryOutputInterface *pInterface) { m_pIface = pInterface; }
174
188
199
211
217 {
218 m_overrideFlags = nFlags;
219 }
220
226 {
227 return m_overrideFlags;
228 }
229
235 {
236 m_overrides = pData;
237 }
238
247
253 {
254 return m_overrides;
255 }
256
263 {
264 if (!m_pDrawCallback.isNull())
265 setProcessingEnabled(m_pDrawCallback->clippedGeometryOutputCallbackProc(*this, drawContext()));
266 }
267
274 virtual void setupTraits(OdGiConveyorContext &context)
275 {
276 if (m_overrideFlags)
277 {
278 // Copy traits settings from current state
281 // Setup traits overrides
282 dataAdaptor.setTraits(m_overrides);
284 context.onTraitsModified();
285 }
286 }
287
294 virtual void releaseTraits(OdGiConveyorContext &context)
295 {
296 if (m_overrideFlags)
297 {
298 // Copy modified traits back to current state
301 //context.onTraitsModified(); // Don't need since we completed with section geometry
302 }
303 }
304
305 // Conveyor geometry primitives implementation
306
317 void plineProc(const OdGiPolyline& polyline, const OdGeMatrix3d* pXfm = 0, OdUInt32 fromIndex = 0, OdUInt32 numSegs = 0)
318 { WrapTraitsProc _wtp(this);
319 destGeometry().plineProc(polyline, pXfm, fromIndex, numSegs);
320 }
321
333 void polylineProc(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0,
334 const OdGeVector3d* pExtrusion = 0, OdGsMarker baseSubEntMarker = -1)
335 { WrapTraitsProc _wtp(this);
336 destGeometry().polylineProc(numPoints, vertexList, pNormal, pExtrusion, baseSubEntMarker);
337 }
338
349 void polygonProc(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0, const OdGeVector3d* pExtrusion = 0)
350 { WrapTraitsProc _wtp(this);
351 destGeometry().polygonProc(numPoints, vertexList, pNormal, pExtrusion);
352 }
353
363 void xlineProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint)
364 { WrapTraitsProc _wtp(this);
365 destGeometry().xlineProc(firstPoint, secondPoint);
366 }
367
377 void rayProc(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint)
378 { WrapTraitsProc _wtp(this);
379 destGeometry().rayProc(basePoint, throughPoint);
380 }
381
392 void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d* vertexList, const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0,
393 const OdGiVertexData* pVertexData = 0)
394 { WrapTraitsProc _wtp(this);
395 destGeometry().meshProc(numRows, numColumns, vertexList, pEdgeData, pFaceData, pVertexData);
396 }
397
409 void shellProc(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList, const OdGiEdgeData* pEdgeData = 0,
410 const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0)
411 { WrapTraitsProc _wtp(this);
412 destGeometry().shellProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
413 }
414
425 void circleProc(const OdGePoint3d& center, double radius, const OdGeVector3d& normal, const OdGeVector3d* pExtrusion = 0)
426 { WrapTraitsProc _wtp(this);
427 destGeometry().circleProc(center, radius, normal, pExtrusion);
428 }
429
441 void circleProc2(const OdGePoint3d& center, double radius, const OdGeVector3d& normal, const OdGeVector3d& startVector, const OdGeVector3d* pExtrusion = 0)
442 { WrapTraitsProc _wtp(this);
443 destGeometry().circleProc2(center, radius, normal, startVector, pExtrusion);
444 }
445
457 void circleProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint, const OdGeVector3d* pExtrusion = 0)
458 { WrapTraitsProc _wtp(this);
459 destGeometry().circleProc(firstPoint, secondPoint, thirdPoint, pExtrusion);
460 }
461
485 void circularArcProc(const OdGePoint3d& center, double radius, const OdGeVector3d& normal, const OdGeVector3d& startVector,
486 double sweepAngle, OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0)
487 { WrapTraitsProc _wtp(this);
488 destGeometry().circularArcProc(center, radius, normal, startVector, sweepAngle, arcType, pExtrusion);
489 }
490
504 void circularArcProc(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint, OdGiArcType arcType = kOdGiArcSimple,
505 const OdGeVector3d* pExtrusion = 0)
506 { WrapTraitsProc _wtp(this);
507 destGeometry().circularArcProc(firstPoint, secondPoint, thirdPoint, arcType, pExtrusion);
508 }
509
528 void ellipArcProc(const OdGeEllipArc3d& ellipArc, const OdGePoint3d* endPointOverrides = 0, OdGiArcType arcType = kOdGiArcSimple,
529 const OdGeVector3d* pExtrusion = 0)
530 { WrapTraitsProc _wtp(this);
531 destGeometry().ellipArcProc(ellipArc, endPointOverrides, arcType, pExtrusion);
532 }
533
538 void nurbsProc(const OdGeNurbCurve3d& nurbsCurve)
539 { WrapTraitsProc _wtp(this);
540 destGeometry().nurbsProc(nurbsCurve);
541 }
542
558 void textProc(const OdGePoint3d& position, const OdGeVector3d& direction, const OdGeVector3d& upVector, const OdChar* msg,
559 OdInt32 numBytes, bool raw, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0)
560 { WrapTraitsProc _wtp(this);
561 destGeometry().textProc(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion);
562 }
563
578 void textProc2(const OdGePoint3d& position, const OdGeVector3d& direction, const OdGeVector3d& upVector, const OdChar* msg,
579 OdInt32 numBytes, bool raw, const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0, const OdGeExtents3d* extentsBox = 0)
580 { WrapTraitsProc _wtp(this);
581 destGeometry().textProc2(position, direction, upVector, msg, numBytes, raw, pTextStyle, pExtrusion, extentsBox);
582 }
583
596 void shapeProc(const OdGePoint3d& position, const OdGeVector3d& direction, const OdGeVector3d& upVector, int shapeNumber,
597 const OdGiTextStyle* pTextStyle, const OdGeVector3d* pExtrusion = 0)
598 { WrapTraitsProc _wtp(this);
599 destGeometry().shapeProc(position, direction, upVector, shapeNumber, pTextStyle, pExtrusion);
600 }
601
616 void rasterImageProc(const OdGePoint3d& origin, const OdGeVector3d& u, const OdGeVector3d& v, const OdGiRasterImage* pImage,
617 const OdGePoint2d* uvBoundary, OdUInt32 numBoundPts, bool transparency = false, double brightness = 50.0,
618 double contrast = 50.0, double fade = 0.0)
619 { WrapTraitsProc _wtp(this);
620 destGeometry().rasterImageProc(origin, u, v, pImage, uvBoundary, numBoundPts, transparency, brightness, contrast, fade);
621 }
622
633 void metafileProc(const OdGePoint3d& origin, const OdGeVector3d& u, const OdGeVector3d& v, const OdGiMetafile* pMetafile,
634 bool dcAligned = true, bool allowClipping = false)
635 { WrapTraitsProc _wtp(this);
636 destGeometry().metafileProc(origin, u, v, pMetafile, dcAligned, allowClipping);
637 }
638
648 void xlineProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction)
649 { WrapTraitsProc _wtp(this);
650 destGeometry().xlineProc2(basePoint, direction);
651 }
652
662 void rayProc2(const OdGePoint3d& basePoint, const OdGeVector3d& direction)
663 { WrapTraitsProc _wtp(this);
664 destGeometry().rayProc2(basePoint, direction);
665 }
666
680 void ttfPolyDrawProc(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList,
681 const OdUInt8* pBezierTypes, const OdGiFaceData* pFaceData = 0)
682 { WrapTraitsProc _wtp(this);
683 destGeometry().ttfPolyDrawProc(numVertices, vertexList, faceListSize, faceList, pBezierTypes, pFaceData);
684 }
685
698 void polypointProc(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors, const OdCmTransparency* pTransparency = 0,
699 const OdGeVector3d* pNormals = 0, const OdGeVector3d* pExtrusions = 0, const OdGsMarker* pSubEntMarkers = 0, OdInt32 nPointSize = 0)
700 { WrapTraitsProc _wtp(this);
701 destGeometry().polypointProc(numPoints, vertexList, pColors, pTransparency, pNormals, pExtrusions, pSubEntMarkers, nPointSize);
702 }
703
711 void rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint)
712 { WrapTraitsProc _wtp(this);
713 destGeometry().rowOfDotsProc(numPoints, startPoint, dirToNextPoint);
714 }
715
722 void pointCloudProc(const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter)
723 { WrapTraitsProc _wtp(this);
724 destGeometry().pointCloudProc(pCloud, pFilter);
725 }
726
733 void edgeProc(const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0)
734 { WrapTraitsProc _wtp(this);
735 destGeometry().edgeProc(edges, pXform);
736 }
737};
738
743
752{
753 protected:
761 protected:
762 double m_tolOverride; // Section tolerance override.
763 OdGePoint3dArray m_tmpPoints; // Temporary vertexes array
764 public:
770
772
781 virtual void copyFrom(const OdRxObject* pSource)
782 {
784 if (!pFrom)
785 throw OdError(eInvalidInput);
788 }
789
801
813
825
832
836 double sectionToleranceOverride() const { return m_tolOverride; }
837
843
848
861 void polylineProc(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal = 0,
862 const OdGeVector3d* pExtrusion = 0, OdGsMarker baseSubEntMarker = -1)
863 {
864 OdGiClippedGeometryOutput::polylineProc(numPoints, vertexList, pNormal, pExtrusion, baseSubEntMarker);
865 }
866
880 void shellProc(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList,
881 const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0)
882 { WrapTraitsProc _wtp(this);
884 destGeometry().shellProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
885 else
886 shellProcAsPolylineProc(numVertices, vertexList, faceListSize, faceList, pEdgeData, pFaceData, pVertexData);
887 }
888 protected:
889 void shellProcAsPolylineProc(OdInt32 /*numVertices*/, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList,
890 const OdGiEdgeData* /*pEdgeData*/, const OdGiFaceData* pFaceData, const OdGiVertexData* /*pVertexData*/)
891 {
892 OdInt32 nFace = 0, nFaceList = 0;
893 OdGeVector3d extrusion;
894 const bool bExtrusion = OdNonZero(drawContext().subEntityTraits().thickness());
895 while (nFaceList < faceListSize)
896 {
897 const OdInt32 numVerts = Od_abs(faceList[nFaceList++]);
898 const OdGeVector3d *pNormal = (pFaceData && pFaceData->normals()) ? (pFaceData->normals() + nFace) : NULL;
899 if (pNormal && bExtrusion)
900 extrusion = *pNormal * drawContext().subEntityTraits().thickness();
901 m_tmpPoints.resize(numVerts + 1);
902 OdGePoint3d *tmpPoints = m_tmpPoints.asArrayPtr();
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);
907 nFace++;
908 }
909 }
910};
911
916
925{
926 public:
931
933
942 virtual void copyFrom(const OdRxObject* pSource)
943 {
945 if (!pFrom)
946 throw OdError(eInvalidInput);
948 }
949};
950
955
956#include "TD_PackPop.h"
957
958#endif //#ifndef __ODGISECTIONGEOMETRYOUTPUT_H__
OdArray< OdGePoint3d, OdMemoryAllocator< OdGePoint3d > > OdGePoint3dArray
#define ODGI_EXPORT
Definition GiExport.h:35
OdGiArcType
Definition GiGeometry.h:877
@ kOdGiArcSimple
Definition GiGeometry.h:878
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition GiGeometry.h:51
OdSmartPtr< OdGiSectionGeometryOutput > OdGiSectionGeometryOutputPtr
OdSmartPtr< OdGiClippedGeometryOutputCallback > OdGiClippedGeometryOutputCallbackPtr
OdSmartPtr< OdGiCuttedGeometryOutput > OdGiCuttedGeometryOutputPtr
OdSmartPtr< OdGiClippedGeometryOutput > OdGiClippedGeometryOutputPtr
#define Od_abs
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
unsigned char OdUInt8
wchar_t OdChar
bool OdNonZero(double x, double tol=1.e-10)
Definition OdaDefs.h:537
#define SETBIT(flags, bit, value)
Definition OdaDefs.h:516
#define SETBIT_0(flags, bit)
Definition OdaDefs.h:519
#define GETBIT(flags, bit)
Definition OdaDefs.h:517
#define SETBIT_1(flags, bit)
Definition OdaDefs.h:520
WrapTraitsProc(OdGiClippedGeometryOutput *pThis)
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 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 &center, 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)
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 &center, 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()
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)
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 &center, 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)
void setNonSectionableGeometryClipping(bool bSet)
void setTraitsOverrides(const OdGiSubEntityTraitsData &pData)
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)
const OdGeVector3d * normals() const
Definition GiGeometry.h:566
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
void setSectionToleranceOverride(double tolOverride)
void enableOutputOfClosedSectionsAsPolylines(bool bSet)
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 *)
ODRX_DECLARE_MEMBERS(OdGiSectionGeometryOutput)
static void copyTraits(OdGiSubEntityTraits &pFrom, OdGiSubEntityTraits &pTo, OdUInt32 nFlags=kAllChanged)
static OdRxObjectPtr cast(const OdRxObject *pointer)
Definition RxObject.h:640
const GLfloat * v
Definition gles2_ext.h:315
virtual OdGiConveyorGeometry & destinationGeometry()=0