CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GsExtAccum.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 ODGSEXTACCUM_INC
25#define ODGSEXTACCUM_INC
26
27#include "TD_PackPush.h"
28
29#include "OdArray.h"
30
31#include "Ge/GeExtents3d.h"
32
33#include "Gi/GiExtAccum.h"
34
35#include "Gs/GsExport.h"
36#include "Gs/Gs.h"
37
38class OdGsViewImpl;
39
49{
50protected:
51 //DOM-IGNORE-BEGIN
52
56
58 {
59 OdGiConveyorGeometry* m_pGeometry;
60 public:
61 update_geometry(OdGiConveyorGeometry* pGeometry) : m_pGeometry(pGeometry) {}
62 void operator ()(OdGiConveyorOutput* pSourceNode)
63 {
64 pSourceNode->setDestGeometry(*m_pGeometry);
65 }
66 };
67
68 //DOM-IGNORE-END
69public:
74
80
87
94
99
104
111
116
121};
122
133{
134 OdGiExtAccumPtr m_pExtAccum;
135 OdGsViewImpl *m_pBaseVV;
136 OdDb::LineWeight m_maxLineweight;
137 OdGiConveyorContext *m_pConContext;
138protected:
140public:
142
143 // OdGsExtAccum functions
144
149
153 OdGiExtAccum *giExtAccum() { return m_pExtAccum.get(); }
154
158 const OdGiExtAccum *giExtAccum() const { return m_pExtAccum.get(); }
159
164 virtual void setBaseView(OdGsViewImpl *pBaseVV);
165
169 OdGsViewImpl* baseView() { return m_pBaseVV; }
170
171 // OdGiExtAccum functions
172
177 virtual void setDrawContext(OdGiConveyorContext* pDrawContext);
178
190
198 virtual bool getExtents(OdGeExtents3d& extents) const;
199
204 virtual void resetExtents(const OdGeExtents3d& newExtents = OdGeExtents3d());
205
210 virtual void addExtents(const OdGeExtents3d& extents);
211
218 virtual bool plineContainBulges() const;
219
225 virtual void setDeviation(const OdGeDoubleArray& deviations)
226 {
227 m_pExtAccum->setDeviation(deviations);
228 }
229
235 virtual void setDeviation(const OdGiDeviation* pDeviation)
236 {
237 m_pExtAccum->setDeviation(pDeviation);
238 }
239
244
250
251 // OdGiConveyorNode functions
252
257
262
263 // OdGiConveyorGeometry functions
264
277 virtual void plineProc(const OdGiPolyline& polyline,
278 const OdGeMatrix3d* pXfm = 0,
279 OdUInt32 fromIndex = 0,
280 OdUInt32 numSegs = 0);
281
295 virtual void polylineProc(
296 OdInt32 numPoints, const OdGePoint3d* vertexList,
297 const OdGeVector3d* pNormal = 0,
298 const OdGeVector3d* pExtrusion = 0,
299 OdGsMarker baseSubEntMarker = -1);
300
314 virtual void polygonProc(
315 OdInt32 numPoints, const OdGePoint3d* vertexList,
316 const OdGeVector3d* pNormal = 0,
317 const OdGeVector3d* pExtrusion = 0);
318
329 virtual void xlineProc(
330 const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
331
344 virtual void rayProc(
345 const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
346
365 virtual void meshProc(
366 OdInt32 numRows,
367 OdInt32 numColumns,
368 const OdGePoint3d* vertexList,
369 const OdGiEdgeData* pEdgeData = 0,
370 const OdGiFaceData* pFaceData = 0,
371 const OdGiVertexData* pVertexData = 0);
372
389 virtual void shellProc(
390 OdInt32 numVertices, const OdGePoint3d* vertexList,
391 OdInt32 faceListSize, const OdInt32* faceList,
392 const OdGiEdgeData* pEdgeData = 0,
393 const OdGiFaceData* pFaceData = 0,
394 const OdGiVertexData* pVertexData = 0);
395
408 virtual void circleProc(
409 const OdGePoint3d& center,
410 double radius,
411 const OdGeVector3d& normal,
412 const OdGeVector3d* pExtrusion = 0);
413
427 virtual void circleProc(
428 const OdGePoint3d& firstPoint,
429 const OdGePoint3d& secondPoint,
430 const OdGePoint3d& thirdPoint,
431 const OdGeVector3d* pExtrusion = 0);
432
461 virtual void circularArcProc(
462 const OdGePoint3d& center,
463 double radius,
464 const OdGeVector3d& normal,
465 const OdGeVector3d& startVector,
466 double sweepAngle,
467 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
468
484 virtual void circularArcProc(
485 const OdGePoint3d& firstPoint,
486 const OdGePoint3d& secondPoint,
487 const OdGePoint3d& thirdPoint,
488 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
489
512 virtual void ellipArcProc(
513 const OdGeEllipArc3d& ellipArc,
514 const OdGePoint3d* endPointOverrides = 0,
515 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
516
523 virtual void nurbsProc(
524 const OdGeNurbCurve3d& nurbsCurve);
525
543 virtual void textProc(
544 const OdGePoint3d& position,
545 const OdGeVector3d& direction,
546 const OdGeVector3d& upVector,
547 const OdChar* msg,
548 OdInt32 numBytes,
549 bool raw,
550 const OdGiTextStyle* pTextStyle,
551 const OdGeVector3d* pExtrusion = 0);
552
570 virtual void textProc2(
571 const OdGePoint3d& position,
572 const OdGeVector3d& direction,
573 const OdGeVector3d& upVector,
574 const OdChar* msg,
575 OdInt32 numBytes,
576 bool raw,
577 const OdGiTextStyle* pTextStyle,
578 const OdGeVector3d* pExtrusion = 0,
579 const OdGeExtents3d* extentsBox = 0);
580
594 virtual void shapeProc(
595 const OdGePoint3d& position,
596 const OdGeVector3d& direction,
597 const OdGeVector3d& upVector,
598 int shapeNumber,
599 const OdGiTextStyle* pTextStyle,
600 const OdGeVector3d* pExtrusion = 0);
601
618 virtual void rasterImageProc(
619 const OdGePoint3d& origin,
620 const OdGeVector3d& u,
621 const OdGeVector3d& v,
622 const OdGiRasterImage* pImage,
623 const OdGePoint2d* uvBoundary,
624 OdUInt32 numBoundPts,
625 bool transparency = false,
626 double brightness = 50.0,
627 double contrast = 50.0,
628 double fade = 0.0);
629
640 virtual void metafileProc(
641 const OdGePoint3d& origin,
642 const OdGeVector3d& u,
643 const OdGeVector3d& v,
644 const OdGiMetafile* pMetafile,
645 bool dcAligned = true,
646 bool allowClipping = false);
647 virtual void setExtentsProc(const OdGePoint3d *pPoints, bool bTransform = true);
648
663 virtual void polypointProc(
664 OdInt32 numPoints,
665 const OdGePoint3d* vertexList,
666 const OdCmEntityColor* pColors,
667 const OdCmTransparency* pTransparency = 0,
668 const OdGeVector3d* pNormals = 0,
669 const OdGeVector3d* pExtrusions = 0,
670 const OdGsMarker* pSubEntMarkers = 0,
671 OdInt32 nPointSize = 0);
672
680 virtual void rowOfDotsProc(
681 OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
682
689 virtual void pointCloudProc(
690 const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter = NULL);
691
699 const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0);
700};
701
706
707#include "TD_PackPop.h"
708
709#endif // ODGSEXTACCUM_INC
lwd
OdArray< double, OdMemoryAllocator< double > > OdGeDoubleArray
OdSmartPtr< OdGiExtAccum > OdGiExtAccumPtr
Definition GiExtAccum.h:125
OdGiArcType
Definition GiGeometry.h:877
@ kOdGiArcSimple
Definition GiGeometry.h:878
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition GiGeometry.h:51
#define GS_TOOLKIT_EXPORT
Definition GsExport.h:37
OdSmartPtr< OdGsExtAccum > OdGsExtAccumPtr
Definition GsExtAccum.h:705
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
wchar_t OdChar
virtual void setDestGeometry(OdGiConveyorGeometry &destGeometry)=0
update_geometry(OdGiConveyorGeometry *pGeometry)
Definition GsExtAccum.h:61
void updateLink(OdGiConveyorGeometry *pGeometry)
virtual OdGiConveyorGeometry * optionalGeometry()=0
void setDestGeometry(OdGiConveyorGeometry &destGeometry)
OdGiConveyorGeometry & destGeometry() const
void addSourceNode(OdGiConveyorOutput &sourceNode)
OdGiConveyorGeometry * m_pDestGeom
Definition GsExtAccum.h:55
OdArray< OdGiConveyorOutput *, OdMemoryAllocator< OdGiConveyorOutput * > > SourceNodeArray
Definition GsExtAccum.h:53
void removeSourceNode(OdGiConveyorOutput &sourceNode)
SourceNodeArray m_sources
Definition GsExtAccum.h:54
virtual ~OdGsConveyorNodeBase()
Definition GsExtAccum.h:120
virtual void polygonProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0)
virtual bool getExtents(OdGeExtents3d &extents) const
virtual void circleProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, const OdGeVector3d *pExtrusion=0)
virtual void xlineProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
virtual OdGiConveyorOutput & output()
OdGsViewImpl * baseView()
Definition GsExtAccum.h:169
virtual void nurbsProc(const OdGeNurbCurve3d &nurbsCurve)
virtual void resetExtents(const OdGeExtents3d &newExtents=OdGeExtents3d())
virtual void setExtentsProc(const OdGePoint3d *pPoints, bool bTransform=true)
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 *extentsBox=0)
virtual void setBaseView(OdGsViewImpl *pBaseVV)
virtual void rayProc(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
OdGiExtAccum * giExtAccum()
Definition GsExtAccum.h:153
virtual void addExtents(const OdGeExtents3d &extents)
virtual OdGiConveyorGeometry & geometry()
virtual void meshProc(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=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)
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 shapeProc(const OdGePoint3d &position, const OdGeVector3d &direction, const OdGeVector3d &upVector, int shapeNumber, const OdGiTextStyle *pTextStyle, const OdGeVector3d *pExtrusion=0)
virtual void polylineProc(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, const OdGeVector3d *pExtrusion=0, OdGsMarker baseSubEntMarker=-1)
virtual void pointCloudProc(const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter=NULL)
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 plineProc(const OdGiPolyline &polyline, const OdGeMatrix3d *pXfm=0, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
virtual void circularArcProc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple, 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 OdGiConveyorInput & input()
virtual void circleProc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d *pExtrusion=0)
virtual void metafileProc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
virtual void setDrawContext(OdGiConveyorContext *pDrawContext)
virtual void setDeviation(const OdGeDoubleArray &deviations)
Definition GsExtAccum.h:225
virtual void setDeviation(const OdGiDeviation *pDeviation)
Definition GsExtAccum.h:235
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 rowOfDotsProc(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
ODRX_DECLARE_MEMBERS(OdGsExtAccum)
void addLineweight(OdDb::LineWeight lwd)
OdDb::LineWeight getLineweight() const
void edgeProc(const OdGiEdge2dArray &edges, const OdGeMatrix3d *pXform=0)
const OdGiExtAccum * giExtAccum() const
Definition GsExtAccum.h:158
OdGiConveyorGeometry * optionalGeometry()
virtual bool plineContainBulges() const
virtual void ellipArcProc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointOverrides=0, OdGiArcType arcType=kOdGiArcSimple, const OdGeVector3d *pExtrusion=0)
const GLfloat * v
Definition gles2_ext.h:315
LineWeight
Definition OdaDefs.h:386