AccuDraw.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
9 
10 #include <DgnView\DgnViewSettings.r.h> // For Accudraw Structs
11 #include <DgnPlatform\ValueParse.h> // For AngleParser and DistanceParser
12 
16 DGNPLATFORM_TYPEDEFS(AccuDraw)
17 
19 
21  {
31  ACCUDRAW_Lock_X = (1<<9),
32  ACCUDRAW_Lock_Y = (1<<10),
33  ACCUDRAW_Lock_Z = (1<<11),
34  ACCUDRAW_Disable = (1<<12),
37  ACCUDRAW_SetFocus = (1<<15),
38  ACCUDRAW_Delay = (1<<16),
39  ACCUDRAW_OrientACS = (1<<17),
40  ACCUDRAW_SetXAxis2 = (1<<18),
41  ACCUDRAW_LockAngle = (1<<19),
46  };
47 
48 
50  {
51  protected:
52  virtual AdrawPrefs& _GetPrefs() = 0;
53 
54  public:
56  {
57  return _GetPrefs();
58  }
59  };
60 
61 /*=================================================================================**/
64 struct AccuDraw
65 {
66 public:
67 
69  {
70  MODE_Polar = 0,
71  MODE_Rectangular = 1,
72  };
73 
75  {
76  ROTATION_Top = 1,
77  ROTATION_Front = 2,
78  ROTATION_Side = 3,
79  ROTATION_View = 4,
80  ROTATION_ACS = 5,
81  ROTATION_Context = 6,
82  ROTATION_Restore = 7,
83  };
84 
86  {
87  NONE_LOCKED = 0,
88  X_BM = (1),
89  Y_BM = (1<<1),
90  VEC_BM = (1<<2),
91  DIST_BM = (1<<3),
92  XY_BM = (X_BM | Y_BM),
93  ANGLE_BM = (XY_BM | VEC_BM),
94  };
95 
96 private:
97  virtual void MakeClassAbstract() = 0;
98 public:
99  DGNVIEW_EXPORT bool IsActive ();
100  DGNVIEW_EXPORT void Activate ();
101  DGNVIEW_EXPORT void Deactivate ();
102 
103  DGNVIEW_EXPORT IndexedViewportP GetCompassViewport ();
104  DGNVIEW_EXPORT void GetRotation (RotMatrixR rMatrix);
105  DGNVIEW_EXPORT void GetOrigin (DPoint3dR origin);
106  DGNVIEW_EXPORT void GetDelta (DVec3dR delta);
107  DGNVIEW_EXPORT double GetDistance ();
108  DGNVIEW_EXPORT double GetAngle ();
109  DGNVIEW_EXPORT LockedStates GetLocked ();
110  DGNVIEW_EXPORT bool GetFloatingOrigin ();
111  DGNVIEW_EXPORT CompassMode GetCompassMode ();
112  DGNVIEW_EXPORT RotationMode GetRotationMode ();
113 
115  DGNVIEW_EXPORT BentleyStatus SetContext (AccuDrawFlags flags, DPoint3dCP origin=NULL, DVec3dCP orientation=NULL, DVec3dCP delta=NULL, double const* distance=NULL, double const* angle=NULL, TransformCP trans=NULL);
116 
118  DGNVIEW_EXPORT static AccuDrawR GetInstance ();
119 
120  DGNVIEW_EXPORT AccudrawInf* GetAccudrawInfo();
121 }; // AccuDraw
122 
123 
struct DVec3d const * DVec3dCP
Definition: msgeomstructs_typedefs.h:89
3x3 matrix commonly used for pure rotations, but in general may also have scales and non-perpendicula...
Definition: rotmatrix.h:21
Definition: AccuDraw.h:64
#define END_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:69
struct DPoint3d const * DPoint3dCP
Definition: msgeomstructs_typedefs.h:79
LockedStates
Definition: AccuDraw.h:85
AccuDrawFlags
Definition: AccuDraw.h:20
Definition: AccuDraw.h:33
Definition: AccuDraw.h:31
#define NULL
Definition: Bentley.h:157
Definition: AccuDraw.h:32
A sub-class of Viewport that represents one of the 8 numbered views.
Definition: IViewManager.h:185
AdrawPrefs & GetPrefs()
Definition: AccuDraw.h:55
RotationMode
Definition: AccuDraw.h:74
3d point coordinates.
Definition: dpoint3d.h:19
BentleyStatus
Definition: Bentley.h:208
struct Transform const * TransformCP
Definition: msgeomstructs_typedefs.h:134
#define DGNPLATFORM_TYPEDEFS(_name_)
Definition: DgnPlatform.h:73
Definition: AccuDraw.h:38
#define BEGIN_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:68
CompassMode
Definition: AccuDraw.h:68
Vector with x,y,z components.
Definition: dvec3d.h:110
Definition: DgnViewSettings.r.h:73
Definition: AccuDraw.h:49

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