CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GsExtAccum.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, 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-2022 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:
54
56 {
57 OdGiConveyorGeometry* m_pGeometry;
58 public:
59 update_geometry(OdGiConveyorGeometry* pGeometry) : m_pGeometry(pGeometry) {}
60 void operator ()(OdGiConveyorOutput* pSourceNode)
61 {
62 pSourceNode->setDestGeometry(*m_pGeometry);
63 }
64 };
65public:
70
76
83
90
95
99 void updateLink();
100
107
112
117};
118
129{
130 OdGiExtAccumPtr m_pExtAccum;
131 OdGsViewImpl *m_pBaseVV;
132 OdDb::LineWeight m_maxLineweight;
133 OdGiConveyorContext *m_pConContext;
134protected:
136public:
138
139 // OdGsExtAccum functions
140
145
149 OdGiExtAccum *giExtAccum() { return m_pExtAccum.get(); }
150
154 const OdGiExtAccum *giExtAccum() const { return m_pExtAccum.get(); }
155
160 virtual void setBaseView(OdGsViewImpl *pBaseVV);
161
165 OdGsViewImpl* baseView() { return m_pBaseVV; }
166
167 // OdGiExtAccum functions
168
173 virtual void setDrawContext(OdGiConveyorContext* pDrawContext);
174
186
194 virtual bool getExtents(OdGeExtents3d& extents) const;
195
200 virtual void resetExtents(const OdGeExtents3d& newExtents = OdGeExtents3d());
201
206 virtual void addExtents(const OdGeExtents3d& extents);
207
214 virtual bool plineContainBulges() const;
215
221 virtual void setDeviation(const OdGeDoubleArray& deviations)
222 {
223 m_pExtAccum->setDeviation(deviations);
224 }
225
231 virtual void setDeviation(const OdGiDeviation* pDeviation)
232 {
233 m_pExtAccum->setDeviation(pDeviation);
234 }
235
240
246
247 // OdGiConveyorNode functions
248
253
258
259 // OdGiConveyorGeometry functions
260
273 virtual void plineProc(const OdGiPolyline& polyline,
274 const OdGeMatrix3d* pXfm = 0,
275 OdUInt32 fromIndex = 0,
276 OdUInt32 numSegs = 0);
277
291 virtual void polylineProc(
292 OdInt32 numPoints, const OdGePoint3d* vertexList,
293 const OdGeVector3d* pNormal = 0,
294 const OdGeVector3d* pExtrusion = 0,
295 OdGsMarker baseSubEntMarker = -1);
296
310 virtual void polygonProc(
311 OdInt32 numPoints, const OdGePoint3d* vertexList,
312 const OdGeVector3d* pNormal = 0,
313 const OdGeVector3d* pExtrusion = 0);
314
325 virtual void xlineProc(
326 const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
327
340 virtual void rayProc(
341 const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
342
361 virtual void meshProc(
362 OdInt32 numRows,
363 OdInt32 numColumns,
364 const OdGePoint3d* vertexList,
365 const OdGiEdgeData* pEdgeData = 0,
366 const OdGiFaceData* pFaceData = 0,
367 const OdGiVertexData* pVertexData = 0);
368
385 virtual void shellProc(
386 OdInt32 numVertices, const OdGePoint3d* vertexList,
387 OdInt32 faceListSize, const OdInt32* faceList,
388 const OdGiEdgeData* pEdgeData = 0,
389 const OdGiFaceData* pFaceData = 0,
390 const OdGiVertexData* pVertexData = 0);
391
404 virtual void circleProc(
405 const OdGePoint3d& center,
406 double radius,
407 const OdGeVector3d& normal,
408 const OdGeVector3d* pExtrusion = 0);
409
423 virtual void circleProc(
424 const OdGePoint3d& firstPoint,
425 const OdGePoint3d& secondPoint,
426 const OdGePoint3d& thirdPoint,
427 const OdGeVector3d* pExtrusion = 0);
428
457 virtual void circularArcProc(
458 const OdGePoint3d& center,
459 double radius,
460 const OdGeVector3d& normal,
461 const OdGeVector3d& startVector,
462 double sweepAngle,
463 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
464
480 virtual void circularArcProc(
481 const OdGePoint3d& firstPoint,
482 const OdGePoint3d& secondPoint,
483 const OdGePoint3d& thirdPoint,
484 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
485
508 virtual void ellipArcProc(
509 const OdGeEllipArc3d& ellipArc,
510 const OdGePoint3d* endPointOverrides = 0,
511 OdGiArcType arcType = kOdGiArcSimple, const OdGeVector3d* pExtrusion = 0);
512
519 virtual void nurbsProc(
520 const OdGeNurbCurve3d& nurbsCurve);
521
539 virtual void textProc(
540 const OdGePoint3d& position,
541 const OdGeVector3d& direction,
542 const OdGeVector3d& upVector,
543 const OdChar* msg,
544 OdInt32 numBytes,
545 bool raw,
546 const OdGiTextStyle* pTextStyle,
547 const OdGeVector3d* pExtrusion = 0);
548
566 virtual void textProc2(
567 const OdGePoint3d& position,
568 const OdGeVector3d& direction,
569 const OdGeVector3d& upVector,
570 const OdChar* msg,
571 OdInt32 numBytes,
572 bool raw,
573 const OdGiTextStyle* pTextStyle,
574 const OdGeVector3d* pExtrusion = 0,
575 const OdGeExtents3d* extentsBox = 0);
576
590 virtual void shapeProc(
591 const OdGePoint3d& position,
592 const OdGeVector3d& direction,
593 const OdGeVector3d& upVector,
594 int shapeNumber,
595 const OdGiTextStyle* pTextStyle,
596 const OdGeVector3d* pExtrusion = 0);
597
614 virtual void rasterImageProc(
615 const OdGePoint3d& origin,
616 const OdGeVector3d& u,
617 const OdGeVector3d& v,
618 const OdGiRasterImage* pImage,
619 const OdGePoint2d* uvBoundary,
620 OdUInt32 numBoundPts,
621 bool transparency = false,
622 double brightness = 50.0,
623 double contrast = 50.0,
624 double fade = 0.0);
625
636 virtual void metafileProc(
637 const OdGePoint3d& origin,
638 const OdGeVector3d& u,
639 const OdGeVector3d& v,
640 const OdGiMetafile* pMetafile,
641 bool dcAligned = true,
642 bool allowClipping = false);
643 virtual void setExtentsProc(const OdGePoint3d *pPoints, bool bTransform = true);
644
659 virtual void polypointProc(
660 OdInt32 numPoints,
661 const OdGePoint3d* vertexList,
662 const OdCmEntityColor* pColors,
663 const OdCmTransparency* pTransparency = 0,
664 const OdGeVector3d* pNormals = 0,
665 const OdGeVector3d* pExtrusions = 0,
666 const OdGsMarker* pSubEntMarkers = 0,
667 OdInt32 nPointSize = 0);
668
676 virtual void rowOfDotsProc(
677 OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
678
685 virtual void pointCloudProc(
686 const OdGiPointCloud &pCloud, const OdGiPointCloudFilter *pFilter = NULL);
687
695 const OdGiEdge2dArray& edges, const OdGeMatrix3d* pXform = 0);
696};
697
702
703#include "TD_PackPop.h"
704
705#endif // ODGSEXTACCUM_INC
lwd
Definition: DimVarDefs.h:1474
OdGiArcType
Definition: GiGeometry.h:787
@ kOdGiArcSimple
Definition: GiGeometry.h:788
#define GS_TOOLKIT_EXPORT
Definition: GsExport.h:37
OdSmartPtr< OdGsExtAccum > OdGsExtAccumPtr
Definition: GsExtAccum.h:701
ptrdiff_t OdGsMarker
unsigned int OdUInt32
int OdInt32
wchar_t OdChar
virtual void setDestGeometry(OdGiConveyorGeometry &destGeometry)=0
update_geometry(OdGiConveyorGeometry *pGeometry)
Definition: GsExtAccum.h:59
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:53
OdArray< OdGiConveyorOutput *, OdMemoryAllocator< OdGiConveyorOutput * > > SourceNodeArray
Definition: GsExtAccum.h:51
void removeSourceNode(OdGiConveyorOutput &sourceNode)
SourceNodeArray m_sources
Definition: GsExtAccum.h:52
virtual ~OdGsConveyorNodeBase()
Definition: GsExtAccum.h:116
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:165
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:149
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:221
virtual void setDeviation(const OdGiDeviation *pDeviation)
Definition: GsExtAccum.h:231
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:154
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