CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiDummyGeometry.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 _ODGIDUMMYGEOM_INCLUDED_
25#define _ODGIDUMMYGEOM_INCLUDED_
26
27#include "Gi/Gi.h"
28#include "Gi/GiWorldDraw.h"
29#include "Gi/GiViewportDraw.h"
31#include "OdStack.h"
32#include "StaticRxObject.h"
33
34#include "TD_PackPush.h"
35
41template <class T> class OdGiWrapperGeometry : public T
42{
43 OdGiGeometry *m_Geom = nullptr;
44protected:
45 void setGeom(OdGiGeometry &Geom) { m_Geom = &Geom; }
46 OdGiGeometry &getGeom() { return *m_Geom; }
47public:
48
63 virtual void pline(const OdGiPolyline& p, OdUInt32 i, OdUInt32 n)
64 {
65 m_Geom->pline(p, i, n);
66 }
67
79 {
80 return m_Geom->getModelToWorldTransform();
81 }
82
92 {
93 return m_Geom->getWorldToModelTransform();
94 }
95
106 virtual void pushModelTransform(const OdGeVector3d& vNormal)
107 {
108 m_Geom->pushModelTransform(vNormal);
109 }
110
119 virtual void pushModelTransform(const OdGeMatrix3d& xMat)
120 {
121 m_Geom->pushModelTransform(xMat);
122 }
123
127 virtual void popModelTransform()
128 {
129 m_Geom->popModelTransform();
130 }
131
132 // For drawing various primitives.
133 //
134
146 virtual void circle(const OdGePoint3d& center, double radius, const OdGeVector3d& normal)
147 {
148 m_Geom->circle(center, radius, normal);
149 }
150
162 virtual void circle(const OdGePoint3d& p1, const OdGePoint3d& p2, const OdGePoint3d& p3)
163 {
164 m_Geom->circle(p1, p2, p3);
165 }
166
192 virtual void circularArc(const OdGePoint3d& center,
193 double radius,
194 const OdGeVector3d& normal,
195 const OdGeVector3d& startVector,
196 double sweepAngle,
197 OdGiArcType arcType = kOdGiArcSimple)
198 {
199 m_Geom->circularArc(center, radius, normal, startVector, sweepAngle, arcType);
200 }
201
212 virtual void circularArc(const OdGePoint3d& start,
213 const OdGePoint3d& point,
214 const OdGePoint3d& end,
215 OdGiArcType arcType = kOdGiArcSimple)
216 {
217 m_Geom->circularArc(start, point, end, arcType);
218 }
219
236 virtual void polyline(OdInt32 nbPoints,
237 const OdGePoint3d* pVertexList,
238 const OdGeVector3d* pNormal = NULL,
239 OdGsMarker lBaseSubEntMarker = -1)
240 {
241 m_Geom->polyline(nbPoints, pVertexList, pNormal, lBaseSubEntMarker);
242 }
243
256 virtual void polygon(OdInt32 nbPoints, const OdGePoint3d* pVertexList)
257 {
258 m_Geom->polygon(nbPoints, pVertexList);
259 }
260
274 virtual void polygon(OdInt32 nbPoints, const OdGePoint3d* pVertexList, const OdGeVector3d* pNormal)
275 {
276 m_Geom->polygon(nbPoints, pVertexList, pNormal);
277 }
278
301 virtual void mesh(OdInt32 rows,
302 OdInt32 columns,
303 const OdGePoint3d* pVertexList,
304 const OdGiEdgeData* pEdgeData = NULL,
305 const OdGiFaceData* pFaceData = NULL,
306 const OdGiVertexData* pVertexData = NULL)
307 {
308 m_Geom->mesh(rows, columns, pVertexList, pEdgeData, pFaceData, pVertexData);
309 }
310
330 virtual void shell(OdInt32 nbVertex,
331 const OdGePoint3d* pVertexList,
332 OdInt32 faceListSize,
333 const OdInt32* pFaceList,
334 const OdGiEdgeData* pEdgeData = NULL,
335 const OdGiFaceData* pFaceData = NULL,
336 const OdGiVertexData* pVertexData = NULL)
337 {
338 m_Geom->shell(nbVertex, pVertexList, faceListSize, pFaceList, pEdgeData, pFaceData, pVertexData);
339 }
340
357 virtual void text(const OdGePoint3d& position,
358 const OdGeVector3d& normal, const OdGeVector3d& direction,
359 double height, double width, double oblique, const OdString& msg)
360 {
361 m_Geom->text(position, normal, direction, height, width, oblique, msg);
362 }
363
377 virtual void text(const OdGePoint3d& position,
378 const OdGeVector3d& normal, const OdGeVector3d& direction,
379 const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle)
380 {
381 m_Geom->text(position, normal, direction, msg, length, raw, pTextStyle);
382 }
383
392 void ray(const OdGePoint3d& first, const OdGePoint3d& second)
393 {
394 m_Geom->ray(first, second);
395 }
396
404 virtual void nurbs(const OdGeNurbCurve3d& nurbs)
405 {
406 m_Geom->nurbs(nurbs);
407 }
408
417 virtual void xline(const OdGePoint3d& p1, const OdGePoint3d& p2)
418 {
419 m_Geom->xline(p1, p2);
420 }
421
440 virtual void ellipArc(const OdGeEllipArc3d& arc,
441 const OdGePoint3d* pEndPointsOverrides = 0,
442 OdGiArcType arcType = kOdGiArcSimple)
443 {
444 m_Geom->ellipArc(arc, pEndPointsOverrides, arcType);
445 }
446
458 virtual void draw(const OdGiDrawable* pD)
459 {
460 m_Geom->draw(pD);
461 }
462
472 virtual void pushClipBoundary(OdGiClipBoundary* pBoundary)
473 {
474 m_Geom->pushClipBoundary(pBoundary);
475 }
476
482 virtual void popClipBoundary()
483 {
484 m_Geom->popClipBoundary();
485 }
486
497 virtual void worldLine(const OdGePoint3d pnts[2])
498 {
499 m_Geom->worldLine(pnts);
500 }
501
513 virtual void image(const OdGiImageBGRA32& img,
514 const OdGePoint3d& origin,
515 const OdGeVector3d& uVec,
516 const OdGeVector3d& vVec,
518 {
519 m_Geom->image(img, origin, uVec, vVec, trpMode);
520 }
521
527 virtual void edge(const OdGiEdge2dArray& edges)
528 {
529 m_Geom->edge(edges);
530 }
531
543 virtual void polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors, const OdCmTransparency* pTransparency,
544 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers, OdInt32 nPointSize)
545 {
546 m_Geom->polypoint(numPoints, vertexList, pColors, pTransparency, pNormals, pSubEntMarkers, nPointSize);
547 }
548
562 virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions,
563 const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints,
564 const OdCmEntityColor *pOutlineColors = NULL, const OdUInt32 *pOutlinePsLinetypes = NULL,
565 const OdCmEntityColor *pFillColors = NULL, const OdCmTransparency *pFillTransparencies = NULL)
566 {
567 m_Geom->polyPolygon(numIndices, pNumPositions, pPositions, pNumPoints, pPoints,
568 pOutlineColors, pOutlinePsLinetypes, pFillColors, pFillTransparencies);
569 }
570
578 virtual void rowOfDots(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint)
579 {
580 m_Geom->rowOfDots(numPoints, startPoint, dirToNextPoint);
581 }
582
588 virtual void pointCloud(const OdGiPointCloud &pCloud)
589 {
590 m_Geom->pointCloud(pCloud);
591 }
592
599 virtual bool brep( const OdGiBrep& giBrep )
600 {
601 return m_Geom->brep( giBrep );
602 }
603};
604
610template <class T> class OdGiWrapperWorldGeometry : public OdGiWrapperGeometry< T >
611{
612public:
613
619 virtual void setExtents(const OdGePoint3d *newExtents) { ((OdGiWorldGeometry&)(OdGiWrapperGeometry< T >::getGeom())).setExtents(newExtents); }
620
625};
626
632template <class T> class OdGiWrapperViewportGeometry : public OdGiWrapperGeometry< T >
633{
634public:
641 virtual void polylineEye(
642 OdUInt32 numVertices,
643 const OdGePoint3d* vertexList) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).polylineEye(numVertices, vertexList); }
644
651 virtual void polygonEye(
652 OdUInt32 numVertices,
653 const OdGePoint3d* vertexList) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).polygonEye(numVertices, vertexList); }
654
661 virtual void polylineDc(
662 OdUInt32 numVertices,
663 const OdGePoint3d* vertexList) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).polylineDc(numVertices, vertexList); }
664
671 virtual void polygonDc(
672 OdUInt32 numVertices,
673 const OdGePoint3d* vertexList) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).polygonDc(numVertices, vertexList); }
674
691 virtual void rasterImageDc(
692 const OdGePoint3d& origin,
693 const OdGeVector3d& u,
694 const OdGeVector3d& v,
695 const OdGiRasterImage* pImage,
696 const OdGePoint2d* uvBoundary,
697 OdUInt32 numBoundPts,
698 bool transparency = false,
699 double brightness = 50.0,
700 double contrast = 50.0,
701 double fade = 0.0) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).rasterImageDc(origin,u,v,pImage, uvBoundary, numBoundPts,transparency,brightness,contrast,fade); }
702
713 virtual void metafileDc(
714 const OdGePoint3d& origin,
715 const OdGeVector3d& u,
716 const OdGeVector3d& v,
717 const OdGiMetafile* pMetafile,
718 bool dcAligned = true,
719 bool allowClipping = false) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).metafileDc(origin,u,v,pMetafile,dcAligned,allowClipping); }
720
738 virtual void ownerDrawDc(
739 const OdGePoint3d& origin,
740 const OdGeVector3d& u,
741 const OdGeVector3d& v,
742 const OdGiSelfGdiDrawable* pDrawable,
743 bool dcAligned = true,
744 bool allowClipping = false) { ((OdGiViewportGeometry&)(OdGiWrapperGeometry< T >::getGeom())).ownerDrawDc(origin,u,v,pDrawable,dcAligned,allowClipping); }
745};
746
752template <class TInterface, class TData>
753class OdGiSubEntityTraitsToDataWrapper : public TInterface
754{
755 protected:
756 TData *m_pTraits;
757 public:
758
763
767 void setTraits(TData &pTraits) { m_pTraits = &pTraits; }
768
772 TData &getTraits() const { return *m_pTraits; }
773
797 void setColor(OdUInt16 n) { m_pTraits->setColor(n); }
798
806 void setTrueColor(const OdCmEntityColor& n) { m_pTraits->setTrueColor(n); }
807
814 void setLayer(OdDbStub* n) { m_pTraits->setLayer(n); }
815
822 void setLineType(OdDbStub* n) { m_pTraits->setLineType(n); }
823
827 void setSelectionMarker(OdGsMarker /*n*/) { } // Stub
828
849 void setFillType(OdGiFillType n) { m_pTraits->setFillType(n); }
850
854 void setFillPlane(const OdGeVector3d* /*n*/ = 0) { } // Stub
855
863 void setLineWeight(OdDb::LineWeight n) { m_pTraits->setLineWeight(n); }
864
871 void setLineTypeScale(double n = 1.0) { m_pTraits->setLineTypeScale(n); }
872
877 void setThickness(double n) { m_pTraits->setThickness(n); }
878
896 void setPlotStyleName(OdDb::PlotStyleNameType n, OdDbStub* m = 0) { m_pTraits->setPlotStyleName(n, m); }
897
904 void setMaterial(OdDbStub* n) { m_pTraits->setMaterial(n); }
905
912 void setMapper(const OdGiMapper * n) { m_pTraits->setMapper(n); }
913
920 void setVisualStyle(const OdDbStub* n) { m_pTraits->setVisualStyle(const_cast<OdDbStub*>(n)); }
921
928
935
942
950 void setSelectionGeom(bool bSelectionFlag) { m_pTraits->setSelectionGeom(bSelectionFlag); }
951
960
968 void setSectionable(bool bSectionableFlag) { m_pTraits->setSectionable(bSectionableFlag); }
969
976
982 void setSecondaryTrueColor(const OdCmEntityColor& n) { m_pTraits->setSecondaryTrueColor(n); }
983
989 void setLineStyleModifiers(const OdGiDgLinetypeModifiers* pLSMod) { m_pTraits->setLineStyleModifiers(pLSMod); }
990
996 void setFill(const OdGiFill* pFill) { m_pTraits->setFill(pFill); }
997
1003 void setAuxData(const OdGiAuxiliaryDataPtr& pAuxData) { m_pTraits->setAuxData(pAuxData); }
1004
1013 OdUInt16 color() const { return m_pTraits->color(); }
1014
1023 OdCmEntityColor trueColor() const { return m_pTraits->trueColor(); }
1024
1033 OdDbStub* layer() const { return m_pTraits->layer(); }
1034
1043 OdDbStub* lineType() const { return m_pTraits->lineType(); }
1044
1057 OdGiFillType fillType() const { return m_pTraits->fillType(); }
1058
1065 bool fillPlane(OdGeVector3d& /*n*/) { return false; } // Stub
1066
1075 OdDb::LineWeight lineWeight() const { return m_pTraits->lineWeight(); }
1076
1085 double lineTypeScale() const { return m_pTraits->lineTypeScale(); }
1086
1093 double thickness() const { return m_pTraits->thickness(); }
1094
1109 OdDb::PlotStyleNameType plotStyleNameType() const { return m_pTraits->plotStyleNameType(); }
1110
1117 OdDbStub* plotStyleNameId() const { return m_pTraits->plotStyleNameId(); }
1118
1127 OdDbStub* material() const { return m_pTraits->material(); }
1128
1137 const OdGiMapper* mapper() const { return m_pTraits->mapper(); }
1138
1147 OdDbStub* visualStyle() const { return m_pTraits->visualStyle(); }
1148
1159 OdCmTransparency transparency() const { return m_pTraits->transparency(); }
1160
1167 OdUInt32 drawFlags() const { return m_pTraits->drawFlags(); }
1168
1175 OdUInt32 lockFlags() const { return m_pTraits->lockFlags(); }
1176
1185 bool selectionGeom() const { return m_pTraits->selectionGeom(); }
1186
1195 OdGiSubEntityTraits::ShadowFlags shadowFlags() const { return m_pTraits->shadowFlags(); }
1196
1205 bool sectionable() const { return m_pTraits->sectionable(); }
1206
1214
1221 OdCmEntityColor secondaryTrueColor() const { return m_pTraits->secondaryTrueColor(); }
1222
1229 const OdGiDgLinetypeModifiers* lineStyleModifiers() const { return m_pTraits->lineStyleModifiers(); }
1230
1237 const OdGiFill* fill() const { return m_pTraits->fill(); }
1238
1245 OdGiAuxiliaryDataPtr auxData() const { return m_pTraits->auxData(); }
1246};
1247
1253class OdGiSubEntityTraitsToData : public OdGiSubEntityTraitsToDataWrapper<OdStaticRxObject<OdGiSubEntityTraits>, OdGiSubEntityTraitsData>
1255{
1256 public:
1261
1268
1269
1278 {
1279 if (GETBIT(nFlags, kColorChanged)) pTo.setTrueColor(pFrom.trueColor());
1280 if (GETBIT(nFlags, kLayerChanged)) pTo.setLayer(pFrom.layer());
1281 if (GETBIT(nFlags, kLineTypeChanged)) pTo.setLineType(pFrom.lineType());
1282 if (GETBIT(nFlags, kFillTypeChanged)) pTo.setFillType(pFrom.fillType());
1283 if (GETBIT(nFlags, kLineWeightChanged)) pTo.setLineWeight(pFrom.lineWeight());
1285 if (GETBIT(nFlags, kThicknessChanged)) pTo.setThickness(pFrom.thickness());
1287 if (GETBIT(nFlags, kMaterialChanged)) pTo.setMaterial(pFrom.material());
1288 if (GETBIT(nFlags, kMapperChanged)) pTo.setMapper(pFrom.mapper());
1289 if (GETBIT(nFlags, kVisualStyleChanged)) pTo.setVisualStyle(pFrom.visualStyle());
1290 if (GETBIT(nFlags, kTransparencyChanged)) pTo.setTransparency(pFrom.transparency());
1291 if (GETBIT(nFlags, kDrawFlagsChanged)) pTo.setDrawFlags(pFrom.drawFlags());
1292 if (GETBIT(nFlags, kLockFlagsChanged)) pTo.setLockFlags(pFrom.lockFlags());
1294 if (GETBIT(nFlags, kShadowFlagsChanged)) pTo.setShadowFlags(pFrom.shadowFlags());
1295 if (GETBIT(nFlags, kSectionableChanged)) pTo.setSectionable(pFrom.sectionable());
1299 if (GETBIT(nFlags, kFillChanged)) pTo.setFill(pFrom.fill());
1300 if (GETBIT(nFlags, kAuxDataChanged)) pTo.setAuxData(pFrom.auxData());
1301 }
1302};
1303
1309template<class T> class OdGiSubEntityTraitsWrapper : public OdGiSubEntityTraitsToDataWrapper<T, OdGiSubEntityTraits>
1310{
1311private:
1313protected:
1314 void setTraits(OdGiSubEntityTraits &pTraits) { baseTraits() = &pTraits; }
1315 OdGiSubEntityTraits &getTraits() { return *baseTraits(); }
1316public:
1321
1322 //DOM-IGNORE-BEGIN
1323 // no refcounting
1324 void addRef() { baseTraits()->addRef(); }
1325 // no refcounting
1326 void release() ODRX_NOEXCEPT { baseTraits()->release(); }
1327 //DOM-IGNORE-END
1328
1333 void setSelectionMarker(OdGsMarker n) { baseTraits()->setSelectionMarker(n); }
1334
1340 void setFillPlane(const OdGeVector3d* n = 0) { baseTraits()->setFillPlane(n); }
1341
1350 bool fillPlane(OdGeVector3d& n) { return baseTraits()->fillPlane(n); }
1351};
1352
1358template<class T> class OdGiWrapperCommonDraw : public T
1359{
1360 OdGiCommonDraw *m_pD;
1361protected:
1362 void setDraw(OdGiCommonDraw &pD) { m_pD = &pD; }
1363 OdGiCommonDraw *getDraw() const { return m_pD; }
1364public:
1369
1376 virtual OdGiGeometry& rawGeometry() const { return m_pD->rawGeometry(); }
1377
1395 virtual OdGiRegenType regenType() const { return m_pD->regenType(); }
1396
1403 virtual bool regenAbort() const { return m_pD->regenAbort(); }
1404
1414 virtual OdGiSubEntityTraits& subEntityTraits() const { return m_pD->subEntityTraits(); }
1415
1422 virtual bool isDragging() const { return m_pD->isDragging(); }
1423
1430 virtual OdGiContext* context() const { return m_pD->context(); }
1431
1443 virtual OdUInt32 numberOfIsolines() const { return m_pD->numberOfIsolines(); }
1444
1451 virtual const OdGiPathNode* currentGiPath() const { return m_pD->currentGiPath(); }
1452
1459 virtual bool displayModelerSilhouettes() const { return m_pD->displayModelerSilhouettes(); }
1460
1487 virtual double deviation(const OdGiDeviationType t, const OdGePoint3d& p) const { return m_pD->deviation(t, p); }
1488};
1489
1495template<class T> class OdGiWrapperViewportDraw : public OdGiWrapperCommonDraw< T >
1496{
1497public:
1504 virtual OdGiViewport& viewport() const { return ((OdGiViewportDraw*)(OdGiWrapperCommonDraw< T >::getDraw()))->viewport(); }
1505
1513
1520 virtual OdUInt32 sequenceNumber() const { return ((OdGiViewportDraw*)(OdGiWrapperCommonDraw< T >::getDraw()))->sequenceNumber(); }
1521
1530 virtual bool isValidId(const OdUInt32 viewportId) const { return ((OdGiViewportDraw*)(OdGiWrapperCommonDraw< T >::getDraw()))->isValidId(viewportId); }
1531
1538 virtual OdDbStub* viewportObjectId() const { return ((OdGiViewportDraw*)(OdGiWrapperCommonDraw< T >::getDraw()))->viewportObjectId(); }
1539};
1540
1546template<class T> class OdGiWrapperWorldDraw : public OdGiWrapperCommonDraw< T >
1547{
1548public:
1555 virtual OdGiWorldGeometry& geometry() const { return ((OdGiWorldDraw*)(OdGiWrapperCommonDraw< T >::getDraw()))->geometry(); }
1556};
1557
1563class OdGiViewportDraw_Stub : public OdGiWrapperViewportDraw<OdGiViewportDraw>
1564 , public OdGiWrapperViewportGeometry<OdGiViewportGeometry>
1565 , public OdGiSubEntityTraitsWrapper<OdGiSubEntityTraits>
1566{
1567public:
1569
1578 {
1579 setDraw(pVD);
1580 setGeom(pVG);
1581 setTraits(pST);
1582 }
1583
1592 virtual OdGiGeometry& rawGeometry() const { return *static_cast<OdGiGeometry*>(const_cast<OdGiViewportDraw_Stub*>(this)); }
1593
1602 virtual OdGiSubEntityTraits& subEntityTraits() const { return *static_cast<OdGiSubEntityTraits*>(const_cast<OdGiViewportDraw_Stub*>(this)); }
1603
1610 virtual OdGiViewportGeometry& geometry() const { return *static_cast<OdGiViewportGeometry*>(const_cast<OdGiViewportDraw_Stub*>(this)); }
1611
1615 void addRef() { }
1616
1621};
1622
1628class OdGiWorldDraw_Stub : public OdGiWrapperWorldDraw<OdGiWorldDraw>
1629 , public OdGiWrapperWorldGeometry<OdGiWorldGeometry>
1630 , public OdGiSubEntityTraitsWrapper<OdGiSubEntityTraits>
1631{
1632public:
1634
1643 {
1644 setDraw(pVD);
1645 setGeom(pVG);
1646 setTraits(pST);
1647 }
1648
1657 virtual OdGiGeometry& rawGeometry() const { return *static_cast<OdGiGeometry*>(const_cast<OdGiWorldDraw_Stub*>(this)); }
1658
1667 virtual OdGiSubEntityTraits& subEntityTraits() const { return *static_cast<OdGiSubEntityTraits*>(const_cast<OdGiWorldDraw_Stub*>(this)); }
1668
1675 virtual OdGiWorldGeometry& geometry() const { return *static_cast<OdGiWorldGeometry*>(const_cast<OdGiWorldDraw_Stub*>(this)); }
1676
1680 void addRef() { }
1681
1686};
1687
1688#if defined _MSC_VER
1689#pragma warning(push)
1690#pragma warning(disable:4100) // unreferenced formal parameter
1691#endif
1692
1698template <class T> class OdGiDummyGeometry : public T
1699{
1700public:
1712 void circle(const OdGePoint3d& center, double radius, const OdGeVector3d& normal) {}
1713
1725 void circle(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint) {}
1726
1752 void circularArc(const OdGePoint3d& center,
1753 double radius,
1754 const OdGeVector3d& normal,
1755 const OdGeVector3d& startVector,
1756 double sweepAngle,
1757 OdGiArcType arcType = kOdGiArcSimple) {}
1758
1769 void circularArc(const OdGePoint3d& firstPoint,
1770 const OdGePoint3d& secondPoint,
1771 const OdGePoint3d& thirdPoint,
1772 OdGiArcType arcType = kOdGiArcSimple) {}
1773
1789 void polyline(OdInt32 numVertices,
1790 const OdGePoint3d* vertexList,
1791 const OdGeVector3d* pNormal = 0,
1792 OdGsMarker baseSubEntMarker = -1) {}
1793
1806 void polygon(OdInt32 numVertices, const OdGePoint3d* vertexList) {}
1807
1821 void polygon(OdInt32 numVertices, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal) {}
1822
1837 void pline(const OdGiPolyline& polylPine, OdUInt32 fromIndex = 0, OdUInt32 numSegs = 0) {}
1838
1848 void shape(const OdGePoint3d& position,
1849 const OdGeVector3d& normal, const OdGeVector3d& direction,
1850 int shapeNumber, const OdGiTextStyle* pTextStyle) {}
1851
1865 void text(const OdGePoint3d& position,
1866 const OdGeVector3d& normal, const OdGeVector3d& direction,
1867 double height, double width, double oblique, const OdString& msg) {}
1868
1882 void text(const OdGePoint3d& position,
1883 const OdGeVector3d& normal, const OdGeVector3d& direction,
1884 const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle) {}
1885
1892 void xline(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint) {}
1893
1902 void ray(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint ) {}
1903
1911 void nurbs(const OdGeNurbCurve3d& nurbsCurve) {}
1912
1932 const OdGePoint3d* endPointsOverrides = 0,
1933 OdGiArcType arcType = kOdGiArcSimple) {}
1934
1947 void mesh(OdInt32 numRows,
1948 OdInt32 numColumns,
1949 const OdGePoint3d* vertexList,
1950 const OdGiEdgeData* pEdgeData = 0,
1951 const OdGiFaceData* pFaceData = 0,
1952 const OdGiVertexData* pVertexData = 0) {}
1953
1967 void shell(OdInt32 numVertices,
1968 const OdGePoint3d* vertexList,
1969 OdInt32 faceListSize,
1970 const OdInt32* faceList,
1971 const OdGiEdgeData* pEdgeData = 0,
1972 const OdGiFaceData* pFaceData = 0,
1973 const OdGiVertexData* pVertexData = 0) {}
1974
1982 void worldLine(const OdGePoint3d points[2]) {}
1983
1995 void image(const OdGiImageBGRA32& img,
1996 const OdGePoint3d& origin,
1997 const OdGeVector3d& uVec,
1998 const OdGeVector3d& vVec,
2000
2006 virtual void edge(const OdGiEdge2dArray& edges) {}
2007
2019 void polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors, const OdCmTransparency* pTransparency,
2020 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers, OdInt32 nPointSize) {}
2021
2035 virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions,
2036 const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints,
2037 const OdCmEntityColor *pOutlineColors = NULL, const OdUInt32 *pOutlinePsLinetypes = NULL,
2038 const OdCmEntityColor *pFillColors = NULL, const OdCmTransparency *pFillTransparencies = NULL) {}
2039
2047 void rowOfDots(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint) {}
2048
2054 void pointCloud(const OdGiPointCloud &pCloud) {}
2055
2061 void setExtents(const OdGePoint3d *newExtents) {}
2062
2072
2080
2086 void draw(const OdGiDrawable* pDrawable) {}
2087
2094 void pushModelTransform(const OdGeMatrix3d& xMat) { }
2095
2102 void pushModelTransform(const OdGeVector3d& normal) { }
2103
2108
2116
2125
2132 bool brep(const OdGiBrep&) { return false; }
2133};
2134
2140template <class T> class OdGiDummyWorldGeometry : public OdGiDummyGeometry< T >
2141{
2142public:
2148 virtual void setExtents(
2149 const OdGePoint3d * newExtents) { }
2150
2154 virtual void startAttributesSegment() {}
2155};
2156
2162template <class T> class OdGiDummyViewportGeometry : public OdGiDummyGeometry< T >
2163{
2164public:
2165
2172 virtual void polylineEye(
2173 OdUInt32 numVertices,
2174 const OdGePoint3d* vertexList) { }
2175
2182 virtual void polygonEye(
2183 OdUInt32 numVertices,
2184 const OdGePoint3d* vertexList) { }
2185
2192 virtual void polylineDc(
2193 OdUInt32 numVertices,
2194 const OdGePoint3d* vertexList) { }
2195
2202 virtual void polygonDc(
2203 OdUInt32 numVertices,
2204 const OdGePoint3d* vertexList) { }
2205
2220 virtual void rasterImageDc(
2221 const OdGePoint3d& origin,
2222 const OdGeVector3d& u,
2223 const OdGeVector3d& v,
2224 const OdGiRasterImage* pImage,
2225 const OdGePoint2d* uvBoundary,
2226 OdUInt32 numBoundPts,
2227 bool transparency = false,
2228 double brightness = 50.0,
2229 double contrast = 50.0,
2230 double fade = 0.0) { }
2231
2242 virtual void metafileDc(
2243 const OdGePoint3d& origin,
2244 const OdGeVector3d& u,
2245 const OdGeVector3d& v,
2246 const OdGiMetafile* pMetafile,
2247 bool bDcAligned = true,
2248 bool bAllowClipping = false) { }
2249
2268 virtual void ownerDrawDc(
2269 const OdGePoint3d& origin,
2270 const OdGeVector3d& u,
2271 const OdGeVector3d& v,
2272 const OdGiSelfGdiDrawable* pDrawable,
2273 bool dcAligned = true,
2274 bool allowClipping = false) { }
2275};
2276
2277// OdGiSubEntityTraits dummy template
2278
2284template <class T> class OdGiDummySubEntityTraits : public T
2285{
2286public:
2311
2320
2327 void setLayer(OdDbStub* layerId) { }
2328
2335 void setLineType(OdDbStub* lineTypeId) { }
2336
2341 void setSelectionMarker(OdGsMarker selectionMarker) { }
2342
2357
2363 void setFillPlane(const OdGeVector3d* pNormal = 0) {}
2364
2373
2380 void setLineTypeScale(double lineTypeScale = 1.0) { }
2381
2386 void setThickness(double thickness) { }
2387
2407 void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub* pPlotStyleNameId = 0) { }
2408
2415 void setMaterial(OdDbStub* materialId) { }
2416
2423 void setMapper(const OdGiMapper * pMapper) { }
2424
2431 void setVisualStyle(const OdDbStub* visualStyleId) { }
2432
2443
2450
2457
2465 void setSelectionGeom(bool bSelectionFlag) { }
2466
2475
2483 void setSectionable(bool bSectionableFlag) { }
2484
2491
2500 OdUInt16 color() const { return 0; }
2501
2511
2520 OdDbStub* layer() const { return NULL; }
2521
2530 OdDbStub* lineType() const { return NULL; }
2531
2539
2548 bool fillPlane(OdGeVector3d& normal) { return false; }
2549
2559
2568 double lineTypeScale() const { return 0.0; }
2569
2576 double thickness() const { return 0.0; }
2577
2585
2592 OdDbStub* plotStyleNameId() const { return NULL; }
2593
2602 OdDbStub* material() const { return NULL; }
2603
2612 const OdGiMapper* mapper() const { return NULL; }
2613
2619 void addLight(const OdDbStub* /*lightId*/) { }
2620
2632
2639 OdUInt32 drawFlags() const { return 0; }
2640
2647 OdUInt32 lockFlags() const { return 0; }
2648
2657 bool selectionGeom() const { return false; }
2658
2668
2677 bool sectionable() const { return false; }
2678
2686};
2687
2695template <class T> class OdGiDummyViewport : public T
2696{
2697public:
2705
2713
2721
2729
2736 virtual bool isPerspective() const { return false; }
2737
2749 virtual bool doPerspective(OdGePoint3d& p) const { return false; }
2750
2761 virtual bool doInversePerspective(OdGePoint3d& p) const { return false; }
2762
2773 virtual void getNumPixelsInUnitSquare(const OdGePoint3d& givenWorldpt, OdGePoint2d& pixelArea, bool includePerspective = true) const { }
2774
2782
2790
2798
2805 virtual OdGeVector3d viewDir() const { return getCameraTarget() - getCameraLocation(); }
2806
2813 virtual OdUInt32 viewportId() const { return 0xFFFFFFFF; }
2814
2821 virtual OdInt16 acadWindowId() const { return -1; }
2822
2830 virtual void getViewportDcCorners(OdGePoint2d& lower_left, OdGePoint2d& upper_right) const { lower_left.set(0,0); upper_right.set(100,100); }
2831
2841 virtual bool getFrontAndBackClipValues(bool& clip_front, bool& clip_back, double& /*front*/, double& /*back*/) const { clip_front = clip_back = false; return false; }
2842
2849 virtual double linetypeScaleMultiplier() const { return 1.0; }
2850
2857 virtual double linetypeGenerationCriteria() const { return 1.0; }
2858
2867 virtual bool layerVisible(OdDbStub* idLayer) const { return true; }
2868};
2869
2870#if defined _MSC_VER
2871#pragma warning(pop)
2872#endif
2873
2879template <class T> class OdGiWrapperViewport : public T
2880{
2881 const OdGiViewport* m_ref = NULL;
2882protected:
2883 void set(const OdGiViewport& ref) { m_ref = &ref; }
2884 const OdGiViewport &get() const { return *m_ref; }
2885public:
2886
2894
2902
2910
2918
2925 virtual bool isPerspective() const { return get().isPerspective(); }
2926
2939 virtual bool doPerspective(OdGePoint3d& p) const { return get().doPerspective(p); }
2940
2955 virtual bool doInversePerspective(OdGePoint3d& p) const { return get().doInversePerspective(p); }
2956
2970 virtual void getNumPixelsInUnitSquare(const OdGePoint3d& givenWorldpt,
2971 OdGePoint2d& pixelArea, bool includePerspective = true) const
2972 {
2973 get().getNumPixelsInUnitSquare(givenWorldpt, pixelArea, includePerspective);
2974 }
2975
2982 virtual OdGePoint3d getCameraLocation() const { return get().getCameraLocation(); }
2983
2990 virtual OdGePoint3d getCameraTarget() const { return get().getCameraTarget(); }
2991
2998 virtual OdGeVector3d getCameraUpVector() const { return get().getCameraUpVector(); }
2999
3006 virtual OdGeVector3d viewDir() const { return get().viewDir(); }
3007
3017 virtual OdUInt32 viewportId() const { return get().viewportId(); }
3018
3028 virtual OdInt16 acadWindowId() const { return get().acadWindowId(); }
3029
3044 virtual void getViewportDcCorners(OdGePoint2d& lower_left, OdGePoint2d& upper_right) const
3045 { get().getViewportDcCorners(lower_left, upper_right); }
3046
3067 virtual bool getFrontAndBackClipValues(bool& clip_front, bool& clip_back, double& front, double& back) const
3068 { return get().getFrontAndBackClipValues(clip_front, clip_back, front, back); }
3069
3076 virtual double linetypeScaleMultiplier() const { return get().linetypeScaleMultiplier(); }
3077
3088 virtual double linetypeGenerationCriteria() const { return get().linetypeGenerationCriteria(); }
3089
3098 virtual bool layerVisible(OdDbStub* idLayer) const { return get().layerVisible(idLayer); }
3099};
3100
3106template<class T1, class T2> class OdGiJoinCommonDraw : public T1, public T2
3107{
3108public:
3110
3117 virtual OdGiGeometry& rawGeometry() const { return T1::rawGeometry(); }
3118
3136 virtual OdGiRegenType regenType() const { return T1::regenType(); } // dont change from kOdGiStandardDisplay
3137
3144 virtual bool regenAbort() const { return T1::regenAbort(); }
3145
3155 virtual OdGiSubEntityTraits& subEntityTraits() const { return T1::subEntityTraits(); }
3156
3163 virtual bool isDragging() const { return T1::isDragging(); }
3164
3171 virtual OdGiContext* context() const { return T1::context(); }
3172
3184 virtual OdUInt32 numberOfIsolines() const { return T1::numberOfIsolines(); }
3185
3192 virtual const OdGiPathNode* currentGiPath() const { return T1::currentGiPath(); }
3193
3200 virtual bool displayModelerSilhouettes() const { return T1::displayModelerSilhouettes(); }
3201
3228 virtual double deviation(const OdGiDeviationType t, const OdGePoint3d& p) const { return T1::deviation(t, p); }
3229};
3230
3231#if defined _MSC_VER
3232#pragma warning(push)
3233#pragma warning(disable:4100) // unreferenced formal parameter
3234#endif
3235
3241template<class T> class OdGiDummyCommonDraw : public T
3242{
3243public:
3244
3251 virtual OdGiRegenType regenType() const { return kOdGiStandardDisplay; } // dont change from kOdGiStandardDisplay
3252
3259 virtual bool regenAbort() const { return false; }
3260
3267 virtual bool isDragging() const { return false; }
3268
3281 virtual OdUInt32 numberOfIsolines() const { return 4; }
3282
3296 virtual double deviation(const OdGiDeviationType t, const OdGePoint3d& p) const { return 0.; }
3297};
3298
3304template <class T, class TVp = OdGiViewport> class OdGiDummyViewportDraw : public OdGiDummyCommonDraw< T >
3305{
3306private:
3307 // This class was moved from multiple inheritance to member, since it is crash VS2010 IntelliSense
3308 mutable OdGiDummyViewport< OdStaticRxObject<TVp> > m_dummyViewport;
3309public:
3310
3317 virtual OdGiViewport& viewport() const { return m_dummyViewport; }
3318
3325 virtual OdUInt32 sequenceNumber() const { return 0; }
3326
3335 virtual bool isValidId(const OdUInt32 viewportId) const { return false; }
3336
3343 virtual OdDbStub* viewportObjectId() const { return 0; }
3344};
3345
3346#if defined _MSC_VER
3347#pragma warning(pop)
3348#endif
3349
3355template <class T> class OdGiDummyWorldDraw : public OdGiDummyCommonDraw< T >
3356{
3357public:
3358};
3359
3365template <class T> class OdGiDummyContext : public T
3366{
3367public:
3368
3375 virtual OdDbBaseDatabase* database() const { return 0;}
3376
3385 virtual OdGiDrawablePtr openDrawable(OdDbStub* /*pDrawable*/) { return OdGiDrawablePtr(); }
3386};
3387
3393class OdGiViewportDraw_Dummy : public OdGiDummySubEntityTraits< OdGiSubEntityTraits >
3394 , public OdGiDummyViewportDraw< OdGiViewportDraw >
3395 , public OdGiDummyViewportGeometry< OdGiViewportGeometry >
3396 , public OdGiDummyContext< OdGiContext >
3397{
3398 OdDbBaseDatabase *m_pDb;
3399public:
3401
3407 OdGiViewportDraw_Dummy(OdDbBaseDatabase *pDb = 0) : m_pDb(pDb) { }
3408
3415 virtual OdDbBaseDatabase* database() const { return m_pDb; }
3416
3423 virtual OdGiGeometry& rawGeometry() const { return *static_cast<OdGiGeometry*>(const_cast<OdGiViewportDraw_Dummy*>(this)); }
3424
3434 virtual OdGiSubEntityTraits& subEntityTraits() const { return *static_cast<OdGiSubEntityTraits*>(const_cast<OdGiViewportDraw_Dummy*>(this)); }
3435
3442 virtual OdGiViewportGeometry& geometry() const { return *static_cast<OdGiViewportGeometry*>(const_cast<OdGiViewportDraw_Dummy*>(this)); }
3443
3450 virtual OdGiContext* context() const { return static_cast<OdGiContext*>(const_cast<OdGiViewportDraw_Dummy*>(this)); }
3451
3455 void addRef() { }
3456
3461};
3462
3468class OdGiWorldDraw_Dummy : public OdGiDummySubEntityTraits< OdGiSubEntityTraits >
3469 , public OdGiDummyWorldDraw< OdGiWorldDraw >
3470 , public OdGiDummyWorldGeometry< OdGiWorldGeometry >
3471 , public OdGiDummyContext< OdGiContext >
3472{
3473 OdDbBaseDatabase *m_pDb;
3474public:
3476
3482 OdGiWorldDraw_Dummy(OdDbBaseDatabase *pDb = 0) : m_pDb(pDb) { }
3483
3490 virtual OdDbBaseDatabase* database() const { return m_pDb; }
3491
3498 virtual OdGiGeometry& rawGeometry() const { return *static_cast<OdGiGeometry*>(const_cast<OdGiWorldDraw_Dummy*>(this)); }
3499
3509 virtual OdGiSubEntityTraits& subEntityTraits() const { return *static_cast<OdGiSubEntityTraits*>(const_cast<OdGiWorldDraw_Dummy*>(this)); }
3510
3517 virtual OdGiWorldGeometry& geometry() const { return *static_cast<OdGiWorldGeometry*>(const_cast<OdGiWorldDraw_Dummy*>(this)); }
3518
3525 virtual OdGiContext* context() const { return static_cast<OdGiContext*>(const_cast<OdGiWorldDraw_Dummy*>(this)); }
3526
3530 void addRef() { }
3531
3536};
3537
3544
3545#include "TD_PackPop.h"
3546
3547#endif // #ifndef _ODGIDUMMYGEOM_INCLUDED_
OdRxObject OdDbBaseDatabase
OdGiFillType
Definition Gi.h:45
@ kOdGiFillNever
Definition Gi.h:47
OdSmartPtr< OdGiAuxiliaryData > OdGiAuxiliaryDataPtr
Definition GiAuxData.h:95
OdSmartPtr< OdGiDrawable > OdGiDrawablePtr
OdGiRegenType
@ kOdGiStandardDisplay
OdGiDeviationType
OdStaticRxObject< OdGiDummySubEntityTraits< OdGiSubEntityTraits > > OdGiSubEntityTraits_Stub
OdGiArcType
Definition GiGeometry.h:877
@ kOdGiArcSimple
Definition GiGeometry.h:878
OdArray< OdGeCurve2d *, OdMemoryAllocator< OdGeCurve2d * > > OdGiEdge2dArray
Definition GiGeometry.h:51
ptrdiff_t OdGsMarker
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
int OdInt32
#define ODRX_NOEXCEPT
wchar_t OdChar
#define GETBIT(flags, bit)
Definition OdaDefs.h:517
const OdCmTransparency const OdCmTransparency const OdCmColor const OdCmColor const OdCmColor const OdCmColor const OdCmTransparency & OdCmTransparency())
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
Definition GeMatrix3d.h:97
OdGePoint2d & set(double xx, double yy)
Definition GePoint2d.h:400
static GE_STATIC_EXPORT const OdGePoint3d kOrigin
Definition GePoint3d.h:106
static GE_STATIC_EXPORT const OdGeVector3d kZAxis
Definition GeVector3d.h:103
static GE_STATIC_EXPORT const OdGeVector3d kYAxis
Definition GeVector3d.h:102
virtual double deviation(const OdGiDeviationType t, const OdGePoint3d &p) const
virtual OdUInt32 numberOfIsolines() const
virtual OdGiRegenType regenType() const
virtual bool regenAbort() const
virtual bool isDragging() const
virtual OdGiDrawablePtr openDrawable(OdDbStub *)
virtual OdDbBaseDatabase * database() const
void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList)
void pushClipBoundary(OdGiClipBoundary *pBoundary)
void pushModelTransform(const OdGeVector3d &normal)
void polyline(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, OdGsMarker baseSubEntMarker=-1)
void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, const OdString &msg)
void worldLine(const OdGePoint3d points[2])
OdGeMatrix3d getWorldToModelTransform() const
void ellipArc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointsOverrides=0, OdGiArcType arcType=kOdGiArcSimple)
void draw(const OdGiDrawable *pDrawable)
void shape(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, int shapeNumber, const OdGiTextStyle *pTextStyle)
void rowOfDots(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle)
void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void circularArc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple)
void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal)
void pushModelTransform(const OdGeMatrix3d &xMat)
bool brep(const OdGiBrep &)
void nurbs(const OdGeNurbCurve3d &nurbsCurve)
void polypoint(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency, const OdGeVector3d *pNormals, const OdGsMarker *pSubEntMarkers, OdInt32 nPointSize)
void circle(const OdGePoint3d &center, double radius, const OdGeVector3d &normal)
void pointCloud(const OdGiPointCloud &pCloud)
OdGeMatrix3d getModelToWorldTransform() const
virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions, const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints, const OdCmEntityColor *pOutlineColors=NULL, const OdUInt32 *pOutlinePsLinetypes=NULL, const OdCmEntityColor *pFillColors=NULL, const OdCmTransparency *pFillTransparencies=NULL)
void circle(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint)
void setExtents(const OdGePoint3d *newExtents)
void pline(const OdGiPolyline &polylPine, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
virtual void edge(const OdGiEdge2dArray &edges)
void circularArc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple)
void image(const OdGiImageBGRA32 &img, const OdGePoint3d &origin, const OdGeVector3d &uVec, const OdGeVector3d &vVec, OdGiRasterImage::TransparencyMode trpMode=OdGiRasterImage::kTransparency8Bit)
void ray(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
void shell(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
bool fillPlane(OdGeVector3d &normal)
void setSelectionFlags(OdGiSubEntityTraits::SelectionFlags selectionFlags)
void setTrueColor(const OdCmEntityColor &color)
void setVisualStyle(const OdDbStub *visualStyleId)
void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub *pPlotStyleNameId=0)
void setShadowFlags(OdGiSubEntityTraits::ShadowFlags shadowFlags)
OdDbStub * plotStyleNameId() const
void setMapper(const OdGiMapper *pMapper)
OdDb::LineWeight lineWeight() const
void setLineType(OdDbStub *lineTypeId)
OdGiSubEntityTraits::SelectionFlags selectionFlags() const
void setSectionable(bool bSectionableFlag)
void setFillPlane(const OdGeVector3d *pNormal=0)
void setLineTypeScale(double lineTypeScale=1.0)
void setFillType(OdGiFillType fillType)
OdGiSubEntityTraits::ShadowFlags shadowFlags() const
void setThickness(double thickness)
const OdGiMapper * mapper() const
void setSelectionGeom(bool bSelectionFlag)
void setColor(OdUInt16 color)
OdGiFillType fillType() const
OdDbStub * lineType() const
OdCmTransparency transparency() const
void addLight(const OdDbStub *)
OdDbStub * material() const
void setLockFlags(OdUInt32 lockFlags)
OdCmEntityColor trueColor() const
OdDb::PlotStyleNameType plotStyleNameType() const
void setDrawFlags(OdUInt32 drawFlags)
void setMaterial(OdDbStub *materialId)
void setSelectionMarker(OdGsMarker selectionMarker)
void setLineWeight(OdDb::LineWeight lineWeight)
void setTransparency(const OdCmTransparency &transparency)
void setLayer(OdDbStub *layerId)
virtual OdGiViewport & viewport() const
virtual bool isValidId(const OdUInt32 viewportId) const
virtual OdDbStub * viewportObjectId() const
virtual OdUInt32 sequenceNumber() const
virtual void polylineDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void metafileDc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool bDcAligned=true, bool bAllowClipping=false)
virtual void rasterImageDc(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 polylineEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void polygonDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void polygonEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void ownerDrawDc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiSelfGdiDrawable *pDrawable, bool dcAligned=true, bool allowClipping=false)
virtual OdGePoint3d getCameraLocation() const
virtual bool doPerspective(OdGePoint3d &p) const
virtual OdGeVector3d getCameraUpVector() const
virtual OdGePoint3d getCameraTarget() const
virtual OdGeMatrix3d getEyeToModelTransform() const
virtual bool getFrontAndBackClipValues(bool &clip_front, bool &clip_back, double &, double &) const
virtual double linetypeGenerationCriteria() const
virtual bool doInversePerspective(OdGePoint3d &p) const
virtual OdGeMatrix3d getWorldToEyeTransform() const
virtual void getViewportDcCorners(OdGePoint2d &lower_left, OdGePoint2d &upper_right) const
virtual void getNumPixelsInUnitSquare(const OdGePoint3d &givenWorldpt, OdGePoint2d &pixelArea, bool includePerspective=true) const
virtual OdGeMatrix3d getModelToEyeTransform() const
virtual bool isPerspective() const
virtual OdGeVector3d viewDir() const
virtual double linetypeScaleMultiplier() const
virtual bool layerVisible(OdDbStub *idLayer) const
virtual OdInt16 acadWindowId() const
virtual OdGeMatrix3d getEyeToWorldTransform() const
virtual OdUInt32 viewportId() const
virtual void startAttributesSegment()
virtual void setExtents(const OdGePoint3d *newExtents)
virtual OdUInt32 numberOfIsolines() const
virtual OdGiRegenType regenType() const
virtual bool regenAbort() const
virtual bool displayModelerSilhouettes() const
virtual OdGiContext * context() const
virtual bool isDragging() const
virtual const OdGiPathNode * currentGiPath() const
virtual OdGiGeometry & rawGeometry() const
virtual OdGiSubEntityTraits & subEntityTraits() const
virtual double deviation(const OdGiDeviationType t, const OdGePoint3d &p) const
virtual void setAuxData(const OdGiAuxiliaryDataPtr &pAuxData)
virtual void setLayer(OdDbStub *layerId)=0
virtual OdDbStub * material() const =0
virtual OdDb::PlotStyleNameType plotStyleNameType() const =0
virtual void setFill(const OdGiFill *pFill)
virtual void setLineType(OdDbStub *lineTypeId)=0
virtual const OdGiFill * fill() const
virtual OdGiFillType fillType() const =0
virtual void setSectionable(bool bSectionableFlag)
virtual void setLockFlags(OdUInt32 lockFlags)
virtual void setLineTypeScale(double lineTypeScale=1.0)=0
virtual bool sectionable() const
virtual void setShadowFlags(ShadowFlags shadowFlags)
virtual OdGiAuxiliaryDataPtr auxData() const
virtual void setMapper(const OdGiMapper *pMapper)=0
virtual const OdGiDgLinetypeModifiers * lineStyleModifiers() const
virtual SelectionFlags selectionFlags() const
virtual void setLineWeight(OdDb::LineWeight lineWeight)=0
virtual void setVisualStyle(const OdDbStub *visualStyleId)
virtual void setSelectionFlags(SelectionFlags selectionFlags)
virtual void setLineStyleModifiers(const OdGiDgLinetypeModifiers *pLSMod)
virtual double lineTypeScale() const =0
virtual void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub *plotStyleNameId=0)=0
virtual OdUInt32 drawFlags() const
virtual OdCmTransparency transparency() const
virtual void setTrueColor(const OdCmEntityColor &color)=0
virtual const OdGiMapper * mapper() const =0
virtual OdCmEntityColor trueColor() const =0
virtual ShadowFlags shadowFlags() const
virtual OdDbStub * plotStyleNameId() const =0
virtual void setDrawFlags(OdUInt32 drawFlags)
@ kShadowsCastAndReceive
Definition Gi.h:168
virtual void setSelectionGeom(bool bSelectionFlag)
virtual OdDbStub * visualStyle() const
virtual void setThickness(double thickness)=0
virtual OdDbStub * layer() const =0
virtual OdDbStub * lineType() const =0
virtual OdCmEntityColor secondaryTrueColor() const
virtual void setSecondaryTrueColor(const OdCmEntityColor &color)
virtual void setFillType(OdGiFillType fillType)=0
virtual OdUInt32 lockFlags() const
virtual void setMaterial(OdDbStub *materialId)=0
virtual bool selectionGeom() const
virtual OdDb::LineWeight lineWeight() const =0
virtual double thickness() const =0
virtual void setTransparency(const OdCmTransparency &transparency)
static void copyTraits(OdGiSubEntityTraits &pFrom, OdGiSubEntityTraits &pTo, OdUInt32 nFlags=kAllChanged)
OdGiSubEntityTraitsToData(OdGiSubEntityTraitsData &pData)
OdCmEntityColor secondaryTrueColor() const
OdDb::LineWeight lineWeight() const
void setDrawFlags(OdUInt32 drawFlags)
void setSectionable(bool bSectionableFlag)
void setFill(const OdGiFill *pFill)
void setTransparency(const OdCmTransparency &transparency)
void setAuxData(const OdGiAuxiliaryDataPtr &pAuxData)
void setMapper(const OdGiMapper *n)
OdGiSubEntityTraits::SelectionFlags selectionFlags() const
void setShadowFlags(OdGiSubEntityTraits::ShadowFlags shadowFlags)
void setSelectionFlags(OdGiSubEntityTraits::SelectionFlags selectionFlags)
void setSecondaryTrueColor(const OdCmEntityColor &n)
OdCmEntityColor trueColor() const
void setLineWeight(OdDb::LineWeight n)
const OdGiMapper * mapper() const
const OdGiDgLinetypeModifiers * lineStyleModifiers() const
void setLineStyleModifiers(const OdGiDgLinetypeModifiers *pLSMod)
void setSelectionGeom(bool bSelectionFlag)
void setPlotStyleName(OdDb::PlotStyleNameType n, OdDbStub *m=0)
OdGiAuxiliaryDataPtr auxData() const
void setLockFlags(OdUInt32 lockFlags)
OdGiSubEntityTraits::ShadowFlags shadowFlags() const
void setVisualStyle(const OdDbStub *n)
OdCmTransparency transparency() const
void setFillPlane(const OdGeVector3d *=0)
void setTrueColor(const OdCmEntityColor &n)
OdDb::PlotStyleNameType plotStyleNameType() const
const OdGiFill * fill() const
OdGiSubEntityTraits & getTraits()
void setSelectionMarker(OdGsMarker n)
void release() ODRX_NOEXCEPT
bool fillPlane(OdGeVector3d &n)
void setTraits(OdGiSubEntityTraits &pTraits)
void setFillPlane(const OdGeVector3d *n=0)
void release() ODRX_NOEXCEPT
virtual OdGiGeometry & rawGeometry() const
virtual OdDbBaseDatabase * database() const
virtual OdGiContext * context() const
virtual OdGiViewportGeometry & geometry() const
OdGiViewportDraw_Dummy(OdDbBaseDatabase *pDb=0)
ODRX_USING_HEAP_OPERATORS(OdGiDummySubEntityTraits< OdGiSubEntityTraits >)
virtual OdGiSubEntityTraits & subEntityTraits() const
void release() ODRX_NOEXCEPT
virtual OdGiGeometry & rawGeometry() const
OdGiViewportDraw_Stub(OdGiViewportDraw &pVD, OdGiViewportGeometry &pVG, OdGiSubEntityTraits &pST)
virtual OdGiSubEntityTraits & subEntityTraits() const
virtual OdGiViewportGeometry & geometry() const
ODRX_USING_HEAP_OPERATORS(OdGiWrapperViewportDraw< OdGiViewportDraw >)
virtual OdGeMatrix3d getEyeToModelTransform() const =0
virtual bool isPerspective() const =0
virtual void getViewportDcCorners(OdGePoint2d &lowerLeft, OdGePoint2d &upperRight) const =0
virtual bool doPerspective(OdGePoint3d &point) const =0
virtual OdUInt32 viewportId() const =0
virtual OdGePoint3d getCameraTarget() const =0
virtual OdGeMatrix3d getModelToEyeTransform() const =0
virtual double linetypeScaleMultiplier() const =0
virtual double linetypeGenerationCriteria() const =0
virtual bool getFrontAndBackClipValues(bool &clipFront, bool &clipBack, double &front, double &back) const =0
virtual OdInt16 acadWindowId() const =0
virtual OdGePoint3d getCameraLocation() const =0
virtual OdGeVector3d viewDir() const =0
virtual bool layerVisible(OdDbStub *layerId) const =0
virtual OdGeMatrix3d getWorldToEyeTransform() const =0
virtual OdGeMatrix3d getEyeToWorldTransform() const =0
virtual OdGeVector3d getCameraUpVector() const =0
virtual void getNumPixelsInUnitSquare(const OdGePoint3d &point, OdGePoint2d &pixelDensity, bool bUsePerspective=true) const =0
virtual bool doInversePerspective(OdGePoint3d &point) const =0
virtual OdGiGeometry & rawGeometry() const
virtual OdDbBaseDatabase * database() const
virtual OdGiContext * context() const
virtual OdGiWorldGeometry & geometry() const
void release() ODRX_NOEXCEPT
virtual OdGiSubEntityTraits & subEntityTraits() const
OdGiWorldDraw_Dummy(OdDbBaseDatabase *pDb=0)
ODRX_USING_HEAP_OPERATORS(OdGiDummySubEntityTraits< OdGiSubEntityTraits >)
void release() ODRX_NOEXCEPT
virtual OdGiWorldGeometry & geometry() const
virtual OdGiSubEntityTraits & subEntityTraits() const
OdGiWorldDraw_Stub(OdGiWorldDraw &pVD, OdGiWorldGeometry &pVG, OdGiSubEntityTraits &pST)
virtual OdGiGeometry & rawGeometry() const
ODRX_USING_HEAP_OPERATORS(OdGiWrapperWorldDraw< OdGiWorldDraw >)
virtual bool isDragging() const
virtual OdGiContext * context() const
virtual OdGiGeometry & rawGeometry() const
virtual OdGiRegenType regenType() const
virtual const OdGiPathNode * currentGiPath() const
virtual OdUInt32 numberOfIsolines() const
virtual double deviation(const OdGiDeviationType t, const OdGePoint3d &p) const
OdGiCommonDraw * getDraw() const
virtual OdGiSubEntityTraits & subEntityTraits() const
virtual bool regenAbort() const
void setDraw(OdGiCommonDraw &pD)
virtual bool displayModelerSilhouettes() const
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, const OdString &msg)
virtual OdGeMatrix3d getWorldToModelTransform() const
virtual void circularArc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple)
virtual void image(const OdGiImageBGRA32 &img, const OdGePoint3d &origin, const OdGeVector3d &uVec, const OdGeVector3d &vVec, OdGiRasterImage::TransparencyMode trpMode=OdGiRasterImage::kTransparency8Bit)
virtual void popClipBoundary()
void ray(const OdGePoint3d &first, const OdGePoint3d &second)
virtual void popModelTransform()
virtual void circle(const OdGePoint3d &center, double radius, const OdGeVector3d &normal)
virtual void worldLine(const OdGePoint3d pnts[2])
virtual void polygon(OdInt32 nbPoints, const OdGePoint3d *pVertexList)
virtual void nurbs(const OdGeNurbCurve3d &nurbs)
virtual void mesh(OdInt32 rows, OdInt32 columns, const OdGePoint3d *pVertexList, const OdGiEdgeData *pEdgeData=NULL, const OdGiFaceData *pFaceData=NULL, const OdGiVertexData *pVertexData=NULL)
virtual void pushClipBoundary(OdGiClipBoundary *pBoundary)
OdGiGeometry & getGeom()
virtual void ellipArc(const OdGeEllipArc3d &arc, const OdGePoint3d *pEndPointsOverrides=0, OdGiArcType arcType=kOdGiArcSimple)
virtual void polygon(OdInt32 nbPoints, const OdGePoint3d *pVertexList, const OdGeVector3d *pNormal)
virtual void rowOfDots(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
virtual void shell(OdInt32 nbVertex, const OdGePoint3d *pVertexList, OdInt32 faceListSize, const OdInt32 *pFaceList, const OdGiEdgeData *pEdgeData=NULL, const OdGiFaceData *pFaceData=NULL, const OdGiVertexData *pVertexData=NULL)
virtual OdGeMatrix3d getModelToWorldTransform() const
virtual void circularArc(const OdGePoint3d &start, const OdGePoint3d &point, const OdGePoint3d &end, OdGiArcType arcType=kOdGiArcSimple)
virtual void pushModelTransform(const OdGeVector3d &vNormal)
virtual void circle(const OdGePoint3d &p1, const OdGePoint3d &p2, const OdGePoint3d &p3)
virtual void pushModelTransform(const OdGeMatrix3d &xMat)
virtual void pline(const OdGiPolyline &p, OdUInt32 i, OdUInt32 n)
virtual void edge(const OdGiEdge2dArray &edges)
virtual void polypoint(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency, const OdGeVector3d *pNormals, const OdGsMarker *pSubEntMarkers, OdInt32 nPointSize)
virtual void xline(const OdGePoint3d &p1, const OdGePoint3d &p2)
virtual void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle)
virtual void pointCloud(const OdGiPointCloud &pCloud)
void setGeom(OdGiGeometry &Geom)
virtual bool brep(const OdGiBrep &giBrep)
virtual void draw(const OdGiDrawable *pD)
virtual void polyline(OdInt32 nbPoints, const OdGePoint3d *pVertexList, const OdGeVector3d *pNormal=NULL, OdGsMarker lBaseSubEntMarker=-1)
virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions, const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints, const OdCmEntityColor *pOutlineColors=NULL, const OdUInt32 *pOutlinePsLinetypes=NULL, const OdCmEntityColor *pFillColors=NULL, const OdCmTransparency *pFillTransparencies=NULL)
virtual OdUInt32 sequenceNumber() const
virtual bool isValidId(const OdUInt32 viewportId) const
virtual OdDbStub * viewportObjectId() const
virtual OdGiViewportGeometry & geometry() const
virtual OdGiViewport & viewport() const
virtual void polygonDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void polylineEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void polygonEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void metafileDc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool dcAligned=true, bool allowClipping=false)
virtual void polylineDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void rasterImageDc(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 ownerDrawDc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiSelfGdiDrawable *pDrawable, bool dcAligned=true, bool allowClipping=false)
virtual bool getFrontAndBackClipValues(bool &clip_front, bool &clip_back, double &front, double &back) const
virtual OdGePoint3d getCameraLocation() const
virtual OdGeMatrix3d getEyeToWorldTransform() const
virtual bool isPerspective() const
virtual OdInt16 acadWindowId() const
virtual OdGeVector3d viewDir() const
virtual OdGePoint3d getCameraTarget() const
virtual OdGeMatrix3d getWorldToEyeTransform() const
virtual OdUInt32 viewportId() const
virtual void getViewportDcCorners(OdGePoint2d &lower_left, OdGePoint2d &upper_right) const
virtual void getNumPixelsInUnitSquare(const OdGePoint3d &givenWorldpt, OdGePoint2d &pixelArea, bool includePerspective=true) const
virtual OdGeVector3d getCameraUpVector() const
virtual OdGeMatrix3d getEyeToModelTransform() const
void set(const OdGiViewport &ref)
const OdGiViewport & get() const
virtual bool doInversePerspective(OdGePoint3d &p) const
virtual OdGeMatrix3d getModelToEyeTransform() const
virtual double linetypeScaleMultiplier() const
virtual bool layerVisible(OdDbStub *idLayer) const
virtual bool doPerspective(OdGePoint3d &p) const
virtual double linetypeGenerationCriteria() const
virtual OdGiWorldGeometry & geometry() const
virtual void startAttributesSegment()
virtual void setExtents(const OdGePoint3d *newExtents)
GLenum GLint ref
Definition gles2_ext.h:262
GLint GLenum GLsizei width
Definition gles2_ext.h:110
const GLfloat * v
Definition gles2_ext.h:315
GLuint GLsizei GLsizei * length
Definition gles2_ext.h:274
GLint GLenum GLsizei GLsizei height
Definition gles2_ext.h:110
PlotStyleNameType
Definition OdaDefs.h:417
@ kPlotStyleNameByBlock
Definition OdaDefs.h:419
LineWeight
Definition OdaDefs.h:386
@ kLnWt000
Definition OdaDefs.h:387