CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
DbDimension.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
25
26
27#ifndef OD_DBDIM_H
28#define OD_DBDIM_H
29
30#include "TD_PackPush.h"
31
32#include "DbEntity.h"
33#include "DbMText.h"
34#include "Ge/GeScale3d.h"
35
53{
54public:
55 //DOM-IGNORE-BEGIN
57 //DOM-IGNORE-END
58
63
83
89
94
99
104
111 const OdGeVector3d& normal);
112
117 virtual bool isPlanar() const { return true; }
118
127 OdGePlane& plane,
128 OdDb::Planarity& planarity) const;
129
136 double elevation() const;
137
146 double elevation);
147
156 const OdString dimensionText() const;
157
169 const OdString& dimensionText);
170
171 // FELIX_CHANGE_BEGIN
173 void setDimensionTextMoved( bool bValue );
174 // FELIX_CHANGE_END
175
182 double textRotation() const;
183
192 double textRotation);
193
198
204 OdDbObjectId objectID);
205
210
216 OdDbMText::AttachmentPoint attachmentPoint);
217
225
234 OdDb::LineSpacingStyle lineSpacingStyle);
242 double textLineSpacingFactor() const;
243
252 double lineSpacingFactor);
253
263 OdDbDimStyleTableRecord *pRecord) const;
264
274 const OdDbDimStyleTableRecord* pDimstyle);
275
285 OdDbObjectId dimstyleID);
286
292 double horizontalRotation() const;
293
301 double horizontalRotation);
302
303
308
316 const OdDbObjectId& dimBlockId,
317 bool singleReferenced = true);
318
324
333
345
346
353 double dimBlockRotation() const;
354
364 double dimBlockRotation);
365
373
384
393
403 bool forceUpdate = true);
404
417 double getMeasurement() const;
418
430 double measurement();
431
432
433 // 2005-2006 support
434
455 OdUInt16 getBgrndTxtColor(OdCmColor& bgrndTxtColor) const;
456
476 void setBgrndTxtColor(const OdCmColor& bgrndTxtColor, OdUInt16 bgrndTxtFlags );
477
482
488 void setExtLineFixLenEnable(bool extLineFixLenEnable);
489
493 double getExtLineFixLen() const;
494
500 void setExtLineFixLen(double extLineFixLen);
501
506
513
518
525
530
537
542
547
553 void setArrowFirstIsFlipped(bool bIsFlipped);
554
560 void setArrowSecondIsFlipped(bool bIsFlipped);
561
566 {
569
571 kShapeRound = 0x01,
572
575
577 kShapeNone = 0x04,
578
580 kShapeLabel = 0x10,
581
584 };
585
591 bool inspection() const;
592
598 void setInspection(bool val);
599
603 int inspectionFrame() const;
604
610 void setInspectionFrame(int frame);
616
622 void setInspectionLabel(const OdString& label);
623
628
634 void setInspectionRate(const OdString& label);
635
637#define VAR_DEF(type, name, dxf, def_value, metric_def_value, reserve1, reserve2)\
638
643 \
648 virtual type dim##name() const; \
649\
650 \
656virtual void setDim##name(type val);
658
659#include "DimVarDefs.h"
660#undef VAR_DEF
661
662 virtual OdResult dwgInFields(
663 OdDbDwgFiler* pFiler);
664
665 virtual void dwgOutFields(
666 OdDbDwgFiler* pFiler) const;
667
668 virtual OdResult dxfInFields(
669 OdDbDxfFiler* pFiler);
670
671 virtual void dxfOutFields(
672 OdDbDxfFiler* pFiler) const;
673
675 OdDbDxfFiler* pFiler);
676
677 virtual void dxfOutFields_R12(
678 OdDbDxfFiler* pFiler) const;
679
680 OdResult subGetClassID(void* pClsid) const;
681
683 OdGiDrawableTraits* pTraits) const;
684
685 bool subWorldDraw(
686 OdGiWorldDraw* pWd) const;
687
688 void subViewportDraw(
689 OdGiViewportDraw* pVd) const;
690
691 /* Replace OdRxObjectPtrArray */
692
693 virtual OdResult subExplode(
694 OdRxObjectPtrArray& entitySet) const ODRX_OVERRIDE;
695
696 void subClose();
697
698 virtual void modified (
699 const OdDbObject* pObject);
700
709 virtual OdResult subTransformBy(
710 const OdGeMatrix3d& xfm) ODRX_OVERRIDE;
711
720 const OdGeMatrix3d& xfm,
721 OdDbEntityPtr& pCopy) const ODRX_OVERRIDE;
722
741 OdDbDatabase *pDb,
742 bool doSubents);
743
744 virtual void appendToOwner(
745 OdDbIdPair& idPair,
746 OdDbObject* pOwnerObject,
747 OdDbIdMapping& ownerIdMap) ODRX_OVERRIDE;
748
749 virtual OdDbObjectPtr subWblockClone(OdDbIdMapping& ownerIdMap, OdDbObject*, bool bPrimary) const ODRX_OVERRIDE;
750
763 OdString& formattedMeasurement,
764 double measurementValue,
765 const OdString& dimensionText);
766
774
781
782 /*
783 void generateLayout();
784 void getOsnapPoints(OdDb::OsnapMode osnapMode, const OdDbFullSubentPath& subentId,
785 const OdGePoint3d& pickPoint, const OdGePoint3d& lastPoint,
786 const OdGeMatrix3d& viewXform, OdGePoint3dArray& snapPoints,
787 OdDbIntArray& geomIds ) const;
788 */
789
791
792 // Dynamic dimensions support
793 // (The methods are NOT related to constraint support)
794
800 bool isDynamicDimension() const;
801
808 bool bDynamic);
809
810 // Dimensional constraint support
811
817 virtual bool isConstraintObject() const;
818
823 bool& isConstraintObject,
824 bool& hasExpression,
825 bool& isReferenceConstraint) const;
826
832 bool isConstraintDynamic() const;
833
841 bool bDynamic);
842
848 bool shouldParticipateInOPM() const;
849
856 bool bShouldParticipate);
857
865 void setDIMTALN(bool val);
866
874 bool getDIMTALN() const;
875
879 void removeTextField();
880
886 void fieldToMText(OdDbMTextPtr& pDimMText);
887
893 void fieldFromMText(OdDbMTextPtr& pDimMText);
894
898 OdGeMatrix3d getEcs() const;
899
904
912 double width,
913 double height);
914
921 void textDefinedSize(
922 double& width,
923 double& height) const;
924
932};
933
938
940
947class DBDIM_EXPORT OdDbDimensionRecomputePE : public OdRxObject
948{
949public:
956 static void setMeasurementValue(OdDbDimension* pDimension, double measurementValue);
967 static void resetDimBlockInsertParams(OdDbDimension* pDimension);
968
969 //DOM-IGNORE-BEGIN
971 //DOM-IGNORE-END
972
978 virtual void recomputeDimMeasurement(OdDbDimension* pDimension) = 0;
979
990
991
1004 virtual void formatMeasurement(OdDbDimension* pDimension, OdString& formattedMeasurement,
1005 double measurementValue, const OdString& dimensionText ) = 0;
1006};
1007
1012
1013#include "TD_PackPop.h"
1014
1015#endif
1016
OdSmartPtr< OdDbDimStyleTableRecord > OdDbDimStyleTableRecordPtr
Definition DbDatabase.h:161
OdSmartPtr< OdDbDimension > OdDbDimensionPtr
OdSmartPtr< OdDbDimensionRecomputePE > OdDbDimensionRecomputePEPtr
OdSmartPtr< OdDbEntity > OdDbEntityPtr
Definition DbEntity.h:51
#define DBDIM_EXPORT
Definition DbExport.h:72
OdSmartPtr< OdDbMText > OdDbMTextPtr
Definition DbMText.h:1137
OdSmartPtr< OdDbObject > OdDbObjectPtr
Definition DbObject.h:1750
unsigned int OdUInt32
unsigned short OdUInt16
#define ODRX_OVERRIDE
OdResult
Definition OdResult.h:29
OdArray< OdRxObjectPtr > OdRxObjectPtrArray
Definition RxObject.h:1196
void setDimBlockId(const OdDbObjectId &dimBlockId, bool singleReferenced=true)
OdGeMatrix3d dimBlockTransform() const
void setTextLineSpacingStyle(OdDb::LineSpacingStyle lineSpacingStyle)
double getExtLineFixLen() const
bool getDIMTALN() const
void useSetTextPosition()
int inspectionFrame() const
void resetTextDefinedSize()
OdDb::LineSpacingStyle textLineSpacingStyle() const
void setDynamicDimension(bool bDynamic)
void textDefinedSize(double &width, double &height) const
bool inspection() const
bool isDynamicDimension() const
void setHorizontalRotation(double horizontalRotation)
void recomputeDimBlock(bool forceUpdate=true)
void setArrowFirstIsFlipped(bool bIsFlipped)
virtual OdResult getPlane(OdGePlane &plane, OdDb::Planarity &planarity) const
void setExtLineFixLenEnable(bool extLineFixLenEnable)
OdGeScale3d dimBlockScale() const
bool getArrowSecondIsFlipped() const
OdGePoint3d textPosition() const
void setExtLineFixLen(double extLineFixLen)
void setDimensionText(const OdString &dimensionText)
const OdString dimensionText() const
bool isSingleDimBlockReference() const
double elevation() const
void setInspectionLabel(const OdString &label)
OdDbObjectId getDimLinetype() const
double textRotation() const
double dimBlockRotation() const
void removeTextField()
OdDbObjectId getDimExt2Linetype() const
bool getExtLineFixLenEnable() const
bool shouldParticipateInOPM() const
OdDbObjectId dimensionStyle() const
void setDimensionStyle(OdDbObjectId objectID)
OdGeVector3d normal() const
void setTextAttachment(OdDbMText::AttachmentPoint attachmentPoint)
void setBgrndTxtColor(const OdCmColor &bgrndTxtColor, OdUInt16 bgrndTxtFlags)
void fieldFromMText(OdDbMTextPtr &pDimMText)
OdString inspectionLabel() const
bool isUsingDefaultTextPosition() const
void setTextPosition(const OdGePoint3d &textPosition)
OdResult setConstraintDynamic(bool bDynamic)
double textLineSpacingFactor() const
double horizontalRotation() const
void setDimstyleData(const OdDbDimStyleTableRecord *pDimstyle)
void setDimExt1Linetype(const OdDbObjectId &linetypeId)
void setArrowSecondIsFlipped(bool bIsFlipped)
void setTextRotation(double textRotation)
void setDIMTALN(bool val)
OdUInt16 getBgrndTxtColor(OdCmColor &bgrndTxtColor) const
OdDbObjectPtr dimBlock(OdDb::OpenMode openMode=OdDb::kForRead)
double measurement()
void setTextLineSpacingFactor(double lineSpacingFactor)
bool getArrowFirstIsFlipped() const
bool getDimensionTextMoved() const
void setDimensionTextMoved(bool bValue)
void formatMeasurement(OdString &formattedMeasurement, double measurementValue, const OdString &dimensionText)
OdString inspectionRate() const
bool isConstraintDynamic() const
void setTextDefinedSize(double width, double height)
void setInspectionFrame(int frame)
OdDbObjectId getDimExt1Linetype() const
void setDimBlockRotation(double dimBlockRotation)
void setShouldParticipateInOPM(bool bShouldParticipate)
void setNormal(const OdGeVector3d &normal)
void setInspection(bool val)
void setElevation(double elevation)
void setDimExt2Linetype(const OdDbObjectId &linetypeId)
void setInspectionRate(const OdString &label)
virtual bool isConstraintObject() const
void setDimstyleData(OdDbObjectId dimstyleID)
void fieldToMText(OdDbMTextPtr &pDimMText)
OdDbObjectId dimBlockId() const
void setDimBlockPosition(const OdGePoint3d &dimBlockPosition)
DWGMAP_DECLARE_MEMBERS(OdDbDimension)
virtual bool isPlanar() const
void useDefaultTextPosition()
double getMeasurement() const
void setDimLinetype(const OdDbObjectId &linetypeId)
void setDimBlockScale(const OdGeScale3d &dimBlockScale)
OdDbMText::AttachmentPoint textAttachment() const
void getDimstyleData(OdDbDimStyleTableRecord *pRecord) const
OdGePoint3d dimBlockPosition() const
virtual void recomputeDimMeasurement(OdDbDimension *pDimension)=0
virtual void formatMeasurement(OdDbDimension *pDimension, OdString &formattedMeasurement, double measurementValue, const OdString &dimensionText)=0
static void resetDimBlockInsertParams(OdDbDimension *pDimension)
ODRX_DECLARE_MEMBERS(OdDbDimensionRecomputePE)
static void setMeasurementValue(OdDbDimension *pDimension, double measurementValue)
virtual void dxfOutFields_R12(OdDbDxfFiler *pFiler) const
virtual void subSetDatabaseDefaults(OdDbDatabase *pDb, bool doSubents)
virtual void dxfOutFields(OdDbDxfFiler *pFiler) const
virtual OdResult subGetClassID(void *pClsid) const
virtual bool subWorldDraw(OdGiWorldDraw *pWd) const
void appendToOwner(OdDbIdPair &idPair, OdDbObject *pOwnerObject, OdDbIdMapping &ownerIdMap)
virtual void subViewportDraw(OdGiViewportDraw *pVd) const
virtual void dwgOutFields(OdDbDwgFiler *pFiler) const
virtual OdResult subGetTransformedCopy(const OdGeMatrix3d &xfm, OdDbEntityPtr &pCopy) const
OdDbObjectId linetypeId() const
virtual OdUInt32 subSetAttributes(OdGiDrawableTraits *pTraits) const
virtual OdGeMatrix3d getEcs() const
virtual OdResult explodeGeometry(OdRxObjectPtrArray &entitySet) const
virtual OdResult dxfInFields(OdDbDxfFiler *pFiler)
virtual OdResult dxfInFields_R12(OdDbDxfFiler *pFiler)
virtual OdResult subGetGeomExtents(OdGeExtents3d &extents) const
virtual OdDbObjectPtr subWblockClone(OdDbIdMapping &ownerIdMap, OdDbObject *, bool bPrimary) const ODRX_OVERRIDE
virtual OdResult dwgInFields(OdDbDwgFiler *pFiler)
virtual OdResult subGetCompoundObjectTransform(OdGeMatrix3d &xM) const
virtual OdResult subExplode(OdRxObjectPtrArray &entitySet) const
virtual OdResult subTransformBy(const OdGeMatrix3d &xfm)
AttachmentPoint
Definition DbMText.h:250
virtual void modified(const OdDbObject *pObject)
virtual void subClose()
GLint GLenum GLsizei width
Definition gles2_ext.h:110
GLint GLenum GLsizei GLsizei height
Definition gles2_ext.h:110
Planarity
Definition DbEntity.h:74
LineSpacingStyle
Definition TextDefs.h:53
@ kForRead
Definition DbObjectId.h:56