CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
DbGeomRef.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 DbGeomRef_INCLUDED_
25#define DbGeomRef_INCLUDED_
26
27#include "DbSubentId.h"
28#include "DbCompoundObjectId.h"
29#include "Ge/GeCurve3d.h"
30#include "RxObjectImpl.h"
31
32#include "TD_PackPush.h"
33
34class OdDbEntity;
36
37
43class DBENT_EXPORT OdDbGeomRef : public OdRxObject
44{
45public:
47
51 virtual ~OdDbGeomRef();
52
56 virtual void reset();
57
63 virtual bool isValid() const;
64
70 virtual bool isEmpty() const;
71
80 virtual OdDbEntityPtr createEntity() const;
81
88};
89
98
99
106{
107public:
109
114
122 const OdDbSubentId& subent = OdDbSubentId());
123
131 const OdDbSubentId& subent = OdDbSubentId() );
132
137 const OdDbSubentId& subentid = OdDbSubentId() )
138 {
139 return createObject( *pid, subentid );
140 }
141
147 OdDbSubentRef& operator =(const OdDbSubentRef& src);
148
154 virtual void copyFrom(const OdRxObject* src);
155
159 virtual void reset();
160
166 virtual bool isValid() const;
167
173 virtual bool isEmpty() const;
174
178 virtual const OdDbCompoundObjectId& entity() const;
179
183 virtual OdDbSubentId subentId() const;
184
194
201
202protected:
208 void setEntity(const OdDbCompoundObjectId& entityId);
209
214
220 void setFromSubentPath(const OdDbFullSubentPath& pathSubEnt);
221
222private:
224 OdDbCompoundObjectId m_entityId;
226 OdDbSubentId m_SubentId;
227};
228
237
238
245class DBENT_EXPORT OdDbFaceRef : public OdRxObjectImpl<OdDbSubentRef>
246{
247public:
249
254
263 const OdDbSubentId& = OdDbSubentId(),
264 void *pBody = NULL);
265
271 OdDbFaceRef(const OdDbFaceRef& faceRef);
272
276 virtual ~OdDbFaceRef();
277
283 OdDbFaceRef& operator =(const OdDbFaceRef& src);
284
290 virtual void copyFrom(const OdRxObject* src);
291
295 virtual void reset();
296
302 virtual bool isValid() const;
303
309 virtual bool isEmpty() const;
310
314 void* asmBody() const;
315
322
332
333private:
335 void* m_pAsmBody;
336};
337
346
347
353class DBENT_EXPORT OdDbEdgeRef : public OdRxObjectImpl<OdDbSubentRef>
354{
355public:
357
362
369
379 const OdDbSubentId& edgeSubentId = OdDbSubentId(),
381 const OdGeCurve3d* pCurve = NULL);
382 OdDbEdgeRef(const OdGeCurve3d* pGeCurve);
383
390
395 return createObject( *pid, pCurve );
396 }
397
405
412
419
423 virtual ~OdDbEdgeRef();
424
430 OdDbEdgeRef& operator =(const OdDbEdgeRef& src);
431
437 virtual void copyFrom(const OdRxObject* src);
438
442 virtual void reset();
443
449 virtual bool isValid() const;
450
456 virtual bool isEmpty() const;
457
465
470
474 const OdGeCurve3d* curve() const;
475
486 virtual OdResult evaluateCurve(OdGeCurve3d*& src) const;
487
494
504
505
511 void setCurve(const OdGeCurve3d* pCurve);
512
513private:
515 // Sets the constant three-dimensional curve to be hold by this edge reference.
516 //*/
517 //void setCurve(const OdGeCurve3d* pCurve);
519 OdDbSubentId m_FaceSubentId;
521 OdGeCurve3dPtr m_pCurve;
522};
523
532
533
539class DBENT_EXPORT OdDbVertexRef : public OdRxObjectImpl<OdDbSubentRef>
540{
541public:
543
566
571
581 const OdGePoint3d& point3d = OdGePoint3d::kOrigin);
582
589
597
603 OdDbVertexRef(const OdGePoint3d& point3d);
604
613 const OdDbEdgeRef& edgeRef,
614 int controlOrFitPointIndex = 0,
615 const OdGePoint3d& point3d = OdGePoint3d::kOrigin);
616
623
630
639
643 virtual ~OdDbVertexRef();
644
650 OdDbVertexRef& operator =(const OdDbVertexRef& other);
651
657 virtual void copyFrom(const OdRxObject* src);
658
662 virtual void reset();
663
669 virtual bool isValid() const;
670
676 virtual const OdDbCompoundObjectId& entity() const;
677
681 virtual OdDbSubentId subentId() const;
682
687
692
696 int index() const;
697
702
711
718
728
729private:
733 void setReferencedRef(OdDbGeomRefPtr pReferencedRef);
734
736 ImpliedType m_ImpliedType;
738 OdDbGeomRefPtr m_pReferencedRef;
740 int m_Index;
742 OdGePoint3d m_Point;
743};
744
753
754
760class DBENT_EXPORT OdDbPathRef : public OdRxObjectImpl<OdDbGeomRef>
761{
762public:
764
775
785 OdDbPathRef(const OdDbFullSubentPathArray& edgeSubentPathArr,
786 const OdDbFullSubentPathArray& faceSubentPathArr);
787
794
798 virtual ~OdDbPathRef();
799
803 OdDbPathRef& operator =(const OdDbPathRef&);
804
810 virtual void copyFrom(const OdRxObject* src);
811
815 virtual void reset();
816
822 virtual bool isValid() const;
823
829 virtual bool isEmpty() const;
830
837
850 OdResult getEntityArray(OdArray<OdDbEntity*>& entities, bool concatenate) const;
851
856
867 bool isEqualTo(const OdGeCurve3d* pOther);
868
878
888
898
899private:
901 OdArray<OdDbEdgeRef> m_EdgeRefs;
902};
903
912
913
919class DBENT_EXPORT OdDbVectorRef : public OdRxObjectImpl<OdDbGeomRef>
920{
921public:
923
928
935
942
946 virtual ~OdDbVectorRef();
947
953 OdDbVectorRef& operator =(const OdDbVectorRef& src);
954
960 virtual void copyFrom(const OdRxObject* src);
961
965 virtual void reset();
966
972 virtual bool isValid() const;
973
979 virtual bool isEmpty() const;
980
984 const OdGeVector3d vector() const;
985
991 void set(const OdGeVector3d& vector);
992
1002
1012
1013private:
1015 OdGeVector3d m_Vector;
1016};
1017
1026
1027
1033class DBENT_EXPORT OdDbCoordSystemRef : public OdRxObjectImpl<OdDbGeomRef>
1034{
1035public:
1037
1042
1049
1057
1064
1071
1076
1083
1089 virtual void copyFrom(const OdRxObject*);
1090
1094 virtual void reset();
1095
1101 virtual bool isValid() const;
1102
1108 virtual bool isEmpty() const;
1109
1114
1119
1124
1130 void set(const OdGeMatrix3d& matrix);
1131
1137 void set(const OdDbCompoundObjectId& entId);
1138
1144 void set(const OdArray<OdDbSubentRef*>& subentReferences);
1145
1155
1165
1166private:
1168 OdGeMatrix3d m_CoordSystem;
1170 OdDbCompoundObjectId m_entityId;
1172 OdArray<OdDbSubentRef*> m_SubentRefs;
1173};
1174
1183
1184#include "TD_PackPop.h"
1185
1186#endif // DbGeomRef_INCLUDED_
OdSmartPtr< OdDbCompoundObjectId > OdDbCompoundObjectIdPtr
OdSmartPtr< OdDbEntity > OdDbEntityPtr
Definition DbEntity.h:51
#define DBENT_EXPORT
Definition DbExport.h:67
OdSmartPtr< OdDbCoordSystemRef > OdDbCoordSystemRefPtr
Definition DbGeomRef.h:1182
OdSmartPtr< OdDbFaceRef > OdDbFaceRefPtr
Definition DbGeomRef.h:345
OdSmartPtr< OdDbEntity > OdDbEntityPtr
Definition DbGeomRef.h:35
OdSmartPtr< OdDbVectorRef > OdDbVectorRefPtr
Definition DbGeomRef.h:1025
OdSmartPtr< OdDbVertexRef > OdDbVertexRefPtr
Definition DbGeomRef.h:752
OdSmartPtr< OdDbSubentRef > OdDbSubentRefPtr
Definition DbGeomRef.h:236
OdSmartPtr< OdDbEdgeRef > OdDbEdgeRefPtr
Definition DbGeomRef.h:531
OdSmartPtr< OdDbGeomRef > OdDbGeomRefPtr
Definition DbGeomRef.h:97
OdSmartPtr< OdDbPathRef > OdDbPathRefPtr
Definition DbGeomRef.h:911
OdArray< OdDbFullSubentPath > OdDbFullSubentPathArray
Definition DbSubentId.h:169
OdSharedPtr< OdGeCurve3d > OdGeCurve3dPtr
OdResult
Definition OdResult.h:29
virtual OdResult evaluateAndCacheGeometry()
virtual void copyFrom(const OdRxObject *)
OdDbCoordSystemRef(const OdArray< OdDbSubentRef * > &aSubentRef)
ODRX_DECLARE_MEMBERS(OdDbCoordSystemRef)
virtual void reset()
void set(const OdGeMatrix3d &matrix)
virtual OdDbEntityPtr createEntity() const
const OdDbCompoundObjectId & entityId() const
OdDbCoordSystemRef(const OdDbCompoundObjectId &compId, const OdGeMatrix3d &matrix)
void set(const OdArray< OdDbSubentRef * > &subentReferences)
const OdGeMatrix3d & coordSystem() const
const OdArray< OdDbSubentRef * > & subentRefs() const
virtual ~OdDbCoordSystemRef()
virtual bool isEmpty() const
OdDbCoordSystemRef(const OdGeMatrix3d &matrix)
void set(const OdDbCompoundObjectId &entId)
OdDbCoordSystemRef(const OdDbCoordSystemRef &src)
virtual bool isValid() const
OdDbEdgeRef(const OdGeCurve3d *pGeCurve)
virtual OdResult evaluateAndCacheGeometry()
virtual void copyFrom(const OdRxObject *src)
OdDbEdgeRef(const OdDbEdgeRef &src)
OdDbSubentId faceSubentId() const
ODRX_DECLARE_MEMBERS(OdDbEdgeRef)
OdDbEdgeRef(const OdDbFullSubentPath &path)
virtual ~OdDbEdgeRef()
virtual OdDbEntityPtr createEntity() const
virtual bool isEmpty() const
virtual OdResult evaluateCurve(OdGeCurve3d *&src) const
static OdSmartPtr< OdDbEdgeRef > createObject(const OdGeCurve3d *pCurve)
virtual bool isValid() const
static OdSmartPtr< OdDbEdgeRef > createObject(const OdDbCompoundObjectId &compId, const OdGeCurve3d *pCurve)
static OdSmartPtr< OdDbEdgeRef > createObject(const OdDbCompoundObjectIdPtr &pid, const OdGeCurve3d *pCurve)
Definition DbGeomRef.h:394
void setFaceSubentity(const OdDbSubentId &faceSubentId)
OdDbEdgeRef(const OdDbCompoundObjectId &comId, const OdDbSubentId &edgeSubentId=OdDbSubentId(), const OdDbSubentId &faceSubentId=OdDbSubentId(), const OdGeCurve3d *pCurve=NULL)
virtual void reset()
const OdGeCurve3d * curve() const
static OdSmartPtr< OdDbEdgeRef > createObject(const OdDbEntity *pEnt)
void setCurve(const OdGeCurve3d *pCurve)
virtual void copyFrom(const OdRxObject *src)
virtual void reset()
void * asmBody() const
virtual ~OdDbFaceRef()
OdDbFaceRef(const OdDbCompoundObjectId &compId, const OdDbSubentId &=OdDbSubentId(), void *pBody=NULL)
virtual OdDbEntityPtr createEntity() const
virtual OdResult evaluateAndCacheGeometry()
virtual bool isValid() const
ODRX_DECLARE_MEMBERS(OdDbFaceRef)
virtual bool isEmpty() const
OdDbFaceRef(const OdDbFaceRef &faceRef)
ODRX_DECLARE_MEMBERS(OdDbGeomRef)
virtual bool isEmpty() const
virtual OdDbEntityPtr createEntity() const
virtual OdResult evaluateAndCacheGeometry()
virtual bool isValid() const
virtual void reset()
virtual ~OdDbGeomRef()
OdResult getEntityArray(OdArray< OdDbEntity * > &entities, bool concatenate) const
virtual bool isValid() const
virtual OdResult evaluateAndCacheGeometry()
virtual void reset()
ODRX_DECLARE_MEMBERS(OdDbPathRef)
virtual void copyFrom(const OdRxObject *src)
virtual OdDbEntityPtr createEntity() const
bool isReferencePath()
virtual ~OdDbPathRef()
OdDbPathRef(const OdArray< OdDbEdgeRef > &edges)
virtual bool isEmpty() const
bool isEqualTo(const OdGeCurve3d *pOther)
OdDbPathRef(const OdDbFullSubentPathArray &edgeSubentPathArr, const OdDbFullSubentPathArray &faceSubentPathArr)
OdDbPathRef(const OdDbPathRef &src)
void setEdgeRefs(const OdArray< OdDbEdgeRef > &edges)
const OdArray< OdDbEdgeRef > & edgeRefs() const
virtual bool isEmpty() const
ODRX_DECLARE_MEMBERS(OdDbSubentRef)
void setSubent(const OdDbSubentId &subentId)
virtual void reset()
virtual OdDbEntityPtr createEntity() const
static OdSmartPtr< OdDbSubentRef > createObject(const OdDbCompoundObjectId *pid, const OdDbSubentId &subentid=OdDbSubentId())
Definition DbGeomRef.h:136
virtual OdResult evaluateAndCacheGeometry()
static OdSmartPtr< OdDbSubentRef > createObject(const OdDbCompoundObjectId &compId, const OdDbSubentId &subent=OdDbSubentId())
virtual bool isValid() const
virtual const OdDbCompoundObjectId & entity() const
void setEntity(const OdDbCompoundObjectId &entityId)
virtual OdDbSubentId subentId() const
void setFromSubentPath(const OdDbFullSubentPath &pathSubEnt)
OdDbSubentRef(const OdDbCompoundObjectId &compId, const OdDbSubentId &subent=OdDbSubentId())
virtual void copyFrom(const OdRxObject *src)
ODRX_DECLARE_MEMBERS(OdDbVectorRef)
OdDbVectorRef(const OdDbVectorRef &src)
void set(const OdGeVector3d &vector)
virtual void reset()
virtual bool isValid() const
const OdGeVector3d vector() const
virtual ~OdDbVectorRef()
virtual bool isEmpty() const
virtual OdDbEntityPtr createEntity() const
virtual OdResult evaluateAndCacheGeometry()
virtual void copyFrom(const OdRxObject *src)
OdDbVectorRef(const OdGeVector3d &vector)
virtual const OdDbCompoundObjectId & entity() const
ImpliedType impliedType() const
OdGePoint3d point() const
const OdDbGeomRef * referencedRef() const
OdDbVertexRef(const OdDbVertexRef &src)
virtual OdDbSubentId subentId() const
OdDbVertexRef(ImpliedType implType, const OdDbEdgeRef &edgeRef, int controlOrFitPointIndex=0, const OdGePoint3d &point3d=OdGePoint3d::kOrigin)
static OdSmartPtr< OdDbVertexRef > createObject(const OdGePoint3d &)
static OdSmartPtr< OdDbVertexRef > createObject(const OdDbObjectId entId, const OdDbSubentId subId, const OdGePoint3d &point)
ODRX_DECLARE_MEMBERS(OdDbVertexRef)
virtual ~OdDbVertexRef()
virtual OdResult evaluateAndCacheGeometry()
OdDbVertexRef(const OdDbCompoundObjectId &comId, const OdDbSubentId &subentId=OdDbSubentId(), const OdGePoint3d &point3d=OdGePoint3d::kOrigin)
virtual bool isValid() const
OdDbVertexRef(const OdDbEntity *pEnt)
@ kEdgeSplineControlPoint
Definition DbGeomRef.h:562
OdDbVertexRef(const OdDbFullSubentPath &fullPath)
OdDbVertexRef(const OdGePoint3d &point3d)
virtual OdResult evaluatePoint(OdGePoint3d &point) const
virtual void reset()
int index() const
virtual void copyFrom(const OdRxObject *src)
OdDbEntityPtr createEntity() const
static GE_STATIC_EXPORT const OdGePoint3d kOrigin
Definition GePoint3d.h:106