DetailingSymbol.h
Go to the documentation of this file.
1 /*--------------------------------------------------------------------------------------+
2 |
3 | Supplied under applicable software license agreement.
4 |
5 | Copyright (c) 2018 Bentley Systems, Incorporated. All rights reserved.
6 |
7 +---------------------------------------------------------------------------------------*/
8 #pragma once
13 
14 DGNPLATFORM_TYPEDEFS (BaseDetailingPropInfo)
15 DGNPLATFORM_TYPEDEFS (BoundedPlane);
16 DGNPLATFORM_TYPEDEFS (IDetailingSymbol)
17 DGNPLATFORM_TYPEDEFS (IDetailingSymbolFactory)
18 DGNPLATFORM_TYPEDEFS (VolumeDef)
19 DGNPLATFORM_TYPEDEFS (VolumeDefCollection);
20 DGNPLATFORM_TYPEDEFS (IClipElementProvider)
21 DGNPLATFORM_TYPEDEFS (IHasClipElementProvider)
22 DGNPLATFORM_TYPEDEFS (SectionCalloutDef)
23 DGNPLATFORM_TYPEDEFS (DetailCalloutDef)
24 DGNPLATFORM_TYPEDEFS (DetailCallout3DViewDef)
25 DGNPLATFORM_TYPEDEFS (ElevationCalloutDef)
26 DGNPLATFORM_TYPEDEFS (InteriorElevationCalloutDef)
27 DGNPLATFORM_TYPEDEFS (PlanCalloutDef)
28 DGNPLATFORM_TYPEDEFS (TitleTextDef)
29 DGNPLATFORM_TYPEDEFS (DrawingBoundaryDef)
30 DGNPLATFORM_TYPEDEFS (IDrawingTraverseOptions)
31 DGNPLATFORM_TYPEDEFS (IViewClipObject)
32 DGNPLATFORM_TYPEDEFS (DetailingSymbolStyle)
33 
35 
36 //=======================================================================================
46 //=======================================================================================
47 
48 /*=================================================================================**/
53 struct BoundedPlane
54  {
58 
60  DGNPLATFORM_EXPORT BoundedPlane ();
61 
62  }; // BoundedPlane
63 
64 
65 //=======================================================================================
67 //=======================================================================================
69  {
70  Invalid = 0,
71  Level_LEVEL = 1,
72  };
73 
74 struct IDetailingSymbol;
75 
76 /*=================================================================================**/
94 {
95 protected:
96 
98  int m_prop;
99 
103  DGNPLATFORM_EXPORT virtual StatusInt _GetCellName (WStringR cellName) const;
104 
107  DGNPLATFORM_EXPORT virtual void _SetCellName (WCharCP cellName);
108 
112  DGNPLATFORM_EXPORT virtual StatusInt _GetColor (UInt32* color) const;
113 
116  DGNPLATFORM_EXPORT virtual void _SetColor (UInt32 color);
117 
121  DGNPLATFORM_EXPORT virtual StatusInt _GetWeight (UInt32* weight) const;
122 
125  DGNPLATFORM_EXPORT virtual void _SetWeight (UInt32 weight);
126 
130  DGNPLATFORM_EXPORT virtual StatusInt _GetLineStyle (Int32* lineStyle) const;
131 
135  DGNPLATFORM_EXPORT virtual void _SetLineStyle (Int32 lineStyle);
136 
140  DGNPLATFORM_EXPORT virtual StatusInt _GetBool (bool* flag) const;
141 
144  DGNPLATFORM_EXPORT virtual void _SetBool (bool flag);
145 
149  DGNPLATFORM_EXPORT virtual StatusInt _GetLevel (DgnPlatform::LevelId* level) const;
150 
153  DGNPLATFORM_EXPORT virtual void _SetLevel (DgnPlatform::LevelId level);
154 
158  DGNPLATFORM_EXPORT virtual StatusInt _GetDouble (double* val) const;
159 
162  DGNPLATFORM_EXPORT virtual void _SetDouble (double val);
163 
167  DGNPLATFORM_EXPORT virtual StatusInt _GetInteger (int* val) const;
168 
171  DGNPLATFORM_EXPORT virtual void _SetInteger (int val);
172 
175  DGNPLATFORM_EXPORT virtual int _GetPropID () const;
176 
179  DGNPLATFORM_EXPORT virtual void _SetPropID (int prop);
180 
181 public:
185  DGNPLATFORM_EXPORT StatusInt GetCellName (WStringR cellName) const;
186 
189  DGNPLATFORM_EXPORT void SetCellName (WCharCP cellName);
190 
194  DGNPLATFORM_EXPORT StatusInt GetColor (UInt32 * color) const;
195 
198  DGNPLATFORM_EXPORT void SetColor (UInt32 color);
199 
203  DGNPLATFORM_EXPORT StatusInt GetWeight (UInt32 * weight) const;
204 
207  DGNPLATFORM_EXPORT void SetWeight (UInt32 weight);
208 
212  DGNPLATFORM_EXPORT StatusInt GetLineStyle (Int32 * lineStyle) const;
213 
216  DGNPLATFORM_EXPORT void SetLineStyle (Int32 lineStyle);
217 
221  DGNPLATFORM_EXPORT StatusInt GetBool (bool * flag) const;
222 
225  DGNPLATFORM_EXPORT void SetBool (bool flag);
226 
230  DGNPLATFORM_EXPORT StatusInt GetLevel (DgnPlatform::LevelId * level) const;
231 
234  DGNPLATFORM_EXPORT void SetLevel (DgnPlatform::LevelId level);
235 
239  DGNPLATFORM_EXPORT StatusInt GetDouble (double* val) const;
240 
243  DGNPLATFORM_EXPORT void SetDouble (double val);
244 
248  DGNPLATFORM_EXPORT StatusInt GetInteger (int* val) const;
249 
252  DGNPLATFORM_EXPORT void SetInteger (int val);
253 
256  DGNPLATFORM_EXPORT void SetPropID (int id);
257 
260  DGNPLATFORM_EXPORT int GetPropID () const;
261 
266 
267 }; // BaseDetailingPropInfo
268 
269 
270 /*=================================================================================**/
276 {
277 public:
280  DGNPLATFORM_EXPORT DgnModelRefP GetModelRef () const;
281 
284  DGNPLATFORM_EXPORT void SetModelRef (DgnModelRefP model);
285 
290  DGNPLATFORM_EXPORT StatusInt GetCellName (WStringR cellName, BaseDetailingPropInfoCR prop) const;
291 
295  DGNPLATFORM_EXPORT void SetCellName (BaseDetailingPropInfoCR prop, WCharCP cellName);
296 
301  DGNPLATFORM_EXPORT StatusInt GetColorProp (UInt32* color, BaseDetailingPropInfoCR prop) const;
302 
306  DGNPLATFORM_EXPORT void SetColorProp (BaseDetailingPropInfoCR prop, UInt32 color);
307 
312  DGNPLATFORM_EXPORT StatusInt GetWeightProp (UInt32* weight, BaseDetailingPropInfoCR prop) const;
313 
317  DGNPLATFORM_EXPORT void SetWeightProp (BaseDetailingPropInfoCR prop, UInt32 weight);
318 
323  DGNPLATFORM_EXPORT StatusInt GetLineStyleProp (Int32* lineStyle, BaseDetailingPropInfoCR prop) const;
324 
328  DGNPLATFORM_EXPORT void SetLineStyleProp (BaseDetailingPropInfoCR prop, Int32 lineStyle);
329 
334  DGNPLATFORM_EXPORT StatusInt GetBoolProp (bool* flag, BaseDetailingPropInfoCR prop) const;
335 
339  DGNPLATFORM_EXPORT void SetBoolProp (BaseDetailingPropInfoCR prop, bool flag);
340 
345  DGNPLATFORM_EXPORT StatusInt GetLevelProp (DgnPlatform::LevelId* level, BaseDetailingPropInfoCR prop) const;
346 
350  DGNPLATFORM_EXPORT void SetLevelProp (BaseDetailingPropInfoCR prop, DgnPlatform::LevelId level);
351 
356  DGNPLATFORM_EXPORT StatusInt GetIntegerProp (int* val, BaseDetailingPropInfoCR prop) const;
357 
361  DGNPLATFORM_EXPORT void SetIntegerProp (BaseDetailingPropInfoCR prop, int val);
362 
367  DGNPLATFORM_EXPORT StatusInt GetDoubleProp (double* val, BaseDetailingPropInfoCR prop) const;
368 
372  DGNPLATFORM_EXPORT void SetDoubleProp (BaseDetailingPropInfoCR prop, double val);
373 
378  DGNPLATFORM_EXPORT double GetStandardCellRadius () const;
379 
382  DGNPLATFORM_EXPORT size_t GetNumPoints () const; // Includes origin
383 
389  DGNPLATFORM_EXPORT StatusInt GetPoints (DPoint3dVector& pts, size_t iFromPoint, size_t numPoints) const; // Includes origin
390 
396  DGNPLATFORM_EXPORT StatusInt InsertPoints (DPoint3dCP pts, size_t iPoint, size_t numPoints); // Includes origin. -1 to insert at the end
397 
404  DGNPLATFORM_EXPORT StatusInt ReplacePoints (DPoint3dCP pts, size_t iPoint, size_t numPoints); // Includes origin
405 
407  DGNPLATFORM_EXPORT void ClearPoints ();
408 
416  DGNPLATFORM_EXPORT StatusInt GetUniquePoint (DPoint3dP pt, size_t* iActualPoint, size_t iPoint, bool getPreviousIfDisconnect) const;// Includes origin. If iPoint points to a disconnect point, returns the previous or next good one.
417 
418 
421  DGNPLATFORM_EXPORT RotMatrixCR GetRotationAndScale () const;
422 
425  DGNPLATFORM_EXPORT void GetRotation (RotMatrixR) const;
426 
429  DGNPLATFORM_EXPORT void GetScale (DVec3dR) const;
430 
433  DGNPLATFORM_EXPORT void SetRotation (RotMatrixCR);
434 
437  DGNPLATFORM_EXPORT void SetScale (DVec3dCR);
438 
441  DGNPLATFORM_EXPORT void SetRotationAndScale (RotMatrixCR);
442 
445  DGNPLATFORM_EXPORT void GetViewMatrix (RotMatrixR matrix) const;
446 
449  DGNPLATFORM_EXPORT void SetViewMatrix (RotMatrixCR matrix);
450 
452  DGNPLATFORM_EXPORT StatusInt SetUseAnnotationScale (bool);
453 
456  DGNPLATFORM_EXPORT StatusInt SetAnnotationScale (double);
457 
461  DGNPLATFORM_EXPORT StatusInt UpdateAnnotationScale (ChangeAnnotationScaleP changeContextIn);
462 
465  DGNPLATFORM_EXPORT void ApplyScale (double);
466 
469  DGNPLATFORM_EXPORT StatusInt ApplyStyle (DetailingSymbolStyleCR style);
470 
473  DGNPLATFORM_EXPORT StatusInt ApplyModelAnnotationScale ();
474 
477  DGNPLATFORM_EXPORT Handler* GetHandler () const;
478 
483  DGNPLATFORM_EXPORT StatusInt ToElement (EditElementHandleR newSymbol, ElementHandleCP oldSymbol);
484 
488  DGNPLATFORM_EXPORT StatusInt FromElement (ElementHandleCR sourceElmHandle);
489 
491  DGNPLATFORM_EXPORT void Reset ();
492 
495  DGNPLATFORM_EXPORT DetailingSymbolType GetSymbolType () const;
496 
497 }; // IDetailingSymbol
498 
499 //=======================================================================================
501 //=======================================================================================
503 
504 /*=================================================================================**/
512 {
513 
514 public:
515 
520 
524  DGNPLATFORM_EXPORT IDetailingSymbolPtr Create (bool is3d) const;
525 
530  DGNPLATFORM_EXPORT bool IsSymbolTypeEqual (DetailingSymbolType type, bool is3d) const;
531 
532 }; // IDetailingSymbolFactory
533 
534 //=======================================================================================
536 //=======================================================================================
538 
539 
540 /*=================================================================================**/
546 struct VolumeDef
547 {
548 private:
549  virtual void MakeClassAbstract() = 0;
550 public:
551 
552 public:
554 
558  DGNPLATFORM_EXPORT bool HasGenerateView (ElementHandleCR symbolElementHandle) const;
559 
563  DGNPLATFORM_EXPORT StatusInt GetView (EditElementHandleR viewOutEEH) const;
564 
567  DGNPLATFORM_EXPORT unsigned int GetCropMask () const;
568 
571  DGNPLATFORM_EXPORT void SetCropMask (unsigned int cropMask);
572 
575  DGNPLATFORM_EXPORT double GetTopHeight () const;
576 
579  DGNPLATFORM_EXPORT void SetTopHeight (double height);
580 
583  DGNPLATFORM_EXPORT double GetBottomHeight () const;
584 
587  DGNPLATFORM_EXPORT void SetBottomHeight (double height);
588 
591  DGNPLATFORM_EXPORT double GetMinWidth () const;
592 
595  DGNPLATFORM_EXPORT double GetMaxWidth () const;
596 
599  DGNPLATFORM_EXPORT void SetMinWidth (double minWidth);
600 
603  DGNPLATFORM_EXPORT void SetMaxWidth (double maxWidth);
604 
607  DGNPLATFORM_EXPORT double GetFrontDepth () const;
608 
611  DGNPLATFORM_EXPORT void SetFrontDepth (double depth);
612 
615  DGNPLATFORM_EXPORT double GetBackDepth () const;
616 
619  DGNPLATFORM_EXPORT void SetBackDepth (double depth);
620 
623  DGNPLATFORM_EXPORT double GetParametricOrigin () const;
624 
627  DGNPLATFORM_EXPORT void SetParametricOrigin (double d);
628 
631  DGNPLATFORM_EXPORT double GetRotation () const;
632 
635  DGNPLATFORM_EXPORT void SetRotation (double d);
636 
639  DGNPLATFORM_EXPORT double GetPointCloudTolerance() const;
640 
643  DGNPLATFORM_EXPORT void SetPointCloudTolerance(double d);
644 
647  DGNPLATFORM_EXPORT bool GetPointCloudProjectPoints() const;
648 
651  DGNPLATFORM_EXPORT void SetPointCloudProjectPoints(bool d);
652 
653 }; // VolumeDef
654 
655 /*=================================================================================**/
661 struct VolumeDefCollection : public bvector<VolumeDefP>
662  {
663 
664 
665  }; // VolumeDefCollection
666 
667 /*=================================================================================**/
672 struct IClipElementProvider : public RefCounted <IRefCounted>
673  {
674 public:
675 
683  DGNPLATFORM_EXPORT StatusInt ToClipElement (EditElementHandleR clipEl, ElementHandleCP templateEH, size_t volumeIndex, DgnModelRefP clipModelRef, double zOffsetForClip) const;
684 
692  DGNPLATFORM_EXPORT StatusInt FromClipElement (ElementHandleCR clipEl, size_t volumeIndex, double zOffsetForClip, bool initViewMatrix, BoundedPlaneCP boundaryToGenerateIn);
693 
694  }; // IClipElementProvider
695 
696 //=======================================================================================
698 //=======================================================================================
700 
701 
702 /*=================================================================================**/
709  {
710 public:
711 
714  DGNPLATFORM_EXPORT IClipElementProviderPtr GetClipElementProvider ();
715 
716  }; // IHasClipElementProvider
717 
718 /*=================================================================================**/
724  {
725 public:
728  DGNPLATFORM_EXPORT VolumeDefP AddVolumeDef ();
729 
732  DGNPLATFORM_EXPORT VolumeDefCollectionR GetVolumeDefCollectionR ();
733 
736  DGNPLATFORM_EXPORT VolumeDefCollectionCR GetVolumeDefCollection () const;
737 
741  DGNPLATFORM_EXPORT VolumeDefP GetVolumeDefAtIndex (size_t index);
742 
745  DGNPLATFORM_EXPORT size_t GetNumberOfVolumeDefs ();
746 
750  DGNPLATFORM_EXPORT StatusInt DeleteVolumeDefAtIndex (size_t index);
751  }; // IVolumeDefContainer
752 
753 /*=================================================================================**/
763  {
764  public:
767  DGNPLATFORM_EXPORT void SetPreserveUp (bool);
768 
771  DGNPLATFORM_EXPORT bool GetPreserveUp () const;
772  }; //IPreserveUp
773 
774 /*=================================================================================**/
781  {
782  public:
785  DGNPLATFORM_EXPORT bool GetFlipDirection () const;
786 
789  DGNPLATFORM_EXPORT void SetFlipDirection (bool flip);
790  };//IFlipDirection
791 
792 /*=================================================================================**/
799  {
800  };
801 
803 
804 //=======================================================================================
806 //=======================================================================================
808 
809 /*=================================================================================**/
815 {
816 public:
817 
820  static DGNPLATFORM_EXPORT SectionCalloutDefPtr Create ();
821 
822  }; // SectionCalloutDef
824 
825 //=======================================================================================
827 //=======================================================================================
829 
830 /*=================================================================================**/
838 {
839 
840 
841 public:
844  DGNPLATFORM_EXPORT void SetTopHeight (double topHeight);
845 
848  DGNPLATFORM_EXPORT double GetTopHeight () const;
849 
852  DGNPLATFORM_EXPORT void SetBottomHeight (double bottomHeight);
853 
856  DGNPLATFORM_EXPORT double GetBottomHeight () const;
857 
860  DGNPLATFORM_EXPORT bool GetHasAreaElement () const;
861 
864  DGNPLATFORM_EXPORT void SetAreaElement (ElementHandleCP areaEH);
865 
869  DGNPLATFORM_EXPORT void GetOrigin (DPoint3dR originOut) const;
870 
874  DGNPLATFORM_EXPORT void GetEnd (DPoint3dR endOut) const;
875 
878  static DGNPLATFORM_EXPORT DetailCalloutDefPtr Create ();
879 };
881 
882 //=======================================================================================
884 //=======================================================================================
886 
887 /*=================================================================================**/
894 {
895 private:
896  virtual void MakeClassAbstract() = 0;
897 public:
898 
899 public:
900 
903  DGNPLATFORM_EXPORT double GetHeight () const;
904 
907  DGNPLATFORM_EXPORT void SetHeight (double height);
908 
911  DGNPLATFORM_EXPORT double GetWidth () const;
912 
915  DGNPLATFORM_EXPORT void SetWidth (double width);
916 
919  DGNPLATFORM_EXPORT double GetFrontDepth () const;
920 
923  DGNPLATFORM_EXPORT void SetFrontDepth (double frontDepth);
924 
927  DGNPLATFORM_EXPORT double GetBackDepth () const;
928 
931  DGNPLATFORM_EXPORT void SetBackDepth (double backDepth);
932 
936  DGNPLATFORM_EXPORT bool GetCropMask (ClipVolumeCropProp cropProp) const;
937 
941  DGNPLATFORM_EXPORT void SetCropMask (ClipVolumeCropProp cropProp, bool val);
942 
945  DGNPLATFORM_EXPORT double GetPointCloudTolerance() const;
946 
949  DGNPLATFORM_EXPORT void SetPointCloudTolerance(double d);
950 
953  DGNPLATFORM_EXPORT bool GetPointCloudProjectPoints() const;
954 
957  DGNPLATFORM_EXPORT void SetPointCloudProjectPoints(bool d);
958 
962 
963 }; // DetailCallout3DViewDef
964 
966 
967 //=======================================================================================
969 //=======================================================================================
971 
972 /*=================================================================================**/
979 {
980 
981 public:
982 
985  static DGNPLATFORM_EXPORT ElevationCalloutDefPtr Create ();
986 
987 }; // ElevationCalloutDef
988 
990 
991 //=======================================================================================
993 //=======================================================================================
995 
996 /*=================================================================================**/
1002 {
1003 public:
1004 
1008 
1009 }; // InteriorElevationCalloutDef
1011 
1012 //=======================================================================================
1014 //=======================================================================================
1016 
1017 /*=================================================================================**/
1024 {
1025 public:
1026 
1029  static DGNPLATFORM_EXPORT PlanCalloutDefPtr Create ();
1030 
1031  };//PlanCalloutDef
1033 
1034 //=======================================================================================
1036 //=======================================================================================
1038 
1039 /*=================================================================================**/
1045 {
1046 public:
1047 
1050  static DGNPLATFORM_EXPORT TitleTextDefPtr Create();
1051 
1052 };
1053 
1054 struct DrawingBoundaryDef;
1055 
1056 //=======================================================================================
1058 //=======================================================================================
1060  {
1061  ByText = 0,
1062  ByDrawing,
1063  FixedLength,
1064  NoLine,
1065  } ;
1066 
1067 //=======================================================================================
1069 //=======================================================================================
1071  {
1072  Left = 0,
1073  Right,
1074  };
1075 
1076 //=======================================================================================
1078 //=======================================================================================
1080 {
1081 Hidden = 0,
1082 Visible,
1083 };
1084 
1085 //=======================================================================================
1087 //=======================================================================================
1089 
1090 /*=================================================================================**/
1096 {
1097 public:
1098 
1101  DGNPLATFORM_EXPORT bool GetBubbleOnLeft () const;
1102 
1105  DGNPLATFORM_EXPORT void SetBubbleOnLeft (bool bubbleOnLeft);
1106 
1109  DGNPLATFORM_EXPORT ElementRefP GetAttachmentElement () const;
1110 
1113  DGNPLATFORM_EXPORT DgnAttachmentP GetAttachment () const;
1114 
1120  DGNPLATFORM_EXPORT void SetDetailScale (double detailScale, bool updateBoundary);
1121 
1124  DGNPLATFORM_EXPORT double GetDetailScale () const;
1125 
1129  DGNPLATFORM_EXPORT void UpdatePropertiesFromReference (bool updateBoundary);
1130 
1133  DGNPLATFORM_EXPORT void UpdateDetailScaleForDummyDrawingBoundary ();
1134 
1137  DGNPLATFORM_EXPORT void GetBoundedPlane (BoundedPlaneR plane) const;
1138 
1141  DGNPLATFORM_EXPORT static DrawingBoundaryDefPtr Create ();
1142 
1145  DGNPLATFORM_EXPORT void GetRange (DRange3dR range) const;
1146 
1149  DGNPLATFORM_EXPORT void SetUnderlineLength (double length);
1150 
1153  DGNPLATFORM_EXPORT double GetUnderlineLength () const;
1154 
1157  DGNPLATFORM_EXPORT DrawingBoundaryUnderlineType GetUnderlineType () const;
1158 
1161  DGNPLATFORM_EXPORT void SetBoundaryElement (ElementHandleCP el);
1162 
1165  DGNPLATFORM_EXPORT bool CanGenerateBoundaryElement ();
1166 
1168  DGNPLATFORM_EXPORT CurveVectorPtr GetBoundaryCurveVector ();
1169 }; // DrawingBoundaryDef
1170 /*=================================================================================**/
1177 {
1178 protected:
1179 
1182  virtual DgnModelRefP _GetModel () const = 0;
1183 
1184 public:
1187  DGNPLATFORM_EXPORT DgnModelRefP GetModel () const;
1188 
1189 }; // IDrawingTraverseOptions
1190 
1191 //=======================================================================================
1193 //=======================================================================================
1195 
1196 /*=================================================================================**/
1204 {
1207  DGNPLATFORM_EXPORT virtual IDrawingTraverseOptionsPtr GetDrawingTraverseOptions () = 0;
1208 
1212  DGNPLATFORM_EXPORT virtual bool HandleDrawingTraverse (ElementHandleCR drawingEH) = 0;
1213 
1216 
1217 }; // IDrawingElementTraverseHandler
1218 /*=================================================================================**/
1224  {
1225 
1226 public:
1227 
1234  static DGNPLATFORM_EXPORT bool FindDrawingByName(EditElementHandleR drawingEH, WStringCR name, bool partialMatch, IDrawingTraverseOptions& options);
1235 
1242  static DGNPLATFORM_EXPORT bool FindDrawingByIdentifier(EditElementHandleR drawingEH, WStringCR identifier, bool partialMatch, IDrawingTraverseOptions& options);
1243 
1248  static DGNPLATFORM_EXPORT StatusInt GetDrawingName(WStringR name, ElementHandleCR drawingEH);
1249 
1254  static DGNPLATFORM_EXPORT StatusInt GetDrawingIdentifier(WStringR identifier, ElementHandleCR drawingEH);
1255 
1261  static DGNPLATFORM_EXPORT StatusInt GenerateUniqueDrawingIdentifier(WStringR identifierOut, WStringCR proposedIdentifier, DgnModelP model);
1262 
1269  static DGNPLATFORM_EXPORT StatusInt GenerateUniqueDrawingName(WStringR nameOut, WStringCR proposedName, WStringCR namePrefix, DgnModelP model);
1270 
1278  static DGNPLATFORM_EXPORT StatusInt GenerateUniqueDrawingName(WStringR nameOut, WStringCR proposedName, WStringCR namePrefix, DgnAttachmentCP ref);
1279 
1284  static DGNPLATFORM_EXPORT bool IsExistingIdentifier(WStringCR idStr, DgnModelP model);
1285 
1290  static DGNPLATFORM_EXPORT bool IsExistingName(WStringCR nameStr, DgnModelP model);
1291 
1295  static DGNPLATFORM_EXPORT IDrawingTraverseOptionsPtr CreateTraverseOptions(DgnModelRefP modelToTraverse);
1296 
1301  static DGNPLATFORM_EXPORT bool TraverseElements(IDrawingTraverseHandler& handler);
1302 
1308  static DGNPLATFORM_EXPORT bool TraverseElementsInModel(IDrawingTraverseHandler& handler, DgnModelRefP model);
1309 
1313  static DGNPLATFORM_EXPORT bool IsDrawing(ElementHandleCR eh);
1314 
1319  static DGNPLATFORM_EXPORT StatusInt GetDrawingBoundaryElementFromAttachment(EditElementHandleR drawingTitleElem, DgnAttachmentCR ref);
1320 
1324  static DGNPLATFORM_EXPORT DrawingBoundaryDefPtr GetDrawingBoundaryFromAttachment(DgnAttachmentCR ref);
1325 
1329  static DGNPLATFORM_EXPORT bool HasDrawingBoundary(DgnAttachmentCR ref);
1330 
1337  static DGNPLATFORM_EXPORT StatusInt ComputeBoundaryFromAttachment(DPoint3dR boundaryOrigin, DPoint3dR boundarySize, RotMatrixCR matrix, DgnAttachmentCR attachment);
1338 
1345  static DGNPLATFORM_EXPORT void ComputeMasterRefScaleFromAnnotationScale (double& masterScale, double& refScale, double const& refDetailScale, double& parentAnnotationScale);
1346 
1353  static DGNPLATFORM_EXPORT void ComputeMasterRefScaleFromDetailScale (double& masterScale, double& refScale, double const& detailScale, double& parentAnnotationScale);
1354 
1358  static DGNPLATFORM_EXPORT double ComputeEffectiveDetailScaleFactor (DgnModelRefP modelRef);
1359 
1360  }; // DrawingManager
1361 
1362 //=======================================================================================
1364 //=======================================================================================
1365 typedef bvector<IDetailingSymbolFactory*> VectorOfIDetailingSymbolFactories;
1366 
1367 //=======================================================================================
1369 //=======================================================================================
1371  {
1372  FromView = 0,
1373  FromModel = 1,
1374  UserDefined = 2,
1375  };
1376 
1377 /*=================================================================================**/
1383 {
1384 public:
1385 
1389  static DGNPLATFORM_EXPORT bool IsValidDetailingSymbol (ElementHandleCR symbol);
1390 
1394  static DGNPLATFORM_EXPORT IDetailingSymbolPtr CreateDetailingSymbol (ElementHandleCR symbolEH);
1395 
1400  static DGNPLATFORM_EXPORT IDetailingSymbolPtr CreateDetailingSymbol (DetailingSymbolType type, bool is3d);
1401 
1405  static DGNPLATFORM_EXPORT bool FindCellInLibs (WCharCP cellName);
1406 
1412  static DGNPLATFORM_EXPORT StatusInt ExtractNamedViewElement (EditElementHandleR viewEEH, DgnAttachmentCP ref);
1413 
1421  static DGNPLATFORM_EXPORT StatusInt GetIntersectingReferenceByRange (DgnAttachmentCP& viewModelRefOut, DgnAttachmentCP& intersectingModelRef, DgnModelRefCR modelRef, DRange3d& calloutRange);
1422 
1430  static DGNPLATFORM_EXPORT StatusInt GetIntersectingReferenceByDirection (DgnAttachmentCP& viewModelRefOut, DgnAttachmentCP& intersectingModelRef, DgnModelRefCR modelRef, DPoint3dCR origin, DVec3dCR direction);
1431 
1439  static DGNPLATFORM_EXPORT StatusInt ComputeCalloutClipExtentsFromModel (DRange3d& range, double* zOffsetForClipInViewModelUORs, RotMatrix const& rotationOnSheet, DgnModelRefCR drawingModelRef, bool ignoreClip = false);
1440 
1450  static DGNPLATFORM_EXPORT StatusInt ComputeCalloutClipBoundaryFromReference (IDetailingSymbol* def, double* zOffsetForClipInViewModelUORs, CalloutVerticalExtent extentType, double viewBoundaryHeightInViewModelMU, DgnModelRefCR designModelRef, DgnModelRefCR activeModelRef, ViewportCP selectedViewPort);
1451 
1461  static DGNPLATFORM_EXPORT StatusInt ComputeHeightFromModelForDetail (IDetailingSymbol* def, double* zOffsetForClipInViewModelUORsOut, CalloutVerticalExtent extentType, double viewBoundaryHeightInViewModelMU, DgnModelRefCR designModelRef, DgnModelRefCR activeModelRef, ViewportCP selectedViewPort);
1462 
1472  static DGNPLATFORM_EXPORT StatusInt ComputeModelHeightForDetail (IDetailingSymbol* def, double* zOffsetForClipInViewModelUORsOut, CalloutVerticalExtent extentType, double viewBoundaryHeightInViewModelMU, DgnModelRefCR calloutModel, DgnModelRefCR activeModelRef, ViewportCP selectedViewPort);
1473 
1477  static DGNPLATFORM_EXPORT void AddPartIdOnFields (EditElementHandleR symbolEEH);
1478 
1484  static DGNPLATFORM_EXPORT StatusInt GetZOffsetOfCallout (IDetailingSymbol* def, double* zOffsetForClipInViewModelUORs, DgnModelRefCP designModelRef);
1485 
1491  static DGNPLATFORM_EXPORT StatusInt CalculateElementRange (ElementHandleCR eh, DRange3dR range, TransformCP transform);
1492 
1498  static DGNPLATFORM_EXPORT double GetClipPlaneOffset (ElementHandleCR clipEH, DgnModelRefP viewModelRef);
1499 
1500 }; // DetailingSymbolManager
1501 
1502 /*=================================================================================**/
1508  {
1509 public:
1519  static DGNPLATFORM_EXPORT StatusInt CreateFromNamedView (EditElementHandleR calloutEEH, IDetailingSymbolPtr& def, ElementHandleCR namedViewEH, DgnModelR calloutModelRef, DgnAttachmentCP refFromNamedViewRootToCallout, BoundedPlaneCP calloutPlane, RotMatrixCP viewMatrix);
1520 
1524  static DGNPLATFORM_EXPORT DetailingSymbolType GetDetailingSymbolTypeFromNamedView (ElementHandleCR namedViewEH);
1525 
1526  }; // CalloutBuilder
1527 
1528 
1529 /*=================================================================================**/
1537  {
1538  public:
1542  DGNPLATFORM_EXPORT EditElementHandleP GernerateDrawingBoundaryBoundaryElement (EditElementHandleCR drawingtitleElement);
1543  };
1544 
1546 
1548 
struct RotMatrix const * RotMatrixCP
Definition: msgeomstructs_typedefs.h:135
3x3 matrix commonly used for pure rotations, but in general may also have scales and non-perpendicula...
Definition: rotmatrix.h:21
RefCountedPtr< IDetailingSymbol > IDetailingSymbolPtr
Ref-counted smart-pointer object to control memory and life time of IDetailingSymbol pointer...
Definition: DetailingSymbol.h:502
Manager class for managing drawings.
Definition: DetailingSymbol.h:1223
Elevation callout definition.
Definition: DetailingSymbol.h:978
Drawing Title annotation definition.
Definition: DetailingSymbol.h:1095
Interface to support Creating Gap in the callout.
Definition: DetailingSymbol.h:798
DRange2d m_range
Range of plane, relative to m_origin in m_matrix orientation.
Definition: DetailingSymbol.h:57
RefCountedPtr< IDetailingSymbolFactory > IDetailingSymbolFactoryPtr
< Ref-counted smart-pointer object to control memory and life time of IDetailingSymbolFactory pointer...
Definition: DetailingSymbol.h:537
#define END_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:69
struct DPoint3d const * DPoint3dCP
Definition: msgeomstructs_typedefs.h:79
ClipVolumeCropProp
Possible options to define the clipped sides of the clip volume.
Definition: SectionClip.h:80
IDetailingSymbol * m_def
Pointer to detailing symbol to access properties of.
Definition: DetailingSymbol.h:97
CalloutVerticalExtent
Options to compute the vertical height (top height + bottom height) of callout.
Definition: DetailingSymbol.h:1370
struct DgnPlatform::Viewport const * ViewportCP
Definition: DgnPlatform.h:480
RefCountedPtr< PlanCalloutDef > PlanCalloutDefPtr
Ref-counted smart-pointer object to control memory and life time of PlanCalloutDef pointer...
Definition: DetailingSymbol.h:1010
UInt32 LevelId
Definition: DgnPlatformBaseType.r.h:85
volume definition container, contains collection of volume defs
Definition: DetailingSymbol.h:723
struct Bentley::WString const & WStringCR
Definition: Bentley.h:239
Drawing title underline length as per the length of text.
RefCountedPtr< DetailCalloutDef > DetailCalloutDefPtr
Ref-counted smart-pointer object to control memory and life time of DetailCalloutDef pointer...
Definition: DetailingSymbol.h:823
DrawingBoundaryUnderlineType
Options to control the extent of underline of drawing title.
Definition: DetailingSymbol.h:1059
bvector< DPoint3d > DPoint3dVector
A reference counted pointer to a vector of 3D points.
Definition: SectionClip.h:94
A writeable "handle" to an MSElement.
Definition: ElementHandle.h:470
Title Text definition.
Definition: DetailingSymbol.h:1044
struct DgnPlatform::ChangeAnnotationScale * ChangeAnnotationScaleP
Definition: DgnPlatform.h:175
RefCountedPtr< SectionCalloutDef > SectionCalloutDefPtr
Ref-counted smart-pointer object to control memory and life time of SectionCalloutDef pointer...
Definition: DetailingSymbol.h:802
Section callout definition.
Definition: DetailingSymbol.h:814
struct RotMatrix const & RotMatrixCR
Definition: msgeomstructs_typedefs.h:135
DrawingBoundaryBubbleSideType
Options to control whether drawing title's bubble (terminator cell) is displayed on the left hand sid...
Definition: DetailingSymbol.h:1070
#define DGNPLATFORM_EXPORT
Definition: DgnPlatform/ExportMacros.h:58
Drawing title underline length as per the drawing length.
struct DgnPlatform::DgnModelRef const & DgnModelRefCR
Definition: DgnPlatform.h:223
wchar_t const * WCharCP
Definition: Bentley.h:224
Base class to encapsulate property enums for the various detailing symbol types.
Definition: DetailingSymbol.h:93
VolumeDef holds data that represent a six-sided volume and crop masks on each of the six sides...
Definition: DetailingSymbol.h:546
Template to simplify the task of writing a class that implements the reference-counting pattern...
Definition: RefCounted.h:90
DetailingSymbolType
Detailing Symbol Types.
Definition: DetailingSymbolCore.r.h:16
RefCountedPtr< IClipElementProvider > IClipElementProviderPtr
Ref-counted smart-pointer object to control memory and life time of IClipElementProvider pointer...
Definition: DetailingSymbol.h:699
RefCountedPtr< DetailCallout3DViewDef > DetailCallout3DViewDefPtr
Ref-counted smart-pointer object to control memory and life time of DetailCallout3DViewDef pointer...
Definition: DetailingSymbol.h:880
Interior Elevation marker definition.
Definition: DetailingSymbol.h:1001
uint32_t UInt32
Definition: Bentley.r.h:128
BaseDetailingProp
Enum of properties that are common to all detailing symbols.
Definition: DetailingSymbol.h:68
Class for building callouts.
Definition: DetailingSymbol.h:1507
Drawing title underline length to be zero.
Definition: RasterCore.h:67
struct DgnPlatform::EditElementHandle const & EditElementHandleCR
Definition: DgnPlatform.h:254
RefCountedPtr< InteriorElevationCalloutDef > InteriorElevationCalloutDefPtr
Ref-counted smart-pointer object to control memory and life time of InteriorElevationCalloutDef point...
Definition: DetailingSymbol.h:989
bvector< IDetailingSymbolFactory * > VectorOfIDetailingSymbolFactories
Collection of 'IDetailingSymbolFactory' objects. 'DetailingSymbolManager' holds an object of this typ...
Definition: DetailingSymbol.h:1365
A DgnModel represents a DgnModel in memory.
Definition: DgnModel.h:236
Plan callout definition.
Definition: DetailingSymbol.h:1023
Collection of VolumeDef objects.
Definition: DetailingSymbol.h:661
A 2d low and high corner pair for range boxes.
Definition: drange2d.h:21
3d point coordinates.
Definition: dpoint3d.h:19
Compute callout's vertical height from the active view or reference attachment on which the callout w...
struct Transform const * TransformCP
Definition: msgeomstructs_typedefs.h:134
A DgnModelRef provides access to a model in a Bentley::DgnPlatform::DgnFile.
Definition: DgnModelRef.h:172
Drawing title underline length should be fixed as specified by user.
int32_t Int32
Definition: Bentley.r.h:119
Interface to traverse drawing titles of a model.
Definition: DetailingSymbol.h:1203
Interface to support flipping the direction of callout.
Definition: DetailingSymbol.h:780
RefCountedPtr< TitleTextDef > TitleTextDefPtr
Ref-counted smart-pointer object to control memory and life time of TitleTextDef pointer.
Definition: DetailingSymbol.h:1032
A shared pointer template for reference-counted objects.
Definition: RefCounted.h:119
The style will be applied to the element.
struct DgnPlatform::ElementHandle const * ElementHandleCP
Definition: DgnPlatform.h:260
DGNPLATFORM_TYPEDEFS(BoundedPlane)
Detail callout definition.
Definition: DetailingSymbol.h:837
New Detail callout structure corresponding to new detail views that are stored in 3d model like any o...
Definition: DetailingSymbol.h:893
Interface that provides direct and efficient access to element data.
Definition: ElementRefBase.h:120
RefCountedPtr< IDrawingTraverseOptions > IDrawingTraverseOptionsPtr
Ref-counted smart-pointer object to control memory and life time of IDrawingTraverseOptions pointer...
Definition: DetailingSymbol.h:1194
RefCountedPtr< DrawingBoundaryDef > DrawingBoundaryDefPtr
Ref-counted smart-pointer object to control memory and life time of DrawingBoundaryDef pointer...
Definition: DetailingSymbol.h:1088
#define BEGIN_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:68
struct DgnPlatform::DgnModelRef const * DgnModelRefCP
Definition: DgnPlatform.h:223
A DgnAttachment represents a reference from one model to another, with transforming, clipping, and filtering applied.
Definition: DgnAttachment.h:192
int StatusInt
Definition: Bentley.h:222
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
Interface implemented by callouts to control their behavior of preserving the 'up-direction' of the m...
Definition: DetailingSymbol.h:762
RefCountedPtr< ElevationCalloutDef > ElevationCalloutDefPtr
Ref-counted smart-pointer object to control memory and life time of ElevationCalloutDef pointer...
Definition: DetailingSymbol.h:965
Base class for the various detailing symbol types.
Definition: DetailingSymbol.h:275
IDetailingSymbolFactory is a factory interface that creates and identifies a subclass of IDetailingSy...
Definition: DetailingSymbol.h:511
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79
Handler defines the standard queries and operations available on all elements, whether graphical or n...
Definition: Handler.h:159
struct DgnPlatform::ElementHandle const & ElementHandleCR
Definition: DgnPlatform.h:260
Object containing options for traversing drawing titles of a model.
Definition: DetailingSymbol.h:1176
struct DVec3d const & DVec3dCR
Definition: msgeomstructs_typedefs.h:89
virtual DGNPLATFORM_EXPORT ~IDrawingTraverseHandler()
Destructor.
Definition: DetailingSymbol.h:1215
struct DgnPlatform::DgnAttachment const * DgnAttachmentCP
Definition: DgnPlatform.h:185
Manager class for managing creating, deleting and modifying of detailing symbols. ...
Definition: DetailingSymbol.h:1382
DrawingBoundaryDisplayStatus
Options to control whether drawing title's settings like boundary and annotation should be visible or...
Definition: DetailingSymbol.h:1079
Provides a clip element definition.
Definition: DetailingSymbol.h:672
Vector with x,y,z components.
Definition: dvec3d.h:110
Provides ability to generate to Drawing Title boundary element from drawing title persistent element...
Definition: DetailingSymbol.h:1536
RotMatrix m_matrix
rotation matrix of plane.
Definition: DetailingSymbol.h:56
Compute callout's vertical height from the entire height of model displayed in the active view or the...
A 3d low and high corner pair for range boxes.
Definition: drange3d.h:20
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
int m_prop
ID of property to access.
Definition: DetailingSymbol.h:98
struct DgnPlatform::DgnAttachment const & DgnAttachmentCR
Definition: DgnPlatform.h:185
Interface implemented by callouts that provide IClipElementProvider object to synchronize themselves ...
Definition: DetailingSymbol.h:708
DPoint3d m_origin
origin of bounded plane.
Definition: DetailingSymbol.h:55

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.