CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GiBaseVectorizer.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// GiBaseVectorizer.h: interface for the OdGiBaseVectorizer class.
25//
27
28#ifndef _ODGIBASEVECTORIZER_INCLUDED_
29#define _ODGIBASEVECTORIZER_INCLUDED_
30
31#include "Gi/GiDrawImpl.h"
32#include "Gs/Gs.h"
33#include "Ge/GeExtents3d.h"
34#include "Gi/GiViewport.h"
35#include "Gi/GiXform.h"
39#include "Gi/GiDeviation.h"
40#include "Ge/GePlane.h"
41#include "Gi/GiDgLinetype.h"
42#include "Gi/GiOrthoClipper.h"
43#include "Gi/GiExtAccum.h"
45#include "Gi/GiTextStyle.h"
48#include "Gi/GiTraitsCache.h"
49#include "Gi/GiDummyGeometry.h"
50
51class OdGiVisualStyle;
52
54
55class OdDbStub;
56
58
59#include "TD_PackPush.h"
60
61// Enable traits optimization
62#define ENABLE_GITRAITSOPTIMIZATION
63
64//FELIX_CHANGE_BEGIN
65//TODO: review XENON highlight geometry support
66#ifdef XENON
67#undef ENABLE_GITRAITSOPTIMIZATION
68#endif
69//FELIX_CHANGE_END
70
80 , public OdGiSubEntityTraits
81{
82protected:
84
87
89public:
95 virtual void setContext(OdGiContext* pUserContext);
96
104
114
124
133 OdDbStub* layer() const;
134
143 OdDbStub* lineType() const;
144
165
175
184 double lineTypeScale() const;
185
192 double thickness() const;
193
209
216 OdDbStub* plotStyleNameId() const;
217
226 OdDbStub* material() const;
227
236 const OdGiMapper* mapper() const;
237
246 OdDbStub* visualStyle() const;
247
259
267
275
284 bool selectionGeom() const;
285
295
304 bool sectionable() const;
305
313
320
328
335 const OdGiFill* fill() const;
336
344
345
351 void setTrueColor(const OdCmEntityColor& color);
352
372 void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub* pPlotStyleNameId = 0);
373
398 void setColor(OdUInt16 color);
399
406 void setLayer(OdDbStub* layerId);
407
414 void setLineType(OdDbStub* lineTypeId);
415
437 void setFillType(OdGiFillType fillType);
438
447
454 void setLineTypeScale(double lineTypeScale);
455
460 void setThickness(double thickness);
461
466 void setSelectionMarker(OdGsMarker selectionMarker);
467
474 void setMaterial(OdDbStub* pMaterialId);
475
482 void setMapper(const OdGiMapper *pMapper);
483
490 void setVisualStyle(const OdDbStub* visualStyleId);
491
501 void setTransparency(const OdCmTransparency &transparency);
502
508 void setDrawFlags(OdUInt32 drawFlags);
509
515 void setLockFlags(OdUInt32 lockFlags);
516
524 void setSelectionGeom(bool bSelectionFlag);
525
533 void setShadowFlags(ShadowFlags shadowFlags);
534
542 void setSectionable(bool bSectionableFlag);
543
549 void setSelectionFlags(SelectionFlags selectionFlags);
550
557
564
570 void setFill(const OdGiFill* pFill);
571
577 void setAuxData(const OdGiAuxiliaryDataPtr& pAuxData);
578
580 // OdGiCommonDraw Overrides
581
589
599
609
622};
623
635 , public OdGiViewportDraw_
636 , public OdGiConveyorContext
637 , public OdGiDeviation
639{
640protected:
642
644
646
647 mutable OdDbStub* m_layerId;
651 LayerTraitsCache() : m_effectiveLayerId(NULL) {} };
652 typedef std::map<OdDbStub*, LayerTraitsCache> LayerTraitsCacheMap;
654
656 mutable OdDbStub* m_materialId;
657 mutable OdDbStub* m_byLayerMaterialId;
658 mutable OdDbStub* m_byBlockMaterialId;
661 mutable OdDbStub* m_effectiveMaterialId;
662 void actualizeMaterialAttributes(OdDbStub* materialId) const;
663
664 virtual OdDbStub* switchLayer(OdDbStub* layerId) const;
666 mutable OdDbStub* m_effectiveLayerId;
667
670
673
676
679
680 virtual bool layerVisible(OdDbStub* layerId) const;
685 void updateLayerTraits(OdGiSubEntityTraitsData& subEntityTraits) const;
686
687public:
696 bool isEntityTraitsDataChanged(int bit = kSomeChanged) const { return GETBIT(m_entityTraitsDataChanged, bit); }
697
701 virtual void setEntityTraitsDataChanged() { m_entityTraitsDataChanged = kAllChanged; }
708 virtual void setEntityTraitsDataChanged(int bit, bool value = true) { SETBIT(m_entityTraitsDataChanged, bit, value); }
709
713 void clearEntityTraitsDataChanged() const { m_entityTraitsDataChanged = 0; }
714
725 {
726 const OdGiSubEntityTraitsData& traits = effectiveTraits();
727 return (
728 (GETBIT(m_flags, kDrawLayerOff ) || !traits.isLayerOff()) &&
729 (GETBIT(m_flags, kDrawLayerFrozen) || !traits.isLayerFrozen())
730 );
731 }
732
733public:
735 // OdGiConveyorContext Overrides
736
744
752
760
767 const OdGiViewport* giViewport() const;
768
777 const OdGsView* gsView() const;
778
780
781private:
782 // Data Members
783
784 OdGiTextStyle m_textStyle;
785 OdGePlane m_primitivePlane;
786 OdGeVector3d m_extrusion;
787 OdGiXformPtr m_pDcInputToOutput[4]; // WCS->ECS, ECS->Output, NDC->ECS, DCS->NDC
788 OdGiConveyorEntryPoint m_dcEntryPoint[4]; // WCS, ECS, NDC, DCS
789 bool m_dcTransformUpdate[4]; // ECS->Output is always actual
791#ifdef ENABLE_GITRAITSOPTIMIZATION
792 bool m_bResetEntityTraitsData; //reset them before setAttributes()
793#endif
794protected:
798
813 const OdGeVector3d* extrusion(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint);
814 const OdGeVector3d* extrusion(const OdGeVector3d& normal);
815 const OdGeVector3d* extrusion(const OdGeVector3d* pNormal)
816 {
817 if(pNormal)
818 return extrusion(*pNormal);
819 return 0;
820 }
821 const OdGeVector3d* extrusion(const OdGePoint3d& origin, const OdGeVector3d& u, const OdGeVector3d& v);
822
825
828
829public:
834
841 const OdGiDrawableDesc *drawableDesc() const { return m_pDrawableDesc; }
842protected:
843
844 enum Flags
845 {
846 kFirstFlag = 1,
847
848 kSuppressViewportDraw = kFirstFlag << 0,
849 kDrawInvisibleEnts = kFirstFlag << 1,
850 kDrawLayerOff = kFirstFlag << 2,
851 kDrawLayerFrozen = kFirstFlag << 3,
852 kIgnoreFillPlane = kFirstFlag << 4,
853 kSelectionMode = kFirstFlag << 5,
854 kAttributesSegment = kFirstFlag << 6,
855 kXrefOverride = kFirstFlag << 7,
856
857 kLastFlag = kXrefOverride
858 };
861
863
874 virtual void affectTraits(const OdGiSubEntityTraitsData* pSource, OdGiSubEntityTraitsData& destination) const;
875
879 virtual double linetypeGenerationCriteria() const;
880
881#ifdef ENABLE_GITRAITSOPTIMIZATION
882 inline void resetEntityTraitsDataKeepAuxData();
883 inline void resetEntityTraitsData();
884 inline void updateTraitsDataByBlockTraits(const OdGiSubEntityTraitsData* pBlockTraits);
885#endif
886public:
888 // OdGiConveyorContext Override
889
897
904 virtual void setEffectiveTraits(const OdGiSubEntityTraitsData& traits,
905 const OdGeVector3d* fillNormal = NULL);
906
908protected:
909
918 static OdRxClass* desc() { return ::OdRxObject::desc(); }
919
929 virtual void selectionMarkerOnChange(OdGsMarker nSelectionMarker);
930
931 virtual bool updateExtentsOnly() const { return false; }
932
933public:
934
961
966
980 OdRxClass* isA() const;
981
993 OdRxObject* queryX(const OdRxClass* pProtocolClass) const;
994
1002
1008
1016
1022
1033
1043 const OdGiConveyorContext* drawContext() const { return this; }
1044
1049
1053 virtual void endViewVectorization();
1054
1056 // OdGiSubEntityTraits Overrides
1057
1065 void setTrueColor(const OdCmEntityColor& trueColor);
1086 void setPlotStyleNameId(OdDbStub* plotStyleNameId);
1087
1112 void setColor(OdUInt16 color);
1113
1120 void setLayer(OdDbStub* layerId);
1121
1128 void setLineType(OdDbStub* lineTypeId);
1129
1152
1161
1168 void setLineTypeScale(double lineTypeScale);
1169
1174 void setThickness(double thickness);
1175
1195 void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub* pPlotStyleNameId= 0);
1196
1201 void setSelectionMarker(OdGsMarker selectionMarker);
1202
1209 void setMaterial(OdDbStub* pMaterialId);
1210
1217 void setMapper(const OdGiMapper *pMapper);
1218
1225 void setVisualStyle(const OdDbStub* pVisualStyleId);
1226
1236 void setTransparency(const OdCmTransparency& transparency);
1237
1243 void setDrawFlags(OdUInt32 drawFlags);
1244
1250 void setLockFlags(OdUInt32 lockFlags);
1251
1259 void setSelectionGeom(bool bSelectionFlag);
1260
1268 void setShadowFlags(ShadowFlags shadowFlags);
1269
1277 void setSectionable(bool bSectionableFlag);
1278
1284 void setSelectionFlags(SelectionFlags selectionFlags);
1285
1292
1299
1305 void setFill(const OdGiFill* pFill);
1306
1312 void setAuxData(const OdGiAuxiliaryDataPtr& pAuxData);
1313
1315
1317 // OdGiCommonDraw Overrides
1318
1319
1327
1334 bool regenAbort() const;
1335
1343
1370 double deviation(const OdGiDeviationType deviationType, const OdGePoint3d& pointOnCurve) const;
1371
1390
1403
1413
1420 bool isDragging() const;
1421
1423
1431
1438 void setDrawContextFlags(OdUInt32 flags, bool bFlag);
1439
1441 // OdGiViewportDraw Override
1442 //
1443
1451
1460 bool isValidId(const OdUInt32 viewportId) const;
1461
1468 OdDbStub* viewportObjectId() const;
1469
1477
1479
1480
1482 // OdGiGeometry Overrides
1483
1493 void circle(const OdGePoint3d& center, double radius, const OdGeVector3d& normal);
1494
1504 void circle(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint, const OdGePoint3d& thirdPoint);
1505
1528 void circularArc(const OdGePoint3d& center,
1529 double radius,
1530 const OdGeVector3d& normal,
1531 const OdGeVector3d& startVector,
1532 double sweepAngle,
1533 OdGiArcType arcType = kOdGiArcSimple);
1534
1555 void circularArc(const OdGePoint3d& firstPoint,
1556 const OdGePoint3d& secondPoint,
1557 const OdGePoint3d& thirdPoint,
1558 OdGiArcType arcType = kOdGiArcSimple);
1559
1570 void polyline(OdInt32 numVertices,
1571 const OdGePoint3d* vertexList,
1572 const OdGeVector3d* pNormal = 0,
1573 OdGsMarker baseSubEntMarker = -1);
1574
1583 void polygon(OdInt32 numVertices, const OdGePoint3d* vertexList);
1584
1594 void polygon(OdInt32 numVertices, const OdGePoint3d* vertexList, const OdGeVector3d* pNormal);
1595
1605 void pline(const OdGiPolyline& polyline, OdUInt32 fromIndex = 0, OdUInt32 numSegs = 0);
1606
1616 void shape(const OdGePoint3d& position,
1617 const OdGeVector3d& normal, const OdGeVector3d& direction,
1618 int shapeNumber, const OdGiTextStyle* pTextStyle);
1619
1633 void text(const OdGePoint3d& position,
1634 const OdGeVector3d& normal, const OdGeVector3d& direction,
1635 double height, double width, double oblique, const OdString& msg);
1636
1650 void text(const OdGePoint3d& position,
1651 const OdGeVector3d& normal, const OdGeVector3d& direction,
1652 const OdChar* msg, OdInt32 length, bool raw, const OdGiTextStyle* pTextStyle);
1653
1662 void xline(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
1663
1672 void ray(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint );
1673
1681 void nurbs(const OdGeNurbCurve3d& nurbsCurve);
1682
1702 void ellipArc(const OdGeEllipArc3d& ellipArc,
1703 const OdGePoint3d* endPointsOverrides = 0,
1704 OdGiArcType arcType = kOdGiArcSimple);
1705
1718 void mesh(OdInt32 numRows,
1719 OdInt32 numColumns,
1720 const OdGePoint3d* vertexList,
1721 const OdGiEdgeData* pEdgeData = 0,
1722 const OdGiFaceData* pFaceData = 0,
1723 const OdGiVertexData* pVertexData = 0);
1724
1738 void shell(OdInt32 numVertices,
1739 const OdGePoint3d* vertexList,
1740 OdInt32 faceListSize,
1741 const OdInt32* faceList,
1742 const OdGiEdgeData* pEdgeData = 0,
1743 const OdGiFaceData* pFaceData = 0,
1744 const OdGiVertexData* pVertexData = 0);
1745
1753 void worldLine(const OdGePoint3d points[2]);
1754
1766 void image(const OdGiImageBGRA32& img,
1767 const OdGePoint3d& origin,
1768 const OdGeVector3d& uVec,
1769 const OdGeVector3d& vVec,
1771
1777 void edge(const OdGiEdge2dArray& edges);
1778
1790 void polypoint(OdInt32 numPoints, const OdGePoint3d* vertexList, const OdCmEntityColor* pColors, const OdCmTransparency* pTransparency,
1791 const OdGeVector3d* pNormals, const OdGsMarker* pSubEntMarkers, OdInt32 nPointSize);
1792
1806 virtual void polyPolygon(OdUInt32 numIndices, const OdUInt32 *pNumPositions, const OdGePoint3d *pPositions,
1807 const OdUInt32 *pNumPoints, const OdGePoint3d *pPoints,
1808 const OdCmEntityColor *pOutlineColors = NULL, const OdUInt32 *pOutlinePsLinetypes = NULL,
1809 const OdCmEntityColor *pFillColors = NULL, const OdCmTransparency *pFillTransparencies = NULL);
1810
1818 void rowOfDots(OdInt32 numPoints, const OdGePoint3d& startPoint, const OdGeVector3d& dirToNextPoint);
1819
1825 void pointCloud(const OdGiPointCloud &pCloud);
1826
1836
1847
1857
1865
1866
1867 bool isClipping() const;
1868
1876
1884
1889
1897
1906
1907 bool isXrefOverride() const { return GETBIT(m_flags, kXrefOverride); }
1908 void setXrefOverride(bool bSet) { SETBIT(m_flags, kXrefOverride, bSet); }
1909
1915 void draw(const OdGiDrawable* pDrawable);
1916
1924
1926
1933 virtual OdUInt32 setAttributes(const OdGiDrawable* pDrawable);
1934
1938 OdUInt32 drawableAttributes() const { return m_nDrawableAttributes; }
1939
1947 bool needDraw(OdUInt32 drawableFlags);
1948
1960 virtual bool doDraw(OdUInt32 drawableFlags, const OdGiDrawable* pDrawable);
1961
1963 // OdGiWorldGeometry Override
1964
1970 void setExtents(const OdGePoint3d *newExtents);
1971
1976
1984
1986
1988 // OdGiViewportGeometry
1989
2007 const OdGePoint3d& origin,
2008 const OdGeVector3d& u,
2009 const OdGeVector3d& v,
2010 const OdGiRasterImage* pImage,
2011 const OdGePoint2d* uvBoundary,
2012 OdUInt32 numBoundPts,
2013 bool transparency = false,
2014 double brightness = 50.0,
2015 double contrast = 50.0,
2016 double fade = 0.0);
2017
2029 const OdGePoint3d& origin,
2030 const OdGeVector3d& u,
2031 const OdGeVector3d& v,
2032 const OdGiMetafile* pMetafile,
2033 bool bDcAligned = true,
2034 bool bAllowClipping = false);
2035
2042 void polylineEye(OdUInt32 numVertices, const OdGePoint3d* vertexList);
2043
2050 void polygonEye(OdUInt32 numVertices, const OdGePoint3d* vertexList);
2051
2058 void polylineDc(OdUInt32 numVertices, const OdGePoint3d* vertexList);
2059
2066 void polygonDc(OdUInt32 numVertices, const OdGePoint3d* vertexList);
2067
2075 void polylineCs(OdGiContext::CoordinatesSystem cs, OdUInt32 numVertices, const OdGePoint3d* vertexList);
2076
2084 void polygonCs(OdGiContext::CoordinatesSystem cs, OdUInt32 numVertices, const OdGePoint3d* vertexList);
2085
2087 // OdGiConveyorContext Overrides
2088
2092 virtual void onTraitsModified();
2093
2095
2117
2118 // materials
2119
2129
2138
2146 void setEffectiveMaterialTraitsData(OdDbStub *materialId, const OdGiMaterialTraitsData &data, bool bForce = false);
2147
2155
2156 const OdGiSubEntityTraitsData *byBlockTraits() const { return m_pByBlock; }
2157 void setByBlockTraits(const OdGiSubEntityTraitsData *pByBlock) { m_pByBlock = pByBlock; }
2159};
2160
2167{
2168protected:
2171
2172public:
2173
2178
2182 virtual ~OdGiExtCalc();
2183
2191
2198 bool regenAbort() const;
2199
2206 void draw(const OdGiDrawable* pDrawable);
2207
2214 void setExtents(const OdGePoint3d *newExtents);
2219
2224 void getExtents(OdGeExtents3d& extents) const;
2225
2230 void setContext(OdGiContext* pUserContext);
2231
2232 // optimization
2233
2241
2248 void affectTraits(const OdGiSubEntityTraitsData* pSource, OdGiSubEntityTraitsData& destination) const;
2249
2250 bool isSetExtentsCalled() const { return false; } //FELIX_CHANGE //TODO: remove this and check OdGiFastExtCalc also!
2251};
2252
2253#ifdef ENABLE_GITRAITSOPTIMIZATION
2254
2259{
2261 OdUInt32 uLockFlags = m_entityTraitsData.lockFlags();
2262
2263 m_bResetEntityTraitsData = false;
2265
2268
2270}
2271
2276{
2279 else
2280 {
2281 m_bResetEntityTraitsData = false;
2283
2284 if (m_pByBlock)
2286
2288 }
2289}
2290
2295{
2296 m_entityTraitsData.setAuxData(pBlockTraits->auxData());
2298}
2299#endif
2300
2315 const OdGeVector3d& normal,
2316 const OdGeVector3d& direction,
2317 double height,
2318 double width,
2319 double oblique,
2320 bool bMirrorX = false,
2321 bool bMirrorY = false);
2322
2340
2343
2344#include "TD_PackPop.h"
2345
2346#endif // #ifndef _ODGIBASEVECTORIZER_INCLUDED_
OdGiFillType
Definition: Gi.h:42
ODGI_EXPORT void odgiSetTextExtentsCacheCapacity(size_t size)
ODGI_EXPORT const OdGiTextStyle * odgiPrepareTextStyle(const OdGiTextStyle *pStyle, OdGiTextStyle &res)
ODGI_EXPORT void odgiCalculateTextBasis(OdGeVector3d &u, OdGeVector3d &v, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, bool bMirrorX=false, bool bMirrorY=false)
OdSmartPtr< OdGiFill > OdGiFillPtr
ODGI_EXPORT size_t odgiGetTextExtentsCacheCapacity()
OdGiRegenType
Definition: GiCommonDraw.h:51
OdGiDeviationType
Definition: GiCommonDraw.h:65
#define ODGI_EXPORT
Definition: GiExport.h:35
#define ODGI_EXPORT_STATIC
Definition: GiExport.h:36
OdGiArcType
Definition: GiGeometry.h:787
@ kOdGiArcSimple
Definition: GiGeometry.h:788
ptrdiff_t OdGsMarker
unsigned int OdUInt32
unsigned short OdUInt16
int OdInt32
#define ODRX_ABSTRACT
wchar_t OdChar
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:516
#define GETBIT(flags, bit)
Definition: OdaDefs.h:517
virtual ~OdGiBaseVectorizer()
virtual void selectionMarkerOnChange(OdGsMarker nSelectionMarker)
OdGiSubEntityTraits & subEntityTraits() const
LayerTraitsCacheMap m_layerTraitsCache
bool isAttributesSegmentEnabled()
OdDbStub * m_effectiveMaterialId
void setSecondaryTrueColor(const OdCmEntityColor &color)
void image(const OdGiImageBGRA32 &img, const OdGePoint3d &origin, const OdGeVector3d &uVec, const OdGeVector3d &vVec, OdGiRasterImage::TransparencyMode trpMode=OdGiRasterImage::kTransparency8Bit)
void effectiveMaterialTraitsData(OdGiMaterialTraitsData &data) const
void rowOfDots(OdInt32 numPoints, const OdGePoint3d &startPoint, const OdGeVector3d &dirToNextPoint)
void nurbs(const OdGeNurbCurve3d &nurbsCurve)
bool isXrefOverride() const
bool isValidId(const OdUInt32 viewportId) const
OdGiMapper m_materialMapper
OdRxObjectPtr m_pGiReserved
void setLineWeight(OdDb::LineWeight lineWeight)
void setEffectiveMaterialTraitsData(OdDbStub *materialId, const OdGiMaterialTraitsData &data, bool bForce=false)
OdUInt32 sequenceNumber() const
virtual void setEntityTraitsDataChanged()
OdDbStub * m_byLayerMaterialId
bool isClipping() const
virtual bool doDraw(OdUInt32 drawableFlags, const OdGiDrawable *pDrawable)
const OdGiDrawableDesc * drawableDesc() const
const OdGiMaterialTraitsData & effectiveMaterialTraitsData() const
OdGiMapper * m_pCurMaterialMapper
void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
bool isDragging() const
const OdGiViewport * giViewport() const
bool isEntityTraitsDataChanged(int bit=kSomeChanged) const
void setAuxData(const OdGiAuxiliaryDataPtr &pAuxData)
void setVisualStyle(const OdDbStub *pVisualStyleId)
OdGiTraitsCache< OdGiMaterialTraitsData, OdGiMaterialTraitsTaker, OdGiMaterialTraits::kByBlock|OdGiMaterialTraits::kByLayer > OdGiMaterialTraitsCache
OdGiRegenType regenType() const
void setThickness(double thickness)
void setLineType(OdDbStub *lineTypeId)
virtual double linetypeGenerationCriteria() const
OdUInt32 m_entityTraitsDataChanged
void eyeToOutputTransform(OdGeMatrix3d &xfm) const
OdGiViewport & viewport() const
void setSectionable(bool bSectionableFlag)
OdGiGeometry & rawGeometry() const
const OdGiPathNode * currentGiPath() const
void metafileDc(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v, const OdGiMetafile *pMetafile, bool bDcAligned=true, bool bAllowClipping=false)
void polypoint(OdInt32 numPoints, const OdGePoint3d *vertexList, const OdCmEntityColor *pColors, const OdCmTransparency *pTransparency, const OdGeVector3d *pNormals, const OdGsMarker *pSubEntMarkers, OdInt32 nPointSize)
std::map< OdDbStub *, LayerTraitsCache > LayerTraitsCacheMap
void polygonDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
virtual void affectTraits(const OdGiSubEntityTraitsData *pSource, OdGiSubEntityTraitsData &destination) const
void setMapper(const OdGiMapper *pMapper)
void pline(const OdGiPolyline &polyline, OdUInt32 fromIndex=0, OdUInt32 numSegs=0)
OdUInt32 numberOfIsolines() const
OdGiConveyorConnector m_eyeEntryPoint
virtual bool layerVisible(OdDbStub *layerId) const
void pushModelTransform(const OdGeMatrix3d &xfm)
OdGeMatrix3d getWorldToModelTransform() const
void setLineStyleModifiers(const OdGiDgLinetypeModifiers *pLSMod)
void setFill(const OdGiFill *pFill)
OdGiLayerTraitsTaker m_effectiveLayerTraits
void clearEntityTraitsDataChanged() const
void pushClipBoundary(OdGiClipBoundary *pBoundary)
const OdGiConveyorContext * drawContext() const
void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, double height, double width, double oblique, const OdString &msg)
virtual void setEntityTraitsDataChanged(int bit, bool value=true)
const OdGiDeviation & modelDeviation() const
OdGiDrawableDesc * m_pDrawableDesc
void polylineCs(OdGiContext::CoordinatesSystem cs, OdUInt32 numVertices, const OdGePoint3d *vertexList)
bool effectivelyVisible() const
void setSelectionGeom(bool bSelectionFlag)
OdUInt32 m_nDrawableAttributes
OdGsMarker m_nPrevSelectionMarker
virtual void setEffectiveTraits(const OdGiSubEntityTraitsData &traits, const OdGeVector3d *fillNormal=NULL)
bool needDraw(OdUInt32 drawableFlags)
OdGiModelToViewProcPtr m_pModelToEyeProc
void updateTraitsDataByBlockTraits(const OdGiSubEntityTraitsData *pBlockTraits)
OdRxClass * isA() const
void setXrefOverride(bool bSet)
OdGiConveyorConnector * m_pActiveEntryPoint
void polygonEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
OdGeMatrix3d getModelToWorldTransform() const
virtual void onTraitsModified()
void setTransparency(const OdCmTransparency &transparency)
void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList)
void circularArc(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint, OdGiArcType arcType=kOdGiArcSimple)
void circle(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint)
void pushClipBoundary(OdGiClipBoundary *pBoundary, OdGiAbstractClipBoundary *pClipInfo)
void setColor(OdUInt16 color)
OdGiDgLinetypeModifiers m_lsModifiers
virtual const OdGiLayerTraitsData & effectiveLayerTraits() const
void shape(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, int shapeNumber, const OdGiTextStyle *pTextStyle)
void ray(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
const OdGiDrawable * currentDrawable() const
const OdGsView * gsView() const
void polyline(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal=0, OdGsMarker baseSubEntMarker=-1)
void updateLayerTraits(OdGiSubEntityTraitsData &subEntityTraits) const
bool regenAbort() const
void setExtents(const OdGePoint3d *newExtents)
const OdGiSubEntityTraitsData * m_pByBlock
void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
virtual const OdGiSubEntityTraitsData & effectiveTraits() const
void actualizeMaterialAttributes(OdDbStub *materialId) const
void text(const OdGePoint3d &position, const OdGeVector3d &normal, const OdGeVector3d &direction, const OdChar *msg, OdInt32 length, bool raw, const OdGiTextStyle *pTextStyle)
void setLayer(OdDbStub *layerId)
void setDrawFlags(OdUInt32 drawFlags)
virtual void beginViewVectorization()
void ellipArc(const OdGeEllipArc3d &ellipArc, const OdGePoint3d *endPointsOverrides=0, OdGiArcType arcType=kOdGiArcSimple)
const OdGeVector3d * extrusion(const OdGeVector3d *pNormal)
void setSelectionFlags(SelectionFlags selectionFlags)
void setByBlockTraits(const OdGiSubEntityTraitsData *pByBlock)
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 setMaterial(OdDbStub *pMaterialId)
void pointCloud(const OdGiPointCloud &pCloud)
const OdGiDeviation & worldDeviation() const
void circularArc(const OdGePoint3d &center, double radius, const OdGeVector3d &normal, const OdGeVector3d &startVector, double sweepAngle, OdGiArcType arcType=kOdGiArcSimple)
OdGiContext * context() const
OdGiContext & giContext() const
void setTrueColor(const OdCmEntityColor &trueColor)
void polylineDc(OdUInt32 numVertices, const OdGePoint3d *vertexList)
void drawClipBoundary(OdGiClipBoundary *pBoundary, OdGiAbstractClipBoundary *pClipInfo)
void setShadowFlags(ShadowFlags shadowFlags)
void shell(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
void polylineEye(OdUInt32 numVertices, const OdGePoint3d *vertexList)
const OdGeVector3d * extrusion(const OdGeVector3d &normal)
OdDbStub * viewportObjectId() const
void setEyeToOutputTransform(const OdGeMatrix3d &xfm)
virtual void endViewVectorization()
void setPlotStyleNameType(OdDb::PlotStyleNameType plotStyleNameType)
OdDbStub * m_byBlockMaterialId
OdGiConveyorConnector m_output
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)
void circle(const OdGePoint3d &center, double radius, const OdGeVector3d &normal)
OdGiSubEntityTraitsData m_effectiveEntityTraitsData
OdGiConveyorConnector m_modelEntryPoint
void polygon(OdInt32 numVertices, const OdGePoint3d *vertexList, const OdGeVector3d *pNormal)
void edge(const OdGiEdge2dArray &edges)
OdUInt32 drawContextFlags() const
void draw(const OdGiDrawable *pDrawable)
void worldLine(const OdGePoint3d points[2])
void setSelectionMarker(OdGsMarker selectionMarker)
void resetEntityTraitsDataKeepAuxData()
double deviation(const OdGiDeviationType deviationType, const OdGePoint3d &pointOnCurve) const
const OdGiDeviation & eyeDeviation() const
void setDrawContextFlags(OdUInt32 flags, bool bFlag)
void setPlotStyleNameId(OdDbStub *plotStyleNameId)
OdGiMaterialTraitsCache m_effectiveMaterialTraitsData
OdGiDgLinetypeModifiers * m_pCurLSModifiers
const OdGiSubEntityTraitsData * byBlockTraits() const
OdUInt32 drawableAttributes() const
virtual OdGiConveyorOutput & output()
void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub *pPlotStyleNameId=0)
void polygonCs(OdGiContext::CoordinatesSystem cs, OdUInt32 numVertices, const OdGePoint3d *vertexList)
OdGsMarker selectionMarker() const
OdRxObject * queryX(const OdRxClass *pProtocolClass) const
const OdGiDrawableDesc * currentDrawableDesc() const
void pushModelTransform(const OdGeVector3d &normal)
const OdGeVector3d * extrusion(const OdGePoint3d &origin, const OdGeVector3d &u, const OdGeVector3d &v)
const OdGeMatrix3d & eyeToOutputTransform() const
OdGiAuxiliaryDataPtr m_pAuxData
void setLineTypeScale(double lineTypeScale)
OdRxObjectPtr saveByBlockTraits()
virtual OdDbStub * switchLayer(OdDbStub *layerId) const
void startAttributesSegment()
const OdGeVector3d * extrusion(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint, const OdGePoint3d &thirdPoint)
OdGsMarker m_nSelectionMarker
virtual OdUInt32 setAttributes(const OdGiDrawable *pDrawable)
virtual bool updateExtentsOnly() const
static OdRxClass * desc()
static ODGI_EXPORT_STATIC const OdGiSubEntityTraitsData g_entityTraitsDataReset
OdGiConveyorContext * drawContext()
void setLockFlags(OdUInt32 lockFlags)
void setFillType(OdGiFillType fillType)
OdDbStub * m_effectiveLayerId
void setContext(OdGiContext *pUserContext)
bool regenAbort() const
void setExtents(const OdGePoint3d *newExtents)
const OdGiSubEntityTraitsData & effectiveTraits() const
void getExtents(OdGeExtents3d &extents) const
OdGiRegenType regenType() const
void affectTraits(const OdGiSubEntityTraitsData *pSource, OdGiSubEntityTraitsData &destination) const
void draw(const OdGiDrawable *pDrawable)
bool isSetExtentsCalled() const
virtual ~OdGiExtCalc()
OdGiExtAccumPtr m_pExtAccum
void resetExtents()
OdGiAuxiliaryDataPtr auxData() const
void setAuxData(const OdGiAuxiliaryDataPtr &pAuxData)
void setLockFlags(OdUInt32 lockFlags)
@ kKeepAuxDataAndLockFlags
Definition: Gi.h:168
@ kInheritableLockFlags
Definition: Gi.h:169
OdDbStub * visualStyle() const
void setLineStyleModifiers(const OdGiDgLinetypeModifiers *pLSMod)
void setShadowFlags(ShadowFlags shadowFlags)
void setSectionable(bool bSectionableFlag)
OdGiContext * m_pContext
void setLockFlags(OdUInt32 lockFlags)
void setTrueColor(const OdCmEntityColor &color)
OdUInt32 lockFlags() const
void setSelectionFlags(SelectionFlags selectionFlags)
void setVisualStyle(const OdDbStub *visualStyleId)
virtual void setContext(OdGiContext *pUserContext)
void setTransparency(const OdCmTransparency &transparency)
OdDbStub * plotStyleNameId() const
void setMapper(const OdGiMapper *pMapper)
OdGiSubEntityTraitsData m_entityTraitsData
void setColor(OdUInt16 color)
OdCmTransparency transparency() const
OdGiSubEntityTraits & subEntityTraits() const
OdDbStub * material() const
ODRX_USING_HEAP_OPERATORS(OdGiDummyCommonDraw< OdGiWorldDraw_ >)
void setMaterial(OdDbStub *pMaterialId)
OdDbStub * layer() const
void setLayer(OdDbStub *layerId)
void setSelectionGeom(bool bSelectionFlag)
const OdGiDgLinetypeModifiers * lineStyleModifiers() const
OdDbStub * lineType() const
void setFillType(OdGiFillType fillType)
OdGiAuxiliaryDataPtr auxData() const
OdUInt32 numberOfIsolines() const
void setLineType(OdDbStub *lineTypeId)
void setFill(const OdGiFill *pFill)
void setLineTypeScale(double lineTypeScale)
void setSecondaryTrueColor(const OdCmEntityColor &color)
void setSelectionMarker(OdGsMarker selectionMarker)
OdDb::PlotStyleNameType plotStyleNameType() const
static OdGiContext * dummyGiContext()
double lineTypeScale() const
OdGiContext * context() const
const OdGiFill * fill() const
void setThickness(double thickness)
bool sectionable() const
OdGiGeometry & rawGeometry() const
void setPlotStyleName(OdDb::PlotStyleNameType plotStyleNameType, OdDbStub *pPlotStyleNameId=0)
void setDrawFlags(OdUInt32 drawFlags)
OdUInt16 color() const
const OdGiMapper * mapper() const
SelectionFlags selectionFlags() const
void setAuxData(const OdGiAuxiliaryDataPtr &pAuxData)
OdCmEntityColor secondaryTrueColor() const
void setLineWeight(OdDb::LineWeight lineWeight)
double thickness() const
OdGiFillType fillType() const
OdCmEntityColor trueColor() const
OdUInt32 drawFlags() const
OdDb::LineWeight lineWeight() const
ShadowFlags shadowFlags() const
bool selectionGeom() const
Definition: Gs.h:140
GLint GLenum GLsizei width
Definition: gles2_ext.h:110
GLsizeiptr size
Definition: gles2_ext.h:182
GLint GLenum GLsizei GLsizei GLint GLsizei const void * data
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
GLsizei const GLfloat * value
Definition: gles2_ext.h:302
PlotStyleNameType
Definition: OdaDefs.h:417
LineWeight
Definition: OdaDefs.h:386