24#ifndef __OD_GI_BASE_VECTORIZER_IMPL_H_
25#define __OD_GI_BASE_VECTORIZER_IMPL_H_
178#ifdef ENABLE_GITRAITSOPTIMIZATION
182 m_awareFlags.reset();
221 void setLinetypesEnabled(
bool bEnable);
229 bool isLinetypesEnabled()
const;
236 void setSkipViewSectioning(
bool bEnable);
244 bool isViewSectioningSkipped()
const;
287 double lineweightToPixels(
double lineweight)
const;
297 bool hasLineweightOverride()
const;
305 bool hasLinestyleOverride()
const;
313 bool isMultiplyLineStyleScale()
const;
427 bool includePerspective =
true)
const;
522 OdDbStub* layerId)
const;
827 kVectorizing = 1 << 0,
828 kDisplaying = 1 << 1,
830 kExtentsComp = 1 << 3
863 inline bool isOutputSuppressed()
const;
873 bool isSupportPlotStyles()
const;
891 double lineweightToPixelsOverride(
OdDb::LineWeight lineweight,
bool bAbsolute =
false)
const;
937 void updateXlineNRayClipper();
941 void onModelToEyeChanged();
983 void swapFlags() { std::swap(m_nAwareFlags, m_nAffectAwareFlags); }
1025 mutable int m_nPenIndex;
1026 mutable OdDbStub* m_psnId;
1030 OdGiStack<OdGiPalettePtr> m_paletteOverrideStack;
1055 kLastOptionFlag = kLinestyleOverride
1062 kSectionableGeomEnabled = kFirstImplFlag << 0,
1063 kMultiplyLinestyleScale = kFirstImplFlag << 1,
1064 kSkipViewSectioning = kFirstImplFlag << 2,
1066 kHiddenImplFlag = kFirstImplFlag << 3,
1067 kLastImplFlag = kHiddenImplFlag
1072template<
typename T,
typename>
1078 operator int()
const;
1080 template <
typename T> T
get()
const {
1085template <
class _DataTy,
class _TraitsTy >
1092 return _DataTy( 0 );
1096template <
class _DataTy,
class _TraitsTy >
1108 dict->
remove( Traits::key() );
1126 bool isNull = val.
isNull();
1129 return isNull ? ( _DataTy )Traits::getNull() : val.identity<
OdRxVariantValue, _DataTy >::type::operator _DataTy();
1142template <
class _DataTy,
class _TraitsTy >
1144 :
public CFxDeviceProperty< _DataTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1148template <
class _DataTy,
class _StorageTy,
class _TraitsTy >
1150 :
public CFxDeviceProperty< _StorageTy, CFxPropertyIntegralTraits< _DataTy, _TraitsTy > >
1160 _StorageTy stor(val);
1165template <
class _DataTy,
class _TraitsTy,
class _PtrTy = OdUInt64 >
1167 :
public CFxDeviceProperty< _PtrTy, CFxPropertyIntegralTraits< _DataTy *, _TraitsTy > >
1178 p =
new _DataTy( def );
1230 CFxRenderHints() : geomDpi( 0 ), colorImgDpi( 0 ), bwImgDpi( 0 ), deviceToMmRatio( 1., 1. )
1299 return &m_lwdOverrideStack.
last();
#define GS_TOOLKIT_EXPORT
#define SETBIT(flags, bit, value)
#define GETBIT(flags, bit)
#define SETBIT_1(flags, bit)
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()
static const OdString key()
OdGeVector2d deviceToMmRatio
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
virtual void setEntityTraitsDataChanged()
OdGiOrthoClipperPtr m_pXlineNRayClipper
OdCmTransparency m_sectForegroundFace
bool isMultiplyLineStyleScale() const
virtual OdGeMatrix3d getWorldToEyeTransform() const
bool isLinetypesEnabled() const
virtual OdGeMatrix3d getEyeToModelTransform() const
int lineweightToPixels(OdDb::LineWeight lineweight) const
virtual void popPaletteOverride()
virtual OdDbStub * viewportObjectId() const
bool isViewSectioningSkipped() const
int vectorizingFlags() const
bool hasLineweightOverride() const
OdGeMatrix3d m_objectToDeviceMatrix
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)
OdGiDrawablePtr m_liveSection
int lineweightToPixelsOverrideInt(OdDb::LineWeight lineweight) const
bool isOutputSuppressed() const
const OdGiLineweightOverride * currentLineweightOverride() const
OdRxObjectPtr m_sectionGeometryMap
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)
bool isSupportPlotStyles() const
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
OdPsPlotStyleData m_plotStyle
ODCOLORREF paletteColor(OdUInt16 colorIndex) const
virtual void affectTraits(const OdGiSubEntityTraitsData *pSource, OdGiSubEntityTraitsData &destination) const
bool useFillPlane() const
virtual OdUInt32 sequenceNumber() const
bool hasLinestyleOverride() const
double lineweightToPixelsOverride(OdDb::LineWeight lineweight, bool bAbsolute=false) const
OdUInt32 m_setAttributesHints
ODRX_USING_HEAP_OPERATORS(OdGiBaseVectorizer)
virtual void setFillPlane(const OdGeVector3d *pNormal=0)
@ kMultiplyLinestyleScale
virtual void xline(const OdGePoint3d &firstPoint, const OdGePoint3d &secondPoint)
void clearLinetypeCache()
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
OdUInt32 awareFlags() const
OdCmTransparency m_sectForegroundEdge
virtual OdGePoint3d getCameraTarget() const
virtual bool layerVisible(OdDbStub *layerId) const
bool hasPaletteOverride() 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
OdRxObjectPtr m_pGsReserved
virtual const OdGiLineweightOverride * currentLineweightOverride() const
virtual bool enabled() const =0
virtual OdRxDictionaryPtr properties()=0
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
bool getFlag(OdUInt32 nFlag) const
void swapAndSet(OdUInt32 nFlag)
void setFlag(OdUInt32 nFlag, bool bSet)
OdUInt32 m_nAffectAwareFlags
void setFlag(OdUInt32 nFlag)