CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
GiBaseVectorizerImpl.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23
24#ifndef __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"
34#include "Gi/GiStack.h"
35#include "Gi/GiPalette.h"
36#include "Ps/PlotStyles.h"
37#include "Gs/GsViewPropsDef.h"
38#include "Gs/GsViewImpl.h"
39//FELIX_CHANGE_BEGIN
40#include "RxObjectImpl.h"
41#include "RxDictionary.h"
42#include "RxVariantValue.h"
43//FELIX_CHANGE_END
44
52{
53protected:
55
56public:
61
66 virtual void setUp(OdGsViewImpl& view);
67
71 OdGsViewImpl& view() const { ODA_ASSERT(m_view); return *m_view; }
116 OdUInt32 awareFlags() const { return m_awareFlags.m_nAwareFlags; }
117
162 OdUInt32 &awareFlags() { return m_awareFlags.m_nAwareFlags; }
163
171 {
172 //NS: traits processing was optimized, but it is not correct
173 //Aware flags can be changed when calulating for effective traits in affectTraits(),
174 //but on the other hand the flags are reset independently.
175 //As a result it is possible that aware flags have no kVpFrozenLayers flag set, but
176 //the traits are based on the layer (effective traits are used, unchanged from
177 //the previously processed entity.
178#ifdef ENABLE_GITRAITSOPTIMIZATION
179 if (m_awareFlags.getFlag(kVpFrozenLayers))
180 setEntityTraitsDataChanged(); //force resetting traits
181#endif
182 m_awareFlags.reset();
183 }
188
210
215
221 void setLinetypesEnabled(bool bEnable);
222
229 bool isLinetypesEnabled() const;
230
236 void setSkipViewSectioning(bool bEnable);
237
244 bool isViewSectioningSkipped() const;
245
252 void setModelSection(OdGiDrawable* pSection, bool bUseSectionGeometryMap);
253
257 const OdGiDrawable* liveSection() const { return m_liveSection; }
258
263
268
276
281 int lineweightToPixels(OdDb::LineWeight lineweight) const;
282
287 double lineweightToPixels(double lineweight) const;
288
297 bool hasLineweightOverride() const;
298
305 bool hasLinestyleOverride() const;
306
313 bool isMultiplyLineStyleScale() const;
314
319
326
332 ODCOLORREF paletteColor(OdInt16 colorIndex) const { return paletteColor(OdUInt16(colorIndex)); }
333
339 const ODCOLORREF *getPalette(int *pNumColors = NULL) const;
340
347 bool hasPaletteOverride() const { return !m_paletteOverrideStack.empty(); }
348
355
360
365
370
376
381
387 virtual bool isPerspective() const;
388
399 virtual bool doPerspective(OdGePoint3d& point) const;
400
411 virtual bool doInversePerspective(OdGePoint3d& point) const;
412
425 const OdGePoint3d& point,
426 OdGePoint2d& pixelDensity,
427 bool includePerspective = true) const;
428
429
434
439
444
445
449 virtual OdGeVector3d viewDir() const;
450
456 virtual OdUInt32 viewportId() const;
457
463 virtual OdInt16 acadWindowId() const;
464
476 OdGePoint2d& lowerLeft,
477 OdGePoint2d& upperRight) const;
478
495 bool& clipFront,
496 bool& clipBack,
497 double& front,
498 double& back) const;
499
503 virtual double linetypeScaleMultiplier() const;
504
512 virtual double linetypeGenerationCriteria() const;
513
521 virtual bool layerVisible(
522 OdDbStub* layerId) const;
523
531
538 virtual OdDbStub* annotationScaleId() const;
539
548 virtual void pushModelTransform(const OdGeVector3d& normal);
549
556 virtual void pushModelTransform(const OdGeMatrix3d & xfm);
557
561 virtual void popModelTransform();
562
571 virtual void xline(const OdGePoint3d& firstPoint, const OdGePoint3d& secondPoint);
572
581 virtual void ray(const OdGePoint3d& basePoint, const OdGePoint3d& throughPoint);
582
596 virtual void shell(OdInt32 numVertices, const OdGePoint3d* vertexList, OdInt32 faceListSize, const OdInt32* faceList,
597 const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0);
598
611 virtual void mesh(OdInt32 numRows, OdInt32 numColumns, const OdGePoint3d* vertexList,
612 const OdGiEdgeData* pEdgeData = 0, const OdGiFaceData* pFaceData = 0, const OdGiVertexData* pVertexData = 0);
613
621 virtual void setExtents(const OdGePoint3d *newExtents);
622
647 virtual double deviation(const OdGiDeviationType deviationType,
648 const OdGePoint3d& pointOnCurve) const;
649
667 virtual OdGiRegenType regenType() const;
668
675 virtual OdUInt32 sequenceNumber() const;
676
686 virtual bool isValidId(const OdUInt32 viewportId) const;
687
691 virtual OdDbStub* viewportObjectId() const;
692
699 virtual OdGiViewport& viewport() const;
700
708 virtual void setFillPlane(const OdGeVector3d* pNormal = 0);
709
723 virtual void setFillType(OdGiFillType fillType);
724
733 virtual OdDbStub* visualStyle() const;
734
742 virtual OdUInt32 setupForEntity() const;
743
750 virtual bool pushLineweightOverride(const OdGiLineweightOverride *pOverride);
751
755 virtual void popLineweightOverride();
756
762 virtual bool pushPaletteOverride(const OdGiPalette* pOverride);
763
767 virtual void popPaletteOverride();
768
774 virtual bool hasPaletteOverrides() const;
775
781 virtual const OdGiViewport* giViewport() const;
782
788 virtual const OdGsView* gsView() const;
789
793 virtual double annotationScale() const;
794
801
805 virtual void endViewVectorization();
806
810 virtual void onTraitsModified();
811
819
825 {
826 kNotVectorizing = 0, // Intemediate process (not vectorizing)
827 kVectorizing = 1 << 0, // Vectorizing
828 kDisplaying = 1 << 1, // Displaying
829 kSelecting = 1 << 2, // Selection
830 kExtentsComp = 1 << 3 // Extents computation
831 };
832
836 int vectorizingFlags() const { return m_vectorizingFlags; }
837
843 void setVectorizingFlags(int flags) { m_vectorizingFlags = flags; }
844protected:
848 bool useFillPlane() const;
849
857 virtual const OdGeMatrix3d &metafileTransform() const { return OdGeMatrix3d::kIdentity; }
858
863 inline bool isOutputSuppressed() const;
864
869
873 bool isSupportPlotStyles() const;
874
883 virtual void affectTraits(const OdGiSubEntityTraitsData* pSource, OdGiSubEntityTraitsData& destination) const;
884
891 double lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute = false) const;
904 double lineweightToPixelsOverride(double lineweight, bool bAbsolute = false) const;
905
911 virtual void updateLineweightOverride(const OdGiLineweightOverride &lwdOverride);
917 virtual void updatePaletteOverride(const OdGiPalette *pPalette);
918private:
922 const OdPsPlotStyleData& plotStyle() const;
923
930 void affect2dTraits(const OdGiSubEntityTraitsData* pFrom, OdGiSubEntityTraitsData& to) const;
931
937 void updateXlineNRayClipper();
941 void onModelToEyeChanged();
942protected:
946 mutable struct AwareFlagsHandler
947 {
948 OdUInt32 m_nAwareFlags; // Active Aware-flags accumulation register.
949 OdUInt32 m_nAffectAwareFlags; // Aware-flags state, accumulated during last affectTraits() call (ref. #CORE-16731).
953 AwareFlagsHandler() : m_nAwareFlags(0), m_nAffectAwareFlags(0) { }
959 bool getFlag(OdUInt32 nFlag) const { return GETBIT(m_nAwareFlags, nFlag); }
965 void setFlag(OdUInt32 nFlag) { SETBIT_1(m_nAwareFlags, nFlag); }
972 void setFlag(OdUInt32 nFlag, bool bSet) { SETBIT(m_nAwareFlags, nFlag, bSet); }
979 void swapAndSet(OdUInt32 nFlag) { swapFlags(); setFlag(nFlag); }
983 void swapFlags() { std::swap(m_nAwareFlags, m_nAffectAwareFlags); }
988 void swapAndReset() { swapFlags(); reset(); }
992 void mergeFlags() { m_nAwareFlags |= m_nAffectAwareFlags; }
997 void swapAndMerge() { swapFlags(); mergeFlags(); }
1001 void reset() { m_nAwareFlags = 0; }
1002 } m_awareFlags;
1013 OdRxObjectPtr m_pGsReserved; // Reserved pointer for internal use (binary incompatible changes), do not delete.
1018
1020
1021private:
1022 OdGsViewImpl* m_view;
1023 OdGiConveyorConnector m_ltpEntryPoint;
1024
1025 mutable int m_nPenIndex;
1026 mutable OdDbStub* m_psnId;
1027 mutable OdPsPlotStyleData m_effectivePlotStyle;
1028
1029 OdArray<OdGiLineweightOverride, OdMemoryAllocator<OdGiLineweightOverride> > m_lwdOverrideStack; // Lineweight overrides stack
1030 OdGiStack<OdGiPalettePtr> m_paletteOverrideStack; // Palette overrides stack
1031protected:
1033protected:
1035 {
1036 kFillPlaneSet = OdGiBaseVectorizer::kLastFlag << 1,
1037 kLinetypeContinuous = OdGiBaseVectorizer::kLastFlag << 2,
1040 kDontAbortRegen = OdGiBaseVectorizer::kLastFlag << 5,
1041 kCheckLinePattern = OdGiBaseVectorizer::kLastFlag << 6,
1042 kBreakSelection = OdGiBaseVectorizer::kLastFlag << 7,
1043 kSelectionGeometry = OdGiBaseVectorizer::kLastFlag << 8, // Processing geometry which is intended only for selection
1044 kSelectionDisabled = OdGiBaseVectorizer::kLastFlag << 9, // Processing geometry which shouldn't be used for selection
1045 kObjectToDeviceValid = OdGiBaseVectorizer::kLastFlag << 10,
1046 kDisableInfiniteGeomExtents = OdGiBaseVectorizer::kLastFlag << 11,
1047 kSectionableGeomExtentsOnly = OdGiBaseVectorizer::kLastFlag << 12,
1048 kDisableSection = OdGiBaseVectorizer::kLastFlag << 13,
1049 kSectionForegroundGeometry = OdGiBaseVectorizer::kLastFlag << 14,
1050 kInitGsState = OdGiBaseVectorizer::kLastFlag << 15,
1051 kSetVpLtypeScaleMult = OdGiBaseVectorizer::kLastFlag << 16,
1052 kSetVpFilterFunction = OdGiBaseVectorizer::kLastFlag << 17,
1053 kLineweightOverride = OdGiBaseVectorizer::kLastFlag << 18,
1054 kLinestyleOverride = OdGiBaseVectorizer::kLastFlag << 19,
1055 kLastOptionFlag = kLinestyleOverride
1056 // Note: m_flags and Flags enum bits is nearly complete utilization. Please don't add new flags here.
1057 // use m_implFlags and ImplFlags enum instead.
1060 {
1061 kFirstImplFlag = 1,
1062 kSectionableGeomEnabled = kFirstImplFlag << 0,
1063 kMultiplyLinestyleScale = kFirstImplFlag << 1,
1064 kSkipViewSectioning = kFirstImplFlag << 2,
1066 kHiddenImplFlag = kFirstImplFlag << 3,
1067 kLastImplFlag = kHiddenImplFlag
1069};
1070
1071//FELIX_CHANGE_BEGIN
1072template<typename T, typename>
1073struct identity { typedef T type; };
1074
1075class Foo
1076{
1077public:
1078 operator int() const;
1079
1080 template <typename T> T get() const {
1081 return this->identity<Foo, T>::type::operator T();
1082 }
1083};
1084
1085template < class _DataTy, class _TraitsTy >
1087 : public _TraitsTy
1088{
1089public:
1090 static _DataTy getNull()
1091 {
1092 return _DataTy( 0 );
1093 }
1094};
1095
1096template < class _DataTy, class _TraitsTy >
1098{
1099public:
1100 typedef _TraitsTy Traits;
1101 static void removeFromDevice( OdGsDevice *device )
1102 {
1103 if ( !device )
1104 return;
1105 OdRxDictionaryPtr dict = device->properties();
1106 if ( dict.isNull() )
1107 return;
1108 dict->remove( Traits::key() );
1109 }
1110 static _DataTy fromDevice( OdGsDevice *device, bool *isValid = 0 )
1111 {
1112 if ( !device )
1113 {
1114 if (isValid)
1115 *isValid = false;
1116 return _DataTy();
1117 }
1118 OdRxDictionaryPtr dict = device->properties();
1119 if ( dict.isNull() )
1120 {
1121 if (isValid)
1122 *isValid = false;
1123 return _DataTy();
1124 }
1125 OdRxVariantValue val(( dict->getAt( Traits::key() ) )) ;
1126 bool isNull = val.isNull();
1127 if (isValid)
1128 *isValid = !isNull;
1129 return isNull ? ( _DataTy )Traits::getNull() : val.identity< OdRxVariantValue, _DataTy >::type::operator _DataTy();
1130 }
1131 static void toDevice( OdGsDevice *device, const _DataTy &val )
1132 {
1133 if ( !device )
1134 return;
1135 OdRxDictionaryPtr dict = device->properties();
1136 if ( dict.isNull() )
1137 return;
1138 dict->putAt( Traits::key(), OdRxVariantValue( val ) );
1139 }
1140};
1141
1142template < class _DataTy, class _TraitsTy >
1144 : public CFxDeviceProperty< _DataTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1145{
1146};
1147
1148template < class _DataTy, class _StorageTy, class _TraitsTy >
1150 : public CFxDeviceProperty< _StorageTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1151{
1152public:
1154 static _DataTy fromDevice( OdGsDevice *device, bool *isValid = 0 )
1155 {
1156 return (_DataTy)_BaseTy::fromDevice( device, isValid );
1157 }
1158 static void toDevice( OdGsDevice *device, const _DataTy &val )
1159 {
1160 _StorageTy stor(val);
1161 return _BaseTy::toDevice(device, val);
1162 }
1163};
1164
1165template < class _DataTy, class _TraitsTy, class _PtrTy = OdUInt64 >
1167 : public CFxDeviceProperty< _PtrTy, CFxPropertyIntegralTraits< _DataTy *, _TraitsTy > >
1168{
1169public:
1171 static _DataTy *allocateAt( OdGsDevice *device, const _DataTy &def )
1172 {
1173 if ( !device )
1174 return 0;
1175 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1176 if ( !p )
1177 {
1178 p = new _DataTy( def );
1179 toDevice( device, p );
1180 }
1181 return p;
1182 }
1183 static _DataTy *allocateAt( OdGsDevice *device )
1184 {
1185 if ( !device )
1186 return 0;
1187 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1188 if ( !p )
1189 {
1190 p = new _DataTy();
1191 toDevice( device, p );
1192 }
1193 return p;
1194 }
1195 static void deallocateAt( OdGsDevice *device )
1196 {
1197 if ( !device )
1198 return;
1199 _DataTy *p = ( _DataTy * )Base::fromDevice( device );
1200 Base::removeFromDevice( device );
1201 delete p;
1202 }
1203 static _DataTy *fromDevice( OdGsDevice *device, bool *isValid = 0 )
1204 {
1205 if ( !device )
1206 return 0;
1207 return ( _DataTy * )Base::fromDevice( device, isValid );
1208 }
1209 static void toDevice( OdGsDevice *device, const _DataTy *val )
1210 {
1211 return Base::toDevice( device, ( _PtrTy ) val );
1212 }
1213};
1214class GS_TOOLKIT_EXPORT CFxPlotGenerationDeviceProperty // Just hints, treat as minimum desired quality settings.
1215{
1216public:
1217 static const OdString key()
1218 {
1219 return OdString( OD_T("IsPlotGeneration") );
1220 }
1221};
1222
1223class GS_TOOLKIT_EXPORT CFxRenderHints // Just hints, treat as minimum desired quality settings.
1224{
1225public:
1226 static const OdString key()
1227 {
1228 return OdString( OD_T("FxRenderHints") );
1229 }
1230 CFxRenderHints() : geomDpi( 0 ), colorImgDpi( 0 ), bwImgDpi( 0 ), deviceToMmRatio( 1., 1. )
1231 { }
1232 int geomDpi, colorImgDpi, bwImgDpi;
1234};
1235
1237 : public CFxDevicePropertyIntegral< bool, CFxPlotGenerationDeviceProperty >
1238{
1239};
1241 : public CFxDevicePropertyPtr< CFxRenderHints, CFxRenderHints >
1242{
1243};
1244//FELIX_CHANGE_END
1245
1247{
1249}
1250
1252{
1253 if (bEnable) m_pLinetyper->enable();
1254 else m_pLinetyper->disable();
1255}
1256
1258{
1259 return m_pLinetyper->enabled();
1260}
1261
1263{
1265}
1266
1268{
1270}
1271
1273{
1275}
1276
1278{
1280 return view().lineweightToPixels(lineweight);
1281 return lineweightToPixelsOverrideInt(lineweight);
1282}
1283
1284inline double OdGiBaseVectorizerImpl::lineweightToPixels(double lineweight) const
1285{
1287 return view().lineweightToPixels(lineweight);
1288 return lineweightToPixelsOverride(lineweight);
1289}
1290
1291inline double OdGiBaseVectorizerImpl::lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute) const
1292{
1293 return lineweightToPixelsOverride(double(lineweight) / 100.0, bAbsolute);
1294}
1295
1297{
1299 return &m_lwdOverrideStack.last();
1300 return NULL;
1301}
1302
1304{
1306}
1307
1309{
1311}
1312
1314{
1316}
1317
1318#include "TD_PackPop.h"
1319
1320#endif // __OD_GI_BASE_VECTORIZER_IMPL_H_
#define ODA_ASSERT(exp)
Definition: DebugStuff.h:57
OdGiFillType
Definition: Gi.h:42
OdGiRegenType
Definition: GiCommonDraw.h:51
OdGiDeviationType
Definition: GiCommonDraw.h:65
#define GS_TOOLKIT_EXPORT
Definition: GsExport.h:37
@ kVpFrozenLayers
#define ODCOLORREF
Definition: OdPlatform.h:933
#define OD_T(x)
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
int OdInt32
#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
T get() const
T & last()
Definition: OdArray.h:1710
bool isNull() const
Definition: BaseObjectPtr.h:86
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)
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
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
virtual bool enabled() const =0
virtual void disable()=0
virtual void enable()=0
@ kHint2DAttributes
Definition: Gi.h:203
virtual OdRxDictionaryPtr properties()=0
Definition: Gs.h:140
RenderMode
Definition: Gs.h:148
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
void setFlag(OdUInt32 nFlag, bool bSet)