CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
GiBaseVectorizerImpl.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 __OD_GI_BASE_VECTORIZER_IMPL_H_
25#define __OD_GI_BASE_VECTORIZER_IMPL_H_
26
27#include "TD_PackPush.h"
28
29#include "Gs/GsExport.h"
30#include "Gi/GiBaseVectorizer.h"
32#include "Gi/GiLinetypeRedir.h"
33#include "Gi/GiPostTransform.h"
35#include "Gi/GiStack.h"
36#include "Gi/GiPalette.h"
37#include "Ps/PlotStyles.h"
38#include "Gs/GsViewPropsDef.h"
39#include "Gs/GsViewImpl.h"
40//FELIX_CHANGE_BEGIN
41#include "RxObjectImpl.h"
42#include "RxDictionary.h"
43#include "RxVariantValue.h"
44//FELIX_CHANGE_END
45
53{
54protected:
56
57public:
62
67 virtual void setUp(OdGsViewImpl& view);
68
72 OdGsViewImpl& view() const { ODA_ASSERT(m_view); return *m_view; }
117 OdUInt32 awareFlags() const { return m_awareFlags.m_nAwareFlags; }
118
163 OdUInt32 &awareFlags() { return m_awareFlags.m_nAwareFlags; }
164
172 {
173 //NS: traits processing was optimized, but it is not correct
174 //Aware flags can be changed when calulating for effective traits in affectTraits(),
175 //but on the other hand the flags are reset independently.
176 //As a result it is possible that aware flags have no kVpFrozenLayers flag set, but
177 //the traits are based on the layer (effective traits are used, unchanged from
178 //the previously processed entity.
179#ifdef ENABLE_GITRAITSOPTIMIZATION
180 if (m_awareFlags.getFlag(kVpFrozenLayers))
181 setEntityTraitsDataChanged(); //force resetting traits
182#endif
183 m_awareFlags.reset();
184 }
185
189
211
216
222 void setLinetypesEnabled(bool bEnable);
223
230 bool isLinetypesEnabled() const;
231
237 void setSkipViewSectioning(bool bEnable);
238
245 bool isViewSectioningSkipped() const;
246
253 void setModelSection(OdGiDrawable* pSection, bool bUseSectionGeometryMap);
254
258 const OdGiDrawable* liveSection() const { return m_liveSection; }
259
264
269
277
282 int lineweightToPixels(OdDb::LineWeight lineweight) const;
283
288 double lineweightToPixels(double lineweight) const;
289
298 bool hasLineweightOverride() const;
299
306 bool hasLinestyleOverride() const;
307
314 bool isMultiplyLineStyleScale() const;
315
320
327
333 ODCOLORREF paletteColor(OdInt16 colorIndex) const { return paletteColor(OdUInt16(colorIndex)); }
334
340 const ODCOLORREF *getPalette(int *pNumColors = NULL) const;
341
348 bool hasPaletteOverride() const { return !m_paletteOverrideStack.empty(); }
349
351
356
361
366
371
377
382
388 virtual bool isPerspective() const;
389
400 virtual bool doPerspective(OdGePoint3d& point) const;
401
412 virtual bool doInversePerspective(OdGePoint3d& point) const;
413
426 const OdGePoint3d& point,
427 OdGePoint2d& pixelDensity,
428 bool includePerspective = true) const;
429
430
435
440
445
446
450 virtual OdGeVector3d viewDir() const;
451
457 virtual OdUInt32 viewportId() const;
458
464 virtual OdInt16 acadWindowId() const;
465
477 OdGePoint2d& lowerLeft,
478 OdGePoint2d& upperRight) const;
479
496 bool& clipFront,
497 bool& clipBack,
498 double& front,
499 double& back) const;
500
504 virtual double linetypeScaleMultiplier() const;
505
513 virtual double linetypeGenerationCriteria() const;
514
522 virtual bool layerVisible(
523 OdDbStub* layerId) const;
524
532
539 virtual OdDbStub* annotationScaleId() const;
540
542
549 virtual void pushModelTransform(const OdGeVector3d& normal);
550
557 virtual void pushModelTransform(const OdGeMatrix3d & xfm);
558
562 virtual void popModelTransform();
563
572 virtual void xline(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
573
582 virtual void ray(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
583
597 virtual void shell(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList,
598 const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0);
599
612 virtual void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d* vertexList,
613 const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0);
614
616
622 virtual void setExtents(const OdGePoint3d *newExtents);
623
625
648 virtual double deviation(const OdGiDeviationType deviationType,
649 const OdGePoint3d& pointOnCurve) const;
650
668 virtual OdGiRegenType regenType() const;
669
671
676 virtual OdUInt32 sequenceNumber() const;
677
687 virtual bool isValidId(const OdUInt32 viewportId) const;
688
692 virtual OdDbStub* viewportObjectId() const;
693
700 virtual OdGiViewport& viewport() const;
701
703
709 virtual void setFillPlane(const OdGeVector3d* pNormal = 0);
710
725
734 virtual OdDbStub* visualStyle() const;
735
743 virtual OdUInt32 setupForEntity() const;
744
751 virtual bool pushLineweightOverride(const OdGiLineweightOverride *pOverride);
752
756 virtual void popLineweightOverride();
757
763 virtual bool pushPaletteOverride(const OdGiPalette* pOverride);
764
768 virtual void popPaletteOverride();
769
775 virtual bool hasPaletteOverrides() const;
776
778
782 virtual const OdGiViewport* giViewport() const;
783
789 virtual const OdGsView* gsView() const;
790
794 virtual double annotationScale() const;
795
797
802
806 virtual void endViewVectorization();
807
811 virtual void onTraitsModified();
812
820
826 {
827 kNotVectorizing = 0, // Intemediate process (not vectorizing)
828 kVectorizing = 1 << 0, // Vectorizing
829 kDisplaying = 1 << 1, // Displaying
830 kSelecting = 1 << 2, // Selection
831 kExtentsComp = 1 << 3 // Extents computation
832 };
833
837 int vectorizingFlags() const { return m_vectorizingFlags; }
838
844 void setVectorizingFlags(int flags) { m_vectorizingFlags = flags; }
845protected:
849 bool useFillPlane() const;
850
858 virtual const OdGeMatrix3d &metafileTransform() const { return OdGeMatrix3d::kIdentity; }
859
864 inline bool isOutputSuppressed() const;
865
870
874 bool isSupportPlotStyles() const;
875
877
884 virtual void affectTraits(const OdGiSubEntityTraitsData* pSource, OdGiSubEntityTraitsData& destination) const;
885
892 double lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute = false) const;
905 double lineweightToPixelsOverride(double lineweight, bool bAbsolute = false) const;
906
912 virtual void updateLineweightOverride(const OdGiLineweightOverride &lwdOverride);
918 virtual void updatePaletteOverride(const OdGiPalette *pPalette);
919private:
923 const OdPsPlotStyleData& plotStyle() const;
924
931 void affect2dTraits(const OdGiSubEntityTraitsData* pFrom, OdGiSubEntityTraitsData& to) const;
932
938 void updateXlineNRayClipper();
942 void onModelToEyeChanged();
943protected:
947 mutable struct AwareFlagsHandler
948 {
949 OdUInt32 m_nAwareFlags; // Active Aware-flags accumulation register.
950 OdUInt32 m_nAffectAwareFlags; // Aware-flags state, accumulated during last affectTraits() call (ref. #CORE-16731).
960 bool getFlag(OdUInt32 nFlag) const { return GETBIT(m_nAwareFlags, nFlag); }
966 void setFlag(OdUInt32 nFlag) { SETBIT_1(m_nAwareFlags, nFlag); }
973 void setFlag(OdUInt32 nFlag, bool bSet) { SETBIT(m_nAwareFlags, nFlag, bSet); }
980 void swapAndSet(OdUInt32 nFlag) { swapFlags(); setFlag(nFlag); }
989 void swapAndReset() { swapFlags(); reset(); }
1002 void reset() { m_nAwareFlags = 0; }
1003 } m_awareFlags;
1015 OdRxObjectPtr m_pGsReserved; // Reserved pointer for internal use (binary incompatible changes), do not delete.
1020
1022
1023private:
1024 OdGsViewImpl* m_view;
1025 OdGiConveyorConnector m_ltpEntryPoint;
1026
1027 mutable int m_nPenIndex;
1028 mutable OdDbStub* m_psnId;
1029 mutable OdPsPlotStyleData m_effectivePlotStyle;
1030
1031 OdArray<OdGiLineweightOverride, OdMemoryAllocator<OdGiLineweightOverride> > m_lwdOverrideStack; // Lineweight overrides stack
1032 OdGiStack<OdGiPalettePtr> m_paletteOverrideStack; // Palette overrides stack
1033protected:
1035protected:
1036 //DOM-IGNORE-BEGIN
1038 {
1046 kSelectionGeometry = OdGiBaseVectorizer::kLastFlag << 8, // Processing geometry which is intended only for selection
1047 kSelectionDisabled = OdGiBaseVectorizer::kLastFlag << 9, // Processing geometry which shouldn't be used for selection
1059 // Note: m_flags and Flags enum bits is nearly complete utilization. Please don't add new flags here.
1060 // use m_implFlags and ImplFlags enum instead.
1061 };
1072};
1073
1074//FELIX_CHANGE_BEGIN
1075template<typename T, typename>
1076struct identity { typedef T type; };
1077
1078template < class _DataTy, class _TraitsTy >
1080 : public _TraitsTy
1081{
1082public:
1083 static _DataTy getNull()
1084 {
1085 return _DataTy( 0 );
1086 }
1087};
1088
1089template < class _DataTy, class _TraitsTy >
1091{
1092public:
1093 typedef _TraitsTy Traits;
1094 static void removeFromDevice( OdGsDevice *device )
1095 {
1096 if ( !device )
1097 return;
1098 OdRxDictionaryPtr dict = device->properties();
1099 if ( dict.isNull() )
1100 return;
1101 dict->remove( Traits::key() );
1102 }
1103 static _DataTy fromDevice( OdGsDevice *device, bool *isValid = 0 )
1104 {
1105 if ( !device )
1106 {
1107 if (isValid)
1108 *isValid = false;
1109 return _DataTy();
1110 }
1111 OdRxDictionaryPtr dict = device->properties();
1112 if ( dict.isNull() )
1113 {
1114 if (isValid)
1115 *isValid = false;
1116 return _DataTy();
1117 }
1118 OdRxVariantValue val(( dict->getAt( Traits::key() ) )) ;
1119 bool isNull = val.isNull();
1120 if (isValid)
1121 *isValid = !isNull;
1122 return isNull ? ( _DataTy )Traits::getNull() : val.identity< OdRxVariantValue, _DataTy >::type::operator _DataTy();
1123 }
1124 static void toDevice( OdGsDevice *device, const _DataTy &val )
1125 {
1126 if ( !device )
1127 return;
1128 OdRxDictionaryPtr dict = device->properties();
1129 if ( dict.isNull() )
1130 return;
1131 dict->putAt( Traits::key(), OdRxVariantValue( val ) );
1132 }
1133};
1134
1135template < class _DataTy, class _TraitsTy >
1137 : public CFxDeviceProperty< _DataTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1138{
1139};
1140
1141template < class _DataTy, class _StorageTy, class _TraitsTy >
1143 : public CFxDeviceProperty< _StorageTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1144{
1145public:
1147 static _DataTy fromDevice( OdGsDevice *device, bool *isValid = 0 )
1148 {
1149 return (_DataTy)_BaseTy::fromDevice( device, isValid );
1150 }
1151 static void toDevice( OdGsDevice *device, const _DataTy &val )
1152 {
1153 _StorageTy stor(val);
1154 return _BaseTy::toDevice(device, val);
1155 }
1156};
1157
1158template < class _DataTy, class _TraitsTy, class _PtrTy = OdUInt64 >
1160 : public CFxDeviceProperty< _PtrTy, CFxPropertyIntegralTraits< _DataTy *, _TraitsTy > >
1161{
1162public:
1164 static _DataTy *allocateAt( OdGsDevice *device, const _DataTy &def )
1165 {
1166 if ( !device )
1167 return 0;
1168 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1169 if ( !p )
1170 {
1171 p = new _DataTy( def );
1172 toDevice( device, p );
1173 }
1174 return p;
1175 }
1176 static _DataTy *allocateAt( OdGsDevice *device )
1177 {
1178 if ( !device )
1179 return 0;
1180 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1181 if ( !p )
1182 {
1183 p = new _DataTy();
1184 toDevice( device, p );
1185 }
1186 return p;
1187 }
1188 static void deallocateAt( OdGsDevice *device )
1189 {
1190 if ( !device )
1191 return;
1192 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1193 Base::removeFromDevice( device );
1194 delete p;
1195 }
1196 static _DataTy *fromDevice( OdGsDevice *device, bool *isValid = 0 )
1197 {
1198 if ( !device )
1199 return 0;
1200 return ( _DataTy * )Base::fromDevice( device, isValid );
1201 }
1202 static void toDevice( OdGsDevice *device, const _DataTy *val )
1203 {
1204 return Base::toDevice( device, ( _PtrTy ) val );
1205 }
1206};
1207class GS_TOOLKIT_EXPORT CFxPlotGenerationDeviceProperty // Just hints, treat as minimum desired quality settings.
1208{
1209public:
1210 static const OdString key()
1211 {
1212 return OdString( OD_T("IsPlotGeneration") );
1213 }
1214};
1215
1216class GS_TOOLKIT_EXPORT CFxRenderHints // Just hints, treat as minimum desired quality settings.
1217{
1218public:
1219 static const OdString key()
1220 {
1221 return OdString( OD_T("FxRenderHints") );
1222 }
1224 { }
1227};
1228
1230 : public CFxDevicePropertyIntegral< bool, CFxPlotGenerationDeviceProperty >
1231{
1232};
1234 : public CFxDevicePropertyPtr< CFxRenderHints, CFxRenderHints >
1235{
1236};
1237//FELIX_CHANGE_END
1238
1243
1245{
1246 if (bEnable) m_pLinetyper->enable();
1247 else m_pLinetyper->disable();
1248}
1249
1251{
1252 return m_pLinetyper->enabled();
1253}
1254
1256{
1258}
1259
1264
1269
1271{
1273 return view().lineweightToPixels(lineweight);
1274 return lineweightToPixelsOverrideInt(lineweight);
1275}
1276
1277inline double OdGiBaseVectorizerImpl::lineweightToPixels(double lineweight) const
1278{
1280 return view().lineweightToPixels(lineweight);
1281 return lineweightToPixelsOverride(lineweight);
1282}
1283
1284inline double OdGiBaseVectorizerImpl::lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute) const
1285{
1286 return lineweightToPixelsOverride(double(lineweight) / 100.0, bAbsolute);
1287}
1288
1290{
1292 return &m_lwdOverrideStack.last();
1293 return NULL;
1294}
1295
1300
1305
1310
1311#include "TD_PackPop.h"
1312
1313#endif // __OD_GI_BASE_VECTORIZER_IMPL_H_
#define ODA_ASSERT(exp)
Definition DebugStuff.h:57
OdGiFillType
Definition Gi.h:45
OdSmartPtr< OdGiDrawable > OdGiDrawablePtr
OdGiRegenType
OdGiDeviationType
OdSmartPtr< OdGiConveyorEmbranchment > OdGiConveyorEmbranchmentPtr
OdSmartPtr< OdGiLinetypeRedir > OdGiLinetypeRedirPtr
OdSmartPtr< OdGiOrthoClipper > OdGiOrthoClipperPtr
OdSmartPtr< OdGiPostTransform > OdGiPostTransformPtr
#define OdGiStack
Definition GiStack.h:32
OdSmartPtr< OdGiXform > OdGiXformPtr
Definition GiXform.h:69
OdSmartPtr< OdRxDictionary > OdRxDictionaryPtr
Definition Gs.h:93
#define GS_TOOLKIT_EXPORT
Definition GsExport.h:37
@ kVpFrozenLayers
#define ODCOLORREF
#define OD_T(x)
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
int OdInt32
OdString OdString
Definition OdString.h:1258
#define SETBIT(flags, bit, value)
Definition OdaDefs.h:516
#define GETBIT(flags, bit)
Definition OdaDefs.h:517
#define SETBIT_1(flags, bit)
Definition OdaDefs.h:520
static _DataTy fromDevice(OdGsDevice *device, bool *isValid=0)
static void toDevice(OdGsDevice *device, const _DataTy &val)
static void removeFromDevice(OdGsDevice *device)
static void toDevice(OdGsDevice *device, const _DataTy &val)
CFxDeviceProperty< _StorageTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > > _BaseTy
static _DataTy fromDevice(OdGsDevice *device, bool *isValid=0)
static _DataTy * allocateAt(OdGsDevice *device, const _DataTy &def)
CFxDeviceProperty< _PtrTy, CFxPropertyIntegralTraits< _DataTy *, _TraitsTy > > Base
static _DataTy * fromDevice(OdGsDevice *device, bool *isValid=0)
static void toDevice(OdGsDevice *device, const _DataTy *val)
static void deallocateAt(OdGsDevice *device)
static _DataTy * allocateAt(OdGsDevice *device)
static const OdString key()
OdGeVector2d deviceToMmRatio
bool isNull() const
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
Definition GeMatrix3d.h:97
virtual void setEntityTraitsDataChanged()
OdGiOrthoClipperPtr m_pXlineNRayClipper
OdCmTransparency m_sectForegroundFace
virtual OdGeMatrix3d getWorldToEyeTransform() const
virtual OdGeMatrix3d getEyeToModelTransform() const
int lineweightToPixels(OdDb::LineWeight lineweight) const
virtual void popPaletteOverride()
virtual OdDbStub * viewportObjectId() const
OdGsView::RenderMode getRenderMode() const
virtual void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d *vertexList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
int lineweightToPixelsOverrideInt(OdDb::LineWeight lineweight) const
const OdGiLineweightOverride * currentLineweightOverride() const
virtual const OdGeMatrix3d & metafileTransform() const
virtual double linetypeGenerationCriteria() const
virtual void updatePaletteOverride(const OdGiPalette *pPalette)
virtual const OdGiViewport * giViewport() const
virtual bool hasPaletteOverrides() const
virtual void getViewportDcCorners(OdGePoint2d &lowerLeft, OdGePoint2d &upperRight) const
virtual void popModelTransform()
void setModelSection(OdGiDrawable *pSection, bool bUseSectionGeometryMap)
virtual OdInt16 acadWindowId() const
virtual void getNumPixelsInUnitSquare(const OdGePoint3d &point, OdGePoint2d &pixelDensity, bool includePerspective=true) const
virtual bool pushPaletteOverride(const OdGiPalette *pOverride)
virtual double deviation(const OdGiDeviationType deviationType, const OdGePoint3d &pointOnCurve) const
virtual OdDbStub * annotationScaleId() const
void setVectorizingFlags(int flags)
virtual OdGiRegenType regenType() const
virtual OdGePoint3d getCameraLocation() const
ODCOLORREF paletteColor(OdInt16 colorIndex) const
OdGeMatrix3d worldToModelTransform() const
virtual bool pushLineweightOverride(const OdGiLineweightOverride *pOverride)
virtual void onTraitsModified()
virtual void setExtents(const OdGePoint3d *newExtents)
virtual OdGeMatrix3d getWorldToModelTransform() const
bool isEffectiveLinetypeContinuous() const
virtual const OdGiSubEntityTraitsData & effectiveTraits() const
virtual OdUInt32 viewportId() const
virtual void setFillType(OdGiFillType fillType)
virtual void shell(OdInt32 numVertices, const OdGePoint3d *vertexList, OdInt32 faceListSize, const OdInt32 *faceList, const OdGiEdgeData *pEdgeData=0, const OdGiFaceData *pFaceData=0, const OdGiVertexData *pVertexData=0)
struct OdGiBaseVectorizerImpl::AwareFlagsHandler m_awareFlags
virtual bool doPerspective(OdGePoint3d &point) const
ODCOLORREF paletteColor(OdUInt16 colorIndex) const
virtual void affectTraits(const OdGiSubEntityTraitsData *pSource, OdGiSubEntityTraitsData &destination) const
bool useFillPlane() const
virtual OdUInt32 sequenceNumber() const
OdGiPostTransformPtr m_pPostTransform
double lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute=false) const
ODRX_USING_HEAP_OPERATORS(OdGiBaseVectorizer)
virtual void setFillPlane(const OdGeVector3d *pNormal=0)
virtual void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
virtual OdGeMatrix3d getEyeToWorldTransform() const
OdGiLinetypeRedirPtr m_pLinetyper
virtual double annotationScale() const
const OdGiDrawable * liveSection() const
virtual void popLineweightOverride()
virtual OdGeMatrix3d getModelToWorldTransform() const
OdGiConveyorEmbranchmentPtr m_pOutputBranch
virtual bool getFrontAndBackClipValues(bool &clipFront, bool &clipBack, double &front, double &back) const
virtual OdDbStub * visualStyle() const
OdGeMatrix3d modelToWorldTransform() const
OdGsViewImpl & view() const
virtual void pushModelTransform(const OdGeVector3d &normal)
virtual void setUp(OdGsViewImpl &view)
const OdGiContextualColors * contextualColors() const
void setLinetypesEnabled(bool bEnable)
virtual OdUInt32 setupForEntity() const
virtual void beginViewVectorization()
virtual OdGiViewport & viewport() const
virtual OdGeMatrix3d getModelToEyeTransform() const
virtual OdGeVector3d getCameraUpVector() const
OdCmTransparency m_sectForegroundEdge
virtual OdGePoint3d getCameraTarget() const
virtual bool layerVisible(OdDbStub *layerId) const
OdGiConveyorEntryPoint m_xlineNRayEntryPoint
virtual void pushModelTransform(const OdGeMatrix3d &xfm)
const OdPsPlotStyleData & effectivePlotStyle() const
virtual OdGeVector3d viewDir() const
virtual const OdGsView * gsView() const
double lineweightToPixelsOverride(double lineweight, bool bAbsolute=false) const
virtual void endViewVectorization()
virtual void updateLineweightOverride(const OdGiLineweightOverride &lwdOverride)
virtual double linetypeScaleMultiplier() const
virtual bool isValidId(const OdUInt32 viewportId) const
virtual void ray(const OdGePoint3d &basePoint, const OdGePoint3d &throughPoint)
const ODCOLORREF * getPalette(int *pNumColors=NULL) const
virtual bool isPerspective() const
virtual bool doInversePerspective(OdGePoint3d &point) const
OdGiContext::PStyleType m_pstype
void setSkipViewSectioning(bool bEnable)
virtual OdGeMatrix3d objectToDeviceMatrix() const
virtual const OdGiLineweightOverride * currentLineweightOverride() const
OdGiFillType fillType() const
virtual OdRxDictionaryPtr properties()=0
Definition Gs.h:141
RenderMode
Definition Gs.h:149
int lineweightToPixels(OdDb::LineWeight lineweight) const
virtual OdRxObjectPtr getAt(const OdString &key) const =0
virtual OdRxObjectPtr remove(const OdString &key)=0
virtual OdRxObjectPtr putAt(const OdString &key, OdRxObject *pObject, OdUInt32 *pRetId=0)=0
LineWeight
Definition OdaDefs.h:386