2 #if !defined(_FXEXTENSIONS_H_INCLUDED_)
3 #define _FXEXTENSIONS_H_INCLUDED_
5 #include "FxGeExtension.h"
218 typedef bool(* FxAssertReadEnabledCallback)(
const OdDbObject* pObject );
259 bool bIsDynamic ) = 0;
336 #ifdef FX_TOUCH_VERSION
338 virtual void ResolveCloudReferenceInBackground(
OdDbObjectId idUnresolved,
const OdString& strMasterPath,
const OdString& sreReferencePath ) = 0;
352 virtual bool GetDimensionMeasurementOverride(
const OdDbDimension* pDim,
double& dMeasurement,
const double dDimLFAC )
const;
363 virtual OdString GetEmptyFieldPlaceholder()
const;
366 virtual bool IsAlignedDimensionTextLeaderEnabled()
const;
385 eDSHDrawAsPolygons = 0x1,
416 bool m_bXDataTransformationLocked;
417 bool m_bTransformCurrentContextDataOnly;
418 bool m_bDrawImageFrameEnabled;
419 bool m_bHatchOptimizationEnabled =
false;
420 bool m_bCheckDuplicates =
true;
501 virtual bool NeedDraw(
bool bVisible,
bool bOnEdge,
bool bOnSilg ) = 0;
TOOLKIT_EXPORT void SetFxDbExtension(CFxDbExtension *pExtension)
TOOLKIT_EXPORT int fxDatabasePurgeEx(OdDbDatabase *pDb, int(*pCallback)(OdDbDatabase *, void *), void *pCookie=0)
OdSmartPtr< CFxObjectPE > CFxObjectPEPtr
TOOLKIT_EXPORT CFxDbExtension * GetFxDbExtension()
OdSmartPtr< OdEdCommand > OdEdCommandPtr
OdSmartPtr< OdDbFlipDimensionPE > OdDbFlipDimensionPEPtr
TOOLKIT_EXPORT CFxModelerExtension * GetFxModelerExtension()
double TOOLKIT_EXPORT geGetReasonableTolerance(double dSampleValue, double dTol=1e-10)
OdRxObject OdDbBaseDatabase
TOOLKIT_EXPORT void SetFxModelerExtension(CFxModelerExtension *pExtension)
bool TOOLKIT_EXPORT geConvertToGeObject(const OdDbArc *pDbArc, OdGeCircArc3d &geArc, bool canQueryDbExtents=true)
TOOLKIT_EXPORT OdHandleTree * oddbGetHandleTree(OdDbDatabase *pDb)
bool TOOLKIT_EXPORT geCompareArcs(const OdDbArc *pDbArc1, const OdGeCircArc3d &geArc2, OdGeX::ArcComparisonType type, const OdGeTol &geTol)
bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbLine *pLine, OdGeExtents3d &extents)
TOOLKIT_EXPORT bool fxIsPerformingDbUndo(const OdDbDatabase *pDb)
virtual OdResult GetMPolygonArea(const OdDbMPolygon *pMPolygon, double &area)
virtual OdResult getGeomExtents(const OdDb2dPolyline *pPline, OdGeExtents3d &extents, bool canQueryCache)=0
virtual bool BlockHasSelfReferences(OdDbObjectId idBlock, const OdString &sBlockName)=0
virtual void OnOle2FrameCreate()=0
virtual bool purge(const OdDbDatabase *pDatabase, OdDbObjectIdArray &objectIds) const =0
virtual void SetTransformOnlyCurrentAnnotativeContextData(bool bEnable)
virtual bool AutoloadApp(const OdString appName)=0
unsigned int GetBlockNumRefs(OdDbBlockTableRecord *pRecord)
virtual OdResult getGeomExtents(const OdDbLine *pLine, OdGeExtents3d &extents)=0
virtual void GetPaperProperties(OdDbPlotSettings *pLayout, OdGePoint3dArray &points, OdGePoint3dArray &margins)=0
virtual ~CFxDbExtension()=0
virtual int GetSysVarStorageType(const OdString &Name)
virtual OdResult setPlotPaperSize(OdDbPlotSettingsValidator *pValidator, OdDbPlotSettings *pPlotSet, double paperWidth, double paperHeight) const =0
virtual int GetMPolygonClosestLoopTo(const OdDbMPolygon *pMPolygon, const OdGePoint3d &worldPt)
void EnableHatchOptimization(bool bEnable=true)
virtual void RemoveModificationFilter(CFxDbModificationFilter *pFilter)=0
virtual const OdUInt8Array & GetRecordData(OdDbUndoController *pController, OdUInt32 i) const =0
virtual void FlushGraphics(OdDbDatabase *pDatabase, const OdDbObject *pObject)
virtual bool IsDrawAttDefsEnabled() const =0
FxAssertReadEnabledCallback GetFxAssertReadEnabledCallback()
bool & GetHatchGradientFill(OdDbHatchPtr pHatch)
virtual bool IsDrawImageFrameEnabled() const
virtual PatternQuality CheckPattern(OdHatchPattern *pPattern, double pixelSize)=0
virtual void fxSetToleranceToMLeader(OdDbMLeader *, const OdDbFcf *, int)
virtual double fxGetAttMTextWidth(const OdDbAttributeDefinition *pDef)
virtual int AuditMTextContents(OdString &sMTextContents)
virtual void OnObjectAppended(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
virtual void SetIsInsideXrefReload(bool bInsideReload)=0
virtual int DrawSolidHatchFlags()
virtual void OnObjectErased(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
virtual void fxSetAttMTextWidth(OdDbAttributeDefinition *pDef, double width)
virtual OdResult getGeomExtents(const OdDbArc *pArc, OdGeExtents3d &extents, bool referenceGeometryExtents, bool canQueryCache)=0
bool & GetHatchSolidFill(OdDbHatchPtr pHatch)
void SetCachePointer(const OdDbObject *pObject, void *pCache)
OdDbObjectId fxGetDimstyleChildId(const OdRxClass *pDimClass, const OdDbObjectId &style)
virtual bool IsConstraintsEnabled()=0
OdResult fxGetDimstyleChildData(const OdRxClass *pDimClass, OdDbDimStyleTableRecordPtr &pRec, const OdDbObjectId &style)
OdString GetNextAnonymousRecordName(OdDbDictionary *pDict)
virtual bool IsHighlighted(OdGiCommonDraw *pWd) const =0
double fxZeroDimscale(OdDbDatabase *pDb)
virtual OdResult getGeomExtents(const OdDbSpline *pSpline, OdGeExtents3d &extents, bool referenceGeometryExtents, bool canQueryCache)=0
virtual bool SetConstraintBlockParameter(const OdString &sVarName, const OdString &sPropertyName, const OdResBuf *rb, const OdGeMatrix3d &m=OdGeMatrix3d::kIdentity)=0
virtual bool EvaluateConstraintBlockParameterFromGripPoint(const OdString &sVarName, OdDbBlockGrip *pGrip)=0
OdDbUndoController * GetFxUndoController(OdDbDatabase *pDatabase)
virtual bool & SuppressWriteFileEvents()=0
virtual void OnUndoGroupBegin(OdDbDatabase *pDb)=0
static OdDbBlockTableRecordPtr fxGetDimBlock(OdDbDimension *pDim, bool bCreateIfNotFound=false, OdDbDimensionObjectContextData *ctx=0)
virtual void OnSetPlotDevice(const OdString &sPlotDeviceName)
virtual OdResult getGeomExtents(const OdDbPolyline *pPline, OdGeExtents3d &extents, bool canQueryCache)=0
bool IsPermanentUndoEnabled() const
virtual bool IsTransformOnlyCurrentAnnotativeContextData() const
virtual bool BlockTableCheckAnonymousIdDuplicates() const
virtual void OnObjectAboutToDestroy(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
virtual void InitOle2FrameCount()=0
virtual void OnObjectModified(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
bool IsUndoingBlock(const OdDbDatabase *pDb)
virtual void AddModificationFilter(CFxDbModificationFilter *pFilter)=0
virtual void ExecuteInMainThread(std::function< void() > f)
virtual OdResult getGeomExtents(const OdDbXline *pXline, OdGeExtents3d &extents, bool referenceGeometryExtents)=0
virtual bool IsPDFUnderlayEnabled()=0
bool IsXDataTransformationLocked()
void EnablePermanentUndo(bool bEnable)
virtual bool GetUndoList(OdDbDatabase *pDb, OdStringArray &commands, bool bRedo=false)
void SetFxAssertReadEnabledCallback(FxAssertReadEnabledCallback pCallback)
virtual void OnObjectReappended(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
virtual OdResBufPtr GetConstraintBlockParameter(const OdString &sVarName, const OdString &sPropertyName, const OdGeMatrix3d &m=OdGeMatrix3d::kIdentity)=0
virtual OdResult getGeomExtents(const OdDbEllipse *pEllipse, OdGeExtents3d &extents, bool referenceGeometryExtents, bool canQueryCache)=0
virtual OdResult setStyleSheet(OdDbPlotSettingsValidator *pValidator, OdDbPlotSettings *pPlotSet, const OdString &styleSheetName) const =0
virtual OdDbFcfPtr fxGetToleranceFromMLeader(OdDbMLeader *)
virtual OdResult getGeomExtents(const OdDbEntity *pEntity, OdGeExtents3d &extents, bool referenceGeometryExtents, bool canQueryCache)=0
virtual bool IsInsideXrefReload()=0
virtual OdResult getGeomExtents(const OdDbBlockReference *pBlockRef, OdGeExtents3d &extents, bool referenceGeometryExtents, bool canQueryCache)=0
virtual bool intersectWith(const OdDbSpline *pThis, const OdGeCurve3d *intersectingCurve, int &intn, OdGePoint3dArray &IntPtArr, const OdGeTol &tol) const =0
virtual bool IsDynamicDimensionVisibleOnLoading(const OdDbDimension *pDimension)=0
virtual int AddIdToLastUsedDimStyleIdArray(OdDbDimStyleTable *pTable, OdDbObjectId &id)
void AddAnonymousGroup(OdDbDictionary *pDestDict, OdDbGroup *pGroup, const OdString &sName)
void MoveXDataHidden(OdDbObject *pObj, const OdGePoint3d &ptGripPoint, const OdGeVector3d &offset)
virtual void fire_layoutToBeDeactivated(OdDbLayoutManagerReactor *pReactor, const OdString &s, const OdDbObjectId &id) const =0
virtual void fire_layoutToBeActivated(OdDbLayoutManagerReactor *pReactor, const OdString &s, const OdDbObjectId &id) const =0
virtual bool XrefHasCircularReference(OdDbDatabase *pHostDb, OdDbBlockTableRecord *pBTR)=0
void applyColor(OdDbEntityPtr pThis, OdDbEntityPtr pOther)
virtual OdUInt32 GetRecordCount(OdDbUndoController *pController) const =0
virtual void HighlightEntity(const OdDbObject *pObject, bool bDoIt, const OdDbFullSubentPath *pPath)=0
void MoveXDataHidden(OdDbObject *pObj, const OdGePoint3dArray &arrStretchWindow, const OdGeMatrix3d &mToPlane, const OdGeVector3d &offset)
virtual int GetLastUsedDimStyleIdArray(OdDbDimStyleTable *pTable, OdHardPtrIdArray &out)
virtual const OdGePoint2dArray & GetBoundaryInverted() const =0
virtual OdDbObjectIdArray ApplyModificationFilters(const OdDbObjectIdArray &objectIds)=0
virtual OdString GetPDFFontsPath()=0
virtual void GetHatchPatternSize(const OdDbHatch *pHatch, double &dPatternSize, double &dMaxDashLength, bool &bCanUseSolidOptimization)
void LockXDataTransformation()
virtual OdResult setPlotViewId(OdDbPlotSettingsValidator *pValidator, OdDbPlotSettings *pPlotSet, const OdDbObjectId &id) const =0
OdDbHatchPtr CreateHatchFromBlkRef(OdDbBlockReferencePtr pObj)
virtual void OnUndoGroupEnd(OdDbDatabase *pDb)=0
virtual bool IsMechanical() const
virtual OdGiRasterImagePtr GetThumbnailImage(OdDbDatabase *pDb, int width, int height)=0
bool IsHatchOptimizationEnabled() const
void SetFxUndoReactor(OdDbDatabase *pDatabase, CFxDbUndoReactor *pReactor)
virtual OdResult AuditDualDimPlaceholder(OdDbDatabase *pDb, OdDbAuditInfo *pInfo)
virtual bool GetSystemVariableRange(OdResBufPtr &Min, OdResBufPtr &Max, const OdString &Name)
void UnlockXDataTransformation()
virtual void EnableDrawImageFrame(bool bEnable)
virtual void SetBlockTableCheckAnonymousIdDuplicates(bool check)
virtual OdResult getGeomExtents(const OdDbRay *pRay, OdGeExtents3d &extents, bool referenceGeometryExtents)=0
virtual void fxRecomputeMLeader(OdDbMLeader *)
FxBlockWorldDrawCallback GetFxBlockWorldDrawCallback()
void SetDrawModes(const OdDbObject *pObject, OdUInt32 iDrawModes)
virtual void ConstraintAuditDatabase(OdDbDatabase *pDb, OdDbAuditInfo *pInfo)=0
void SetFxBlockWorldDrawCallback(FxBlockWorldDrawCallback pCallback)
unsigned int GetBlockChildCount(OdDbBlockTableRecord *pRecord)
virtual OdGsViewPtr GetGsView(OdDbDatabase *pDb, bool isModelSpace)=0
virtual double GetMPolygonPerimeter(const OdDbMPolygon *pMPolygon)
virtual OdResult getGeomExtents(const OdDbCircle *pCircle, OdGeExtents3d &extents, bool canQueryCache)=0
virtual bool DrawDynamicConstraint(OdGiViewportDraw *pVd, const OdDbDimension *pOrigDim)=0
OdDbObjectId fxGetDimstyleParentId(const OdDbObjectId &childStyle)
virtual int GetSupportedAnnotationScales(OdDbObject *pObject, OdArray< OdString > &scales)
void SetDrawOrder(const OdDbObject *pObject, int iDrawOrder)
OdUInt32 GetDrawModes(const OdDbObject *pObject)
virtual bool IsConstrainedDimension(const OdDbDimension *pDimension)=0
virtual OdResult GetSimplifiedExtents(const OdDbEntity *pEnt, OdGeExtents3d &extents)=0
static void StaticExecuteInMainThread(std::function< void() > f)
void * GetCachePointer(const OdDbObject *pObject)
virtual void SetBoundaryInverted(OdUInt32 numoints, const OdGePoint2d *pPoints)=0
virtual void DrawDimensionalConstraintIcon(OdGiViewportDraw *pVd, const OdDbBlockTableRecord *pBTR, const OdDbDimension *pDimension, bool bIsDynamic)=0
virtual OdGiRasterImagePtr GetThumbnailImage2(OdDbDatabase *pDb, int width, int height)=0
virtual OdString & ActualWriteFileName()=0
virtual void OnObjectUnappended(OdDbDatabase *pDatabase, const OdDbObject *pObject)=0
virtual bool getFilename(const OdDbDatabase *pDatabase, OdString &result) const =0
virtual OdResult setMargins(OdDbPlotSettingsValidator *pValidator, OdDbPlotSettings *pPlotSet, double leftMargin, double topMargin, double rightMargin, double bottomMargin) const =0
virtual bool DrawSolidHatch(OdDbHatchImpl *pImpl, OdGiContextForDbDatabase *pGiContext, OdGiGeometry &geom)
int GetDrawOrder(const OdDbObject *pObject)
virtual bool OnCOMObjectUpdate(const OdDbObject *pDbObj)=0
virtual OdResult getGeomExtents(const OdDb3dPolyline *pPline, OdGeExtents3d &extents, bool canQueryCache)=0
virtual void fxSetIgnoreTableMergeLines(OdDbTable *pTable, bool bIgnore)
virtual bool countHardReferences(const OdDbDatabase *pDatabase, const OdDbObjectIdArray &objectIds, OdUInt32 *counts) const =0
virtual int Ole2FrameCount()=0
OdResult TranslateEntity(OdDbEntity *pObj, const OdGeVector3d &offset)
virtual void EnableDrawAttDefs(bool bEnable)=0
OdDbUndoController * GetFxRedoController(OdDbDatabase *pDatabase)
virtual ~CFxDbModificationFilter()
virtual OdDbObjectIdArray FilterObjects(const OdDbObjectIdArray &objectIds) const =0
CFxDbModificationFilter()
virtual void redoWriteStarted(OdDbDatabase *pDatabase, OdDbDwgFiler *pFiler)=0
virtual void undoWriteStarted(OdDbDatabase *pDatabase, OdDbDwgFiler *pFiler)=0
virtual void undoWriteFinished(OdDbDatabase *pDatabase, OdDbDwgFiler *pFiler)=0
virtual void redoWriteFinished(OdDbDatabase *pDatabase, OdDbDwgFiler *pFiler)=0
virtual int terminate_acis(int level)
virtual OdResult generateCurve(EDGE *pEdge, OdGeCurve3d *&o_pCurve)=0
virtual OdResult generateEDGES(const OdRxObjectPtr &pIt, EDGE *&edge, bool negative=false)=0
virtual OdResult flatShot(const OdDb3dSolidPtr pBody, const OdGePoint3d &eye_pos, const OdGePoint3d &target_pos, bool bPersepcitveProjection, OdDbEntityPtrArray &result)
virtual void applyColor(OdModelerGeometry *p, OdCmColor color)=0
virtual OdResult flatShot(const OdDbSurfacePtr pSurface, const OdGePoint3d &eye_pos, const OdGePoint3d &target_pos, bool bPersepcitveProjection, OdDbEntityPtrArray &result)
OdModelerGeometryPtr GetModeler(const OdDbRegionPtr pRegion)
virtual void setBodyFor(ENTITY_LIST *pNewFile, AfTypeVer typeVer, OdDbRegionPtr &offsetregion)=0
virtual bool getBodyTransform(const BODY *body, OdGeMatrix3d &mx)=0
virtual void applyColor(OdDbEntityPtr pThis, OdDbEntityPtr pOther)
virtual int initialize_acis()
virtual BODY * getBodyFrom(const OdDbSurface *pSurface)=0
OdModelerGeometryPtr GetModeler(const OdDbSurfacePtr pSurface)
virtual bool separateRegion(OdDbRegionPtr i_region, OdRxObjectPtrArray &o_entitySet)
virtual OdResult drawSilhouettes(OdGiViewportDraw *pViewportDraw, OdDbEntityPtr pEntity, CFxSilhouetteVisiblityCallback *pCallback=0)
virtual void * getSpaBodyEntity(OdDbEntityPtr pEnt)=0
virtual OdResult drawEdges(OdGiViewportDraw *pViewportDraw, OdDbEntityPtr pEntity)
virtual BODY * getBodyFrom(const OdDb3dSolid *pSolid)=0
virtual OdResult rayTest2(OdDbEntityPtr i_pObj, const OdGePoint3d &rayBasePoint, const OdGeVector3d &rayDir, double rayRadius, OdArray< OdDbSubentId > &subEntIds, OdGeDoubleArray ¶meters)=0
virtual OdResult getSubentities(OdDb3dSolidPtr i_pSolid, OdDb::SubentType i_type, OdDbFullSubentPathArray &o_subentPaths)
virtual BODY * getBodyFrom(const OdDbRegion *pRegion)=0
virtual bool getCentroid(OdDbRegionPtr i_region, OdGePoint2d &o_center)
virtual OdResult generateWire(const OdDbEntity *pPathCurve, BODY *&pBody)=0
virtual ~CFxModelerExtension()=0
OdModelerGeometryPtr GetModeler(const OdDb3dSolidPtr pBody)
virtual OdResult generateEDGES(const OdRxObjectPtrArray &curveSegments, ENTITY_LIST &edges, OdRxObjectPtr pPar=0)=0
virtual void * getBodyFromEntity(OdDbEntityPtr i_pEnt)=0
virtual OdResult getWiresFromRegion(OdDbRegionPtr pR, std::vector< BODY * > &OuterWires, std::vector< std::vector< BODY * >> &IslandsToEntity)=0
virtual void StartModellerInThread()=0
virtual OdResult drawShells(OdGiViewportDraw *pViewportDraw, OdDbEntityPtr pEntity)
virtual OdResult flatShotHL(const OdDbEntityPtrArray &input, const OdGePoint3d &eye_pos, const OdGePoint3d &target_pos, bool bPersepcitveProjection, OdArray< HLData > &output)
ODRX_DECLARE_MEMBERS(CFxObjectPE)
virtual void setDatabaseDefaults(OdDbEntity *pThis, OdDbDatabase *pDb, bool bSubEnt)=0
virtual ~CFxSilhouetteVisiblityCallback()
virtual bool NeedDraw(bool bVisible, bool bOnEdge, bool bOnSilg)=0
virtual void getFlipPoints(OdDbDimension *pDimension, OdGePoint3dArray &flip_points)
virtual void getFlipPoints(OdDbDimension *pDimension, OdDbDimensionObjectContextData *ctx, OdGePoint3dArray &flip_points)=0
ODRX_DECLARE_MEMBERS(OdDbFlipDimensionPE)
ODRX_DECLARE_MEMBERS(OdDbFlipDimensionPELoader)
virtual void getFlipPoints(OdDbDimension *pDimension, OdDbDimensionObjectContextData *ctx, OdGePoint3dArray &flip_points)
virtual void getFlipPoints(OdDbDimension *pDimension, OdGePoint3dArray &flip_points)
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
GLint GLenum GLsizei width
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
GLuint GLsizei GLsizei GLint GLenum * type
GLint GLenum GLsizei GLsizei height
OdArray< HLOriginal > _original