CFx SDK Documentation  2022 SP0
FxDbExtension.h
Go to the documentation of this file.
1 //FELIX_CHANGE_BEGIN
2 #if !defined(_FXEXTENSIONS_H_INCLUDED_)
3 #define _FXEXTENSIONS_H_INCLUDED_
4 
5 #include "FxGeExtension.h"
6 
7 #include "OdaCommon.h"
8 
9 #include "TD_PackPush.h"
10 #include "DbExport.h"
11 #include "DbEvalWatchers.h"
12 #include "DbDimension.h"
13 #include "Db3dSolid.h"
14 #include <ModelerGeometry.h>
15 #include "Gi/GiRasterImage.h"
16 #include "DbBlockReference.h"
17 #include "Gs/Gs.h"
18 #include "DbMLeader.h"
19 #include "DbFcf.h"
20 #include "DbSpline.h"
21 #include "DbEllipse.h"
22 #include <DbMPolygon.h>
23 
24 #include <vector>
25 #include <list>
26 #include <functional>
27 
28 class OdGiLinetyper;
29 class OdRxDynamicLinker;
31 class OdEdCommandStack;
32 class OdEdCommandContext;
33 
34 class OdEdCommand;
36 
37 class OdDbPlotSettings;
39 class OdDbBaseDatabasePE;
40 
41 class OdDbLine;
42 class OdDbXline;
43 class OdDbRay;
44 class OdDbArc;
45 class OdDbCircle;
46 class OdDbEllipse;
47 class OdDbPolyline;
48 class OdDb2dPolyline;
49 class OdDb3dPolyline;
50 class OdDbSpline;
51 class OdGeExtents3d;
52 class OdDbGroup;
53 class OdDbFcf;
54 class OdDbMText;
55 class OdDbLeader;
56 class OdDbTable;
57 class OdDbMPolygon;
58 
59 class OdDbEntity;
60 class OdDbBlockReference;
61 class OdDbRasterImageDef;
62 class OdModelerGeometry;
63 
64 class OdGeCircArc3d;
65 class OdGeEllipArc3d;
68 
69 class OdDbBlockGrip;
71 class ENTITY_LIST;
72 class EDGE;
73 class SPAposition;
74 class SPApar_pos;
75 class SPAvector;
76 class SPAunit_vector;
77 class SPApar_vec;
78 class SPAunit_vector;
79 class SPAtransf;
80 class OdGeMatrix3d;
81 class BODY;
82 
83 class OdDbHatchImpl;
85 
86 // The special filter for removing extra entities from the
87 // selection set before transformations
89 {
90 public:
93  virtual OdDbObjectIdArray FilterObjects( const OdDbObjectIdArray& objectIds ) const = 0;
94 
95 };
96 
98 {
99 public:
100  virtual void undoWriteStarted( OdDbDatabase* pDatabase, OdDbDwgFiler* pFiler ) = 0;
101  virtual void undoWriteFinished( OdDbDatabase* pDatabase, OdDbDwgFiler* pFiler ) = 0;
102  virtual void redoWriteStarted( OdDbDatabase* pDatabase, OdDbDwgFiler* pFiler ) = 0;
103  virtual void redoWriteFinished( OdDbDatabase* pDatabase, OdDbDwgFiler* pFiler ) = 0;
104 };
105 
107 {
108 public:
109  virtual ~CFxDbExtension() = 0;
110 
111 public:
112  virtual bool getFilename(const OdDbDatabase* pDatabase, OdString& result) const = 0;
113  virtual bool purge(const OdDbDatabase* pDatabase,
114  OdDbObjectIdArray& objectIds) const = 0;
115  virtual bool countHardReferences(const OdDbDatabase* pDatabase,
116  const OdDbObjectIdArray& objectIds,
117  OdUInt32* counts) const = 0;
118 
119  virtual void fire_layoutToBeActivated(OdDbLayoutManagerReactor* pReactor, const OdString& s, const OdDbObjectId& id) const = 0;
120  virtual void fire_layoutToBeDeactivated(OdDbLayoutManagerReactor* pReactor, const OdString& s, const OdDbObjectId& id) const = 0;
121 
122  virtual OdResult setPlotViewId(OdDbPlotSettingsValidator* pValidator, OdDbPlotSettings* pPlotSet, const OdDbObjectId& id) const = 0;
123  virtual OdResult setPlotPaperSize(OdDbPlotSettingsValidator* pValidator, OdDbPlotSettings* pPlotSet, double paperWidth, double paperHeight) const = 0;
124  virtual OdResult setMargins(OdDbPlotSettingsValidator* pValidator, OdDbPlotSettings* pPlotSet, double leftMargin, double topMargin, double rightMargin, double bottomMargin) const = 0;
125  //29524: need this functions to keep not existing plot style in plot settings
126  virtual OdResult setStyleSheet(OdDbPlotSettingsValidator* pValidator, OdDbPlotSettings* pPlotSet, const OdString& styleSheetName) const = 0;
127 
128  virtual void OnObjectAboutToDestroy( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
129  virtual void OnObjectModified( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
130  virtual void OnObjectAppended( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
131  virtual void OnObjectUnappended( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
132  virtual void OnObjectReappended( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
133  virtual void OnObjectErased( OdDbDatabase* pDatabase, const OdDbObject* pObject ) = 0;
134 
135  virtual void FlushGraphics( OdDbDatabase* pDatabase, const OdDbObject* pObject );
136 
137  virtual bool intersectWith( const OdDbSpline* pThis, const OdGeCurve3d* intersectingCurve, int& intn, OdGePoint3dArray& IntPtArr, const OdGeTol& tol ) const = 0;
138 
139  virtual OdResult getGeomExtents(const OdDbLine* pLine,OdGeExtents3d& extents) = 0;
140  virtual OdResult getGeomExtents(const OdDbXline* pXline,OdGeExtents3d& extents,bool referenceGeometryExtents) = 0;
141  virtual OdResult getGeomExtents(const OdDbRay* pRay,OdGeExtents3d& extents,bool referenceGeometryExtents) = 0;
142  virtual OdResult getGeomExtents(const OdDbArc* pArc,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache) = 0;
143  virtual OdResult getGeomExtents(const OdDbCircle* pCircle,OdGeExtents3d& extents,bool canQueryCache) = 0;
144  virtual OdResult getGeomExtents(const OdDbEllipse* pEllipse,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache) = 0;
145  virtual OdResult getGeomExtents(const OdDbPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache) = 0;
146  virtual OdResult getGeomExtents(const OdDb2dPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache) = 0;
147  virtual OdResult getGeomExtents(const OdDb3dPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache) = 0;
148  virtual OdResult getGeomExtents(const OdDbSpline* pSpline,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache) = 0;
149 
150  virtual OdResult getGeomExtents(const OdDbBlockReference* pBlockRef,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache) = 0;
151 
152  virtual OdResult getGeomExtents(const OdDbEntity* pEntity,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache) = 0;
153 
154  virtual OdResult GetSimplifiedExtents(const OdDbEntity* pEnt,OdGeExtents3d& extents) = 0;
155 
156  virtual bool XrefHasCircularReference( OdDbDatabase* pHostDb, OdDbBlockTableRecord* pBTR ) = 0;
157  virtual bool BlockHasSelfReferences( OdDbObjectId idBlock, const OdString& sBlockName ) = 0;
158 
159  virtual bool& SuppressWriteFileEvents() = 0;
161 
162  virtual void SetIsInsideXrefReload( bool bInsideReload ) = 0;
163  virtual bool IsInsideXrefReload() = 0;
164 
165  virtual void OnOle2FrameCreate() = 0;
166  virtual void InitOle2FrameCount() = 0;
167  virtual int Ole2FrameCount() = 0;
168 
169  virtual OdString GetPDFFontsPath() = 0;
170  virtual bool IsPDFUnderlayEnabled() = 0;
171 
174 
175  virtual void OnUndoGroupBegin( OdDbDatabase* pDb ) = 0;
176  virtual void OnUndoGroupEnd( OdDbDatabase* pDb ) = 0;
177 
178  virtual OdGsViewPtr GetGsView( OdDbDatabase* pDb, bool isModelSpace ) = 0;
179 
180  //FELIX_CHANGE_BEGIN #03097
183  //FELIX_CHANGE_END #03097
184 
185  virtual void HighlightEntity( const OdDbObject* pObject, bool bDoIt, const OdDbFullSubentPath* pPath ) = 0;
186 
187  virtual const OdUInt8Array& GetRecordData( OdDbUndoController* pController , OdUInt32 i ) const = 0;
188 
189  virtual OdUInt32 GetRecordCount( OdDbUndoController* pController ) const = 0;
190 
191  virtual void SetBoundaryInverted( OdUInt32 numoints, const OdGePoint2d* pPoints ) = 0;
192  virtual const OdGePoint2dArray& GetBoundaryInverted() const = 0;
193 public:
194  virtual double fxGetAttMTextWidth( const OdDbAttributeDefinition* pDef );
195  virtual void fxSetAttMTextWidth( OdDbAttributeDefinition* pDef, double width );
196  virtual int AuditMTextContents( OdString& sMTextContents );
197 
198  virtual void fxSetIgnoreTableMergeLines( OdDbTable* pTable, bool bIgnore );
199 
200 
201  virtual void SetTransformOnlyCurrentAnnotativeContextData( bool bEnable);
204 
205  void SetCachePointer( const OdDbObject* pObject, void* pCache );
206  void* GetCachePointer( const OdDbObject* pObject );
207 
208  void SetDrawOrder( const OdDbObject* pObject, int iDrawOrder );
209  int GetDrawOrder( const OdDbObject* pObject );
210 
211  void SetDrawModes( const OdDbObject* pObject, OdUInt32 iDrawModes );
212  OdUInt32 GetDrawModes( const OdDbObject* pObject );
213 
214  // no need to support AcRx anymore
215  //void OdDbStub_setAcRxPtr( void *pOdDbStub, void *pArxPtr );
216  //void* OdDbStub_getArxPtr( void* pOdDbStub );
217 
218  typedef bool(* FxAssertReadEnabledCallback)( const OdDbObject* pObject );
219 
220  void SetFxAssertReadEnabledCallback( FxAssertReadEnabledCallback pCallback );
221  FxAssertReadEnabledCallback GetFxAssertReadEnabledCallback();
222 
223  OdDbObjectId fxGetDimstyleChildId( const OdRxClass* pDimClass, const OdDbObjectId& style );
226 
227  void applyColor( OdDbEntityPtr pThis, OdDbEntityPtr pOther );
228 
229  void AddAnonymousGroup( OdDbDictionary* pDestDict, OdDbGroup* pGroup, const OdString& sName );
231 
232  // Modifies 1011 group of object xdata whithout notification. Called from STRETCH and GRIP_EDIT commands
233  void MoveXDataHidden( OdDbObject* pObj, const OdGePoint3dArray& arrStretchWindow, const OdGeMatrix3d& mToPlane, const OdGeVector3d& offset );
234  void MoveXDataHidden( OdDbObject* pObj, const OdGePoint3d& ptGripPoint, const OdGeVector3d& offset );
235 
236  // Transfrom entity without calling xDataTransformBy.
238 
242 
243  typedef void(* FxBlockWorldDrawCallback)( const OdDbBlockTableRecord* pObject, OdGiWorldDraw* pWd );
244  void SetFxBlockWorldDrawCallback( FxBlockWorldDrawCallback pCallback );
245  FxBlockWorldDrawCallback GetFxBlockWorldDrawCallback();
246 
247  bool IsUndoingBlock( const OdDbDatabase* pDb );
248 
250 
251  double fxZeroDimscale( OdDbDatabase* pDb );
252 
253  static OdDbBlockTableRecordPtr fxGetDimBlock(OdDbDimension* pDim, bool bCreateIfNotFound = false, OdDbDimensionObjectContextData* ctx = 0);
254 
255  // Displays the special icon for constrained dimension
257  const OdDbBlockTableRecord* pBTR,
258  const OdDbDimension* pDimension,
259  bool bIsDynamic ) = 0;
260 
261  // Returns true if dimensional constraint is annotational
262  virtual bool IsConstrainedDimension( const OdDbDimension* pDimension ) = 0;
263 
264  // Dynamic DC viewportDraw override
265  virtual bool DrawDynamicConstraint( OdGiViewportDraw* pVd, const OdDbDimension* pOrigDim ) = 0;
266 
267  // Audit for constraints
268  virtual void ConstraintAuditDatabase( OdDbDatabase* pDb, OdDbAuditInfo* pInfo ) = 0;
269 
270  // Audit for incorrect DIMAPOST value ("<>" instead of "[]")
272 
273  // Returns true if the constraint module is loaded
274  virtual bool IsConstraintsEnabled() = 0;
275 
276  // Returns the property value from the block constraint parameter
277  virtual OdResBufPtr GetConstraintBlockParameter( const OdString& sVarName, const OdString& sPropertyName, const OdGeMatrix3d& m = OdGeMatrix3d::kIdentity ) = 0;
278 
279  // Sets the new property value to the block constraint parameter
280  virtual bool SetConstraintBlockParameter( const OdString& sVarName, const OdString& sPropertyName, const OdResBuf* rb, const OdGeMatrix3d& m = OdGeMatrix3d::kIdentity ) = 0;
281 
282  // Evaluate the constraint block parameter by the grip editing
283  virtual bool EvaluateConstraintBlockParameterFromGripPoint( const OdString& sVarName, OdDbBlockGrip* pGrip ) = 0;
284 
285  virtual bool IsDynamicDimensionVisibleOnLoading( const OdDbDimension* pDimension ) = 0;
286 
287  virtual void EnableDrawAttDefs( bool bEnable ) = 0;
288  virtual bool IsDrawAttDefsEnabled() const = 0;
289 
290  virtual void EnableDrawImageFrame( bool bEnable );
291  virtual bool IsDrawImageFrameEnabled() const;
292 
294  virtual void fxSetToleranceToMLeader( OdDbMLeader*, const OdDbFcf*, int );
295  virtual void fxRecomputeMLeader( OdDbMLeader* );
296 
297  virtual bool GetUndoList( OdDbDatabase* pDb, OdStringArray& commands, bool bRedo = false );
298 
301 
303  {
304  kSolid = 0x0,
307  kFullyRecognizable
308  };
309 
310  virtual PatternQuality CheckPattern( OdHatchPattern* pPattern, double pixelSize ) = 0;
311 
312  void EnableHatchOptimization( bool bEnable = true );
313 
315 
316  void EnablePermanentUndo( bool bEnable );
317 
319 
321 
323 
324  void SetFxUndoReactor( OdDbDatabase* pDatabase, CFxDbUndoReactor* pReactor );
325 
326  unsigned int GetBlockChildCount( OdDbBlockTableRecord* pRecord );
327 
328  unsigned int GetBlockNumRefs( OdDbBlockTableRecord* pRecord );
329 
330  virtual void GetPaperProperties( OdDbPlotSettings* pLayout, OdGePoint3dArray& points, OdGePoint3dArray& margins ) = 0;
331 
332  virtual void AddModificationFilter( CFxDbModificationFilter* pFilter ) = 0;
333  virtual void RemoveModificationFilter( CFxDbModificationFilter* pFilter ) = 0;
335 
336 #ifdef FX_TOUCH_VERSION
337  void ResetImageDefFoundFlag( OdDbRasterImageDef* pDef );
338  virtual void ResolveCloudReferenceInBackground( OdDbObjectId idUnresolved, const OdString& strMasterPath, const OdString& sreReferencePath ) = 0;
339 #endif
340 
341 #ifdef XENON
342  // XENON-440
343  virtual void AssertThreadIsCorrect(OdDbObjectId, OdDb::OpenMode) const;
344 
345  // XENON-13388 etc.
346  void DrawMTextBackground( OdDbMText*, OdGiWorldDraw* pWd ) const;
347 
348  // XENON-13248
349  void GetOdDbLeaderPoints( OdDbLeader* pLeader, OdGiCommonDraw* pWd, OdGePoint3dArray& pts ) const;
350 
351  // A callback for overriding dimension measurements for broken-view dimensions.
352  virtual bool GetDimensionMeasurementOverride( const OdDbDimension* pDim, double& dMeasurement, const double dDimLFAC ) const;
353 
354  // XENON-18942: a callback for handling singular cases of 2-line angular dimension. Returns false by default.
355  virtual bool IsSingular2LineAngularDim( const OdGePoint3d& line1Start, const OdGePoint3d& line1End,
356  const OdGePoint3d& line2Start, const OdGePoint3d& line2End,
357  const OdGeVector3d& vNormal, OdGePoint3d* pptSingularCenter = 0 ) const;
358 
359  // Copy fields in extension dictionary. Supports non-DBRO objects and may be used in trackers/previews.
360  virtual void CopyFields( OdDbObject* pSrc, OdDbObject* pDst ) const;
361 
362  // Returns DbField placeholder for empty and non-evaluated fields (typically "####" or "----")
363  virtual OdString GetEmptyFieldPlaceholder() const;
364 
365  //XENON-6368: suppress aligned dimension leader in some cases
366  virtual bool IsAlignedDimensionTextLeaderEnabled() const;
367 
368  //FELIX_CHANGE_BEGIN
369  //Get holes indexes from total number of hatch loops
370  bool getHoleLoopsIndexes(OdDbHatchPtr pHatch, OdGeIntArray& holes) const;
371  //FELIX_CHANGE_END
372 #endif
373 
374  // Check if any highlight draw decoration is required
375  // TODO: support highlight method by GS
376  virtual bool IsHighlighted( OdGiCommonDraw* pWd ) const = 0;
377 
378  virtual bool OnCOMObjectUpdate( const OdDbObject* pDbObj ) = 0;
379  virtual bool AutoloadApp( const OdString appName) = 0;
380 
381  virtual bool DrawSolidHatch( OdDbHatchImpl* pImpl, OdGiContextForDbDatabase* pGiContext, OdGiGeometry& geom );
382  enum
383  {
384  eDSHNone = 0x0,
385  eDSHDrawAsPolygons = 0x1,
386  };
387  virtual int DrawSolidHatchFlags();
388 
389  virtual void GetHatchPatternSize( const OdDbHatch* pHatch, double& dPatternSize, double& dMaxDashLength, bool& bCanUseSolidOptimization );
390 
391  static void StaticExecuteInMainThread( std::function< void() > f );
392  virtual void ExecuteInMainThread( std::function< void() > f );
393 
394  virtual bool IsMechanical() const;
395 
396 public:
397  // Missing methods for MPolygon
398  virtual double GetMPolygonPerimeter( const OdDbMPolygon* pMPolygon );
399  virtual int GetMPolygonClosestLoopTo( const OdDbMPolygon* pMPolygon, const OdGePoint3d& worldPt );
400  virtual OdResult GetMPolygonArea(const OdDbMPolygon* pMPolygon, double & area);
401 
402 //SystemVariable collection
403 public:
404  virtual bool GetSystemVariableRange( OdResBufPtr &Min, OdResBufPtr &Max, const OdString& Name );
405  virtual int GetSysVarStorageType( const OdString& Name );
406  virtual void OnSetPlotDevice( const OdString& sPlotDeviceName );
407 
408 public:
410  virtual void SetBlockTableCheckAnonymousIdDuplicates( bool check );
411 
412 protected:
414 
415 private:
416  bool m_bXDataTransformationLocked;
417  bool m_bTransformCurrentContextDataOnly;
418  bool m_bDrawImageFrameEnabled;
419  bool m_bHatchOptimizationEnabled = false;
420  bool m_bCheckDuplicates = true;
421 };
422 
423 class OdHandleTree;
425 
427 
428 // XENON Garbage collection.
429 TOOLKIT_EXPORT int fxDatabasePurgeEx( OdDbDatabase* pDb, int( *pCallback )( OdDbDatabase*, void* ), void* pCookie = 0 );
430 
433 
435 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbXline* pXline,OdGeExtents3d& extents,bool referenceGeometryExtents);
436 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbRay* pRay,OdGeExtents3d& extents,bool referenceGeometryExtents);
437 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbArc* pArc,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache);
438 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbCircle* pCircle,OdGeExtents3d& extents,bool canQueryCache);
439 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbEllipse* pEllipse,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache);
440 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache);
441 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDb2dPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache);
442 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDb3dPolyline* pPline,OdGeExtents3d& extents,bool canQueryCache);
443 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbSpline* pSpline,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache);
444 
445 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbBlockReference* pBlockRef,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache);
446 
447 bool TOOLKIT_EXPORT geGetObjectExtents(const OdDbEntity* pEntity,OdGeExtents3d& extents,bool referenceGeometryExtents,bool canQueryCache);
448 
449 bool TOOLKIT_EXPORT geCompareArcs(const OdDbArc* pDbArc1,const OdGeCircArc3d& geArc2,OdGeX::ArcComparisonType type,const OdGeTol& geTol);
450 bool TOOLKIT_EXPORT geCompareArcs(const OdDbEllipse* pDbArc1,const OdGeEllipArc3d& geArc2,OdGeX::ArcComparisonType type,const OdGeTol& geTol);
451 
452 bool TOOLKIT_EXPORT geConvertToGeObject(const OdDbArc* pDbArc,OdGeCircArc3d& geArc,bool canQueryDbExtents = true);
454 bool TOOLKIT_EXPORT geConvertToGeObject(const OdDbEllipse* ellipse,OdGeEllipArc3d& geEllipse,bool canQueryDbExtents = true);
455 
456 // returns tolerance adjusted for FPU comparison of values like dSampleValue
457 // returns original dTol value for small enough dSampleValue.
458 double TOOLKIT_EXPORT geGetReasonableTolerance(double dSampleValue, double dTol = 1e-10 );
459 
461 {
462 public:
464 // Issues 27388, 27702, 27428
465 // These function retrieve the flip points by invoking
466 // OdDimRecomputor::buildDimension
467  virtual void getFlipPoints(
468  OdDbDimension* pDimension,
469  OdGePoint3dArray &flip_points);
470 protected:
471  virtual void getFlipPoints(
472  OdDbDimension* pDimension,
474  OdGePoint3dArray &flip_points) = 0;
475 };
477 
479 {
480 public:
482  virtual void getFlipPoints(
483  OdDbDimension* pDimension,
484  OdGePoint3dArray &flip_points);
485 protected:
486  virtual void getFlipPoints(
487  OdDbDimension* pDimension,
489  OdGePoint3dArray &flip_points);
490 private:
491  OdDbFlipDimensionPEPtr getRecomputer(OdDbDimension* pDim);
492 };
493 
494 //---------------------------------------------------------------------------------------------------------------------
495 
497 {
498 public:
500 
501  virtual bool NeedDraw( bool bVisible, bool bOnEdge, bool bOnSilg ) = 0;
502 
503 };
504 
506 {
507 public:
508  virtual ~CFxModelerExtension() = 0;
509 
510  //FELIX_CHANGE_BEGIN
511  virtual OdResult generateEDGES( const OdRxObjectPtrArray& curveSegments, ENTITY_LIST &edges, OdRxObjectPtr pPar = 0 ) = 0;
512 
513  virtual OdResult generateEDGES( const OdRxObjectPtr& pIt, EDGE *&edge, bool negative = false ) = 0;
514 
515  virtual OdResult generateWire( const OdDbEntity* pPathCurve, BODY *&pBody ) = 0;
516 
517  virtual bool getBodyTransform( const BODY *body, OdGeMatrix3d &mx ) = 0;
518 
519  virtual OdResult generateCurve( EDGE *pEdge, OdGeCurve3d *&o_pCurve ) = 0;
520 
521  virtual void StartModellerInThread() = 0;
522 
523  // Cast result pointer to proper class before using. Pointer can also be null depending on the implementation.
524  virtual void *getSpaBodyEntity( OdDbEntityPtr pEnt ) = 0;
525 
526  virtual void *getBodyFromEntity( OdDbEntityPtr i_pEnt ) = 0;
527 
528  virtual OdResult getWiresFromRegion( OdDbRegionPtr pR, std::vector<BODY *> &OuterWires, std::vector<std::vector<BODY *>> &IslandsToEntity ) = 0;
529 
530  virtual void setBodyFor( ENTITY_LIST* pNewFile, AfTypeVer typeVer, OdDbRegionPtr &offsetregion ) = 0;
531 
532  virtual BODY *getBodyFrom( const OdDbRegion *pRegion ) = 0;
533  virtual BODY *getBodyFrom( const OdDbSurface *pSurface ) = 0;
534  virtual BODY *getBodyFrom( const OdDb3dSolid *pSolid ) = 0;
535 
536  virtual OdResult rayTest2( OdDbEntityPtr i_pObj,
537  const OdGePoint3d& rayBasePoint,
538  const OdGeVector3d& rayDir,
539  double rayRadius,
540  OdArray<OdDbSubentId> & subEntIds,
541  OdGeDoubleArray& parameters ) = 0;
542 
543  //FELIX_CHANGE_END
544 
545  virtual void applyColor( OdDbEntityPtr pThis, OdDbEntityPtr pOther );
546 
547  virtual OdResult flatShot( const OdDb3dSolidPtr pBody,
548  const OdGePoint3d& eye_pos, const OdGePoint3d& target_pos, bool bPersepcitveProjection, OdDbEntityPtrArray& result );
549 
550  virtual OdResult flatShot( const OdDbSurfacePtr pSurface,
551  const OdGePoint3d& eye_pos, const OdGePoint3d& target_pos, bool bPersepcitveProjection, OdDbEntityPtrArray& result );
552 
553  struct HLData
554  {
556  int _flags;
557  struct HLOriginal
558  {
561  };
563  };
564 
565  virtual OdResult flatShotHL( const OdDbEntityPtrArray& input,
566  const OdGePoint3d& eye_pos, const OdGePoint3d& target_pos, bool bPersepcitveProjection, OdArray<HLData>& output );
567 
568  virtual int initialize_acis();
569 
570  virtual int terminate_acis(int level);
571 
572  // finds Center of i_region
573  virtual bool getCentroid( OdDbRegionPtr i_region, OdGePoint2d &o_center );
574 
575  // separates i_region to a set of connected components (lumbs)
576  virtual bool separateRegion( OdDbRegionPtr i_region, OdRxObjectPtrArray &o_entitySet );
577  // get all faces or all edges for OdDb3dSolid
579  OdDb::SubentType i_type,
580  OdDbFullSubentPathArray& o_subentPaths );
581 
582  virtual OdResult drawShells( OdGiViewportDraw* pViewportDraw, OdDbEntityPtr pEntity );
583  virtual OdResult drawEdges( OdGiViewportDraw* pViewportDraw, OdDbEntityPtr pEntity );
584 
585  virtual OdResult drawSilhouettes( OdGiViewportDraw* pViewportDraw, OdDbEntityPtr pEntity, CFxSilhouetteVisiblityCallback* pCallback = 0 );
586 
587 protected:
588  virtual void applyColor( OdModelerGeometry* p, OdCmColor color ) = 0;
589 
591 
593 
595 
597 };
598 
601 
603 {
604 public:
606 
607  virtual void setDatabaseDefaults( OdDbEntity* pThis, OdDbDatabase *pDb,bool bSubEnt) = 0;
608 };
610 
611 #endif
612 //FELIX_CHANGE_END
@ kSolid
Definition: BrepBuilder.h:39
#define TOOLKIT_EXPORT
Definition: DbExport.h:40
tol
Definition: DimVarDefs.h:2287
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
Definition: FxDbExtension.h:34
OdSmartPtr< OdDbFlipDimensionPE > OdDbFlipDimensionPEPtr
TOOLKIT_EXPORT CFxModelerExtension * GetFxModelerExtension()
double TOOLKIT_EXPORT geGetReasonableTolerance(double dSampleValue, double dTol=1e-10)
OdRxObject OdDbBaseDatabase
Definition: FxDbExtension.h:37
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)
int AfTypeVer
Definition: ModelerDefs.h:29
unsigned int OdUInt32
OdResult
Definition: OdResult.h:29
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
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 &parameters)=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 bool NeedDraw(bool bVisible, bool bOnEdge, bool bOnSilg)=0
Definition: DbArc.h:52
Definition: DbFcf.h:41
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)
Definition: DbRay.h:55
static GE_STATIC_EXPORT const OdGeMatrix3d kIdentity
Definition: GeMatrix3d.h:79
Definition: GeTol.h:49
GLfloat f
Definition: gles2_ext.h:564
GLint level
Definition: gles2_ext.h:110
GLint GLenum GLsizei width
Definition: gles2_ext.h:110
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
GLintptr offset
Definition: gles2_ext.h:183
GLint GLenum GLsizei GLsizei height
Definition: gles2_ext.h:110
OpenMode
Definition: DbObjectId.h:54
OdArray< HLOriginal > _original