Constraint3dCoreApi.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 
11 #if !defined (mdl_type_resource_generator) && !defined (mdl_resource_compiler)
12 
14 
15 
16 /*=================================================================================**/
22 #ifdef __CONSTRAINT3DCORE_BUILD__
24  #define CONSTRAINT3DCORE_EXPORT __declspec(dllexport)
25 #else
26  #define CONSTRAINT3DCORE_EXPORT __declspec(dllimport)
27 #endif
28 
29 #define BEGIN_CONSTRAINT3D_NAMESPACE BEGIN_BENTLEY_DGNPLATFORM_NAMESPACE namespace Constraint3d {
30 #define END_CONSTRAINT3D_NAMESPACE }}}
31 #define USING_NAMESPACE_CONSTRAINT3D using namespace Bentley::DgnPlatform::Constraint3d;
32 
33 #define CONSTRAINT3D_CORE_TYPEDEFS(t) \
34  BEGIN_CONSTRAINT3D_NAMESPACE struct t; END_CONSTRAINT3D_NAMESPACE \
35  ADD_BENTLEY_TYPEDEFS (DgnPlatform::Constraint3d,t);
36 
38 
39 CONSTRAINT3D_CORE_TYPEDEFS (Constraint3dBase)
40 CONSTRAINT3D_CORE_TYPEDEFS (DistanceDimension3d)
41 CONSTRAINT3D_CORE_TYPEDEFS (GeometryId)
42 CONSTRAINT3D_CORE_TYPEDEFS (FaceGeometryId)
43 CONSTRAINT3D_CORE_TYPEDEFS (EdgeGeometryId)
44 CONSTRAINT3D_CORE_TYPEDEFS (CurveGeometryId)
45 CONSTRAINT3D_CORE_TYPEDEFS (Constraint3dBodyCache)
46 
47 
48 class g_node;
49 enum DCM3_g_type;
50 
51 BEGIN_CONSTRAINT3D_NAMESPACE
52 
53 #endif
54 
56  {
57  Initial = 0,
58  Latest = 0,
59  };
60 
62  {
63  Data = 0,
65  };
66 
67 //=======================================================================================
68 // @bsiclass Bentley Systems
69 //=======================================================================================
70 enum class Constraint3dType
71  {
72  DCM3_DISTANCE = 0, // ...dcmtypes.hxx
73  DCM3_ANGLE = 1,
74  DCM3_CONCENTRIC = 2,
75  DCM3_RADIUS = 3,
76  DCM3_PARALLEL = 4,
78  DCM3_COINCIDENT = 6,
79  DCM3_TANGENT = 7,
80  DCM3_MAJOR_RADIUS = 10,
81  DCM3_MINOR_RADIUS = 11,
82  DCM3_EQUAL_RADIUS = 12,
83  DCM3_MIDPOINT = 14,
84  DCM3_DEPENDENCE = 15,
90  DCM3_CURVE_LENGTH = 25,
91  DCM3_SYMMETRIC = 50,
92  DCM3_HALF_ANGLE = 51,
97  Fixed = 0xfffe,
98  Unspecified = 0xffff,
99  };
100 
101 
102 //=======================================================================================
103 // @bsiclass Bentley Systems
104 //=======================================================================================
105 enum class SurfaceOrientation // DCM3_surface_orientation
106  {
107  NotSpecified = 0,
108  Aligned,
109  AntiAligned,
110  };
111 
112 //=======================================================================================
113 // @bsiclass Bentley Systems
114 //=======================================================================================
115 enum class Constraint3dHalfSpace // DCM3_half_space
116  {
117  NotSpecified = 0,
118  Positive,
119  Negative,
120  };
121 
122 
123 #if !defined (mdl_type_resource_generator) && !defined (mdl_resource_compiler)
124 
125 
129 
130 typedef bvector <GeometryIdPtr> T_GeometryIds;
131 typedef bvector <Constraint3dPtr> T_Constraints;
132 typedef bmap <ElementRefP, Transform> T_ElementTransformMap;
133 
134 
135 //=======================================================================================
136 // @bsiclass Bentley Systems
137 //=======================================================================================
139 {
140  g_node* m_dcmNode;
142  GeometryIdP m_geometryId;
144 
145 
146  virtual DCM3_g_type _Identify() = 0;
147  virtual ~SolverGeometry () { }
148 
149  SolverGeometry (GeometryIdP geometryId) : m_geometryId (geometryId), m_dcmNode (NULL), m_reversed (false) { m_transform.InitIdentity(); }
150  virtual void _Transform (TransformCR transform) { m_transform = Transform::FromProduct (m_transform, transform); }
151  virtual void _AddToSolver (class DCM3_dimension_system* dimensionSystem);
152 
153  virtual double GetParameter () const;
154  virtual void SetParameter (double parameter);
155  virtual void GetParameter (DPoint2dR parameter) const;
156  virtual void SetParameter (DPoint2dCR parameter);
157 
158 
159 }; // SolverGeometry
160 
161 
162 //=======================================================================================
163 // @bsiclass Bentley Systems
164 //=======================================================================================
166 {
167 public:
168  enum class Type
169  {
170  Curve = 1,
171  Face = 2,
172  Element = 3,
173  Edge = 4,
174  RegionPlane = 5,
175  BRepVertex = 6,
176  CurvePoint = 7,
177  BCurve = 8,
178  FaceAxis = 9,
179  CurveArcAxis = 10,
180  EdgeArcAxis = 11,
181  InvalidElement = 0xff,
182  };
183 
184  enum class Status
185  {
186  DCM3_G_UNKNOWN, /* unknown status (newly added to system)*/
187  DCM3_G_FIXED, /* geometry has been declared fixed */
188  DCM3_G_OVER_DEFINED, /* geometry is over defined by dimensions */
189  DCM3_G_NOT_CONSISTENT, /* geometry inconsistently defined by dimensions */
190  DCM3_G_NOT_CONSISTENT_DIMENSIONS, /* geometry inconsistently defined by dimensions - change model */
191  DCM3_G_NOT_CONSISTENT_OTHER, /* geometry inconsistently defined by dimensions - try changing solving mode */
192  DCM3_G_NOT_CONSISTENT_UNKNOWN, /* geometry inconsistently defined by dimensions - cannot ascertain what to recommend */
193  DCM3_G_NOT_CHANGED, /* geometry was not changed */
194  DCM3_G_WELL_DEFINED, /* geometry is well defined by dimensions */
195  DCM3_G_UNDER_DEFINED, /* geometry is underdefined by dimensions */
196  DCM3_G_WITHIN_BOUNDS, /* geometry is underdefined but only due to a bounded dimension */
197  };
198 
199 
200  enum class DimensionToComponent // Matches dcmtypes.hxx.
201  {
209  };
210 
212  {
213  FlagMask_ParamX = 0x0001,
214  FlagMask_ParamY = 0x0001 << 1,
215  FlagMask_EntityIndex = 0x0001 << 2,
216  };
217 
218 
219 
220 protected:
223  ElementHandle m_eh;
224  PersistentElementPath m_pep;
227  Constraint3dBodyCacheP m_bodyCache;
228 
229 
230  GeometryId (ElementHandle eh, PersistentElementPathCR pep, Type type, Status status) : m_eh (eh), m_pep (pep), m_type (type), m_status (status), m_entityIndex(0), m_bodyCache (NULL) { m_parameter.Zero(); }
231 
232 public:
234 
235  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (Type type, Status status, DataInternalizer& source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache = NULL);
236 
237  Type GetType() const { return m_type; }
238  Status GetStatus () const { return m_status; }
239  void SetStatus (Status status) { m_status = status; }
240  ElementRefP GetElementRef () const { return m_eh.GetElementRef(); }
241  ElementHandleCR GetElement () const { return m_eh; }
244  void SetElementRef (ElementRefP elementRef) { m_eh = ElementHandle (elementRef); }
245  void SetBodyCache (Constraint3dBodyCacheP cache) { m_bodyCache = cache; }
247  CONSTRAINT3DCORE_EXPORT BentleyStatus Extract (DataInternalizer& source);
248  CONSTRAINT3DCORE_EXPORT BentleyStatus GetRootRange (DRange3dR range) const;
249  CONSTRAINT3DCORE_EXPORT BentleyStatus SaveOptional (DataExternalizer& sink);
250 
251  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Save (DataExternalizer& sink);
252  CONSTRAINT3DCORE_EXPORT virtual bool _LessThan (GeometryIdCR id0, GeometryIdCR id1) const;
253  virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const { return ERROR; }
254  virtual BentleyStatus _Flash (ViewContextR viewContext) const { return ERROR; }
255  virtual bool _ValidateRootChange () const { return false; }
256  virtual SolverGeometryPtr _CreateSolverGeometry (ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) { return NULL; }
257  virtual SolverGeometryPtr _CreateSolverGeometry (CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) { return NULL; }
258  virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const { return ERROR; }
259 
260  virtual FaceId const* _GetFaceId () const { return NULL; }
261  virtual EdgeId const* _GetEdgeId() const { return NULL; }
262  virtual VertexId const* _GetVertexId() const { return NULL; }
264  virtual bool _OmitSolverGeometry () { return false; }
265 
266 
267  double GetParameter () const { return m_parameter.x; }
268  void SetParameter (double parameter) { m_parameter.x = parameter; }
269  void GetParameter (DPoint2dR parameter) const { parameter = m_parameter; }
270  void SetParameter (DPoint2dCR parameter) { m_parameter = parameter; }
271  UInt32 GetEntityIndex () const { return m_entityIndex; }
272  void SetEntityIndex (UInt32 entityIndex) { m_entityIndex = entityIndex; }
273 
274 
275  bool LessThanWithoutParams (GeometryIdCR id0, GeometryIdCR id1) const;
276 
277  CONSTRAINT3DCORE_EXPORT bool operator < (GeometryIdCR otherId) const { return _LessThan (*this, otherId); }
278 
279 
280 }; // GeometryId
281 
282 
283 //=======================================================================================
284 // @bsiclass Bentley Systems
285 //=======================================================================================
287 {
288  bool operator () (GeometryIdCP const& id0, GeometryIdCP const& id1) const { return *id0 < *id1; }
289 };
290 
291 
292 
293 
294 //=======================================================================================
295 // @bsiclass Bentley Systems
296 //=======================================================================================
298 {
300 
301 protected:
303 
304  FaceGeometryId (ElementHandleCR eh, PersistentElementPathCR pep, Status status, FaceId const& faceId) : GeometryId (eh, pep, Type::Face, status), m_faceId (faceId) { }
305 
306 public:
307  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, ISubEntityCR subEntity);
308  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
309 
310 
311  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Save (DataExternalizer& sink);
312  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR pointh) const override;
313  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
314  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange () const override;
315  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
316  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
317  CONSTRAINT3DCORE_EXPORT virtual bool _LessThan (GeometryIdCR id0, GeometryIdCR id1) const override;
318  FaceId const* _GetFaceId () const { return &m_faceId; }
319 
320 
321 }; // FaceGeometryId
322 
323 //=======================================================================================
324 // @bsiclass Bentley Systems
325 //=======================================================================================
326 struct FixedElementId : GeometryId // NO LONGER CREATED -- For beta compatibility only.
327 {
329 
330 protected:
331  FixedElementId (ElementHandleCR eh, PersistentElementPathCR pep, Status status) : GeometryId (eh, pep, Type::Element, status) { }
332 
333 public:
334  static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status) { return new FixedElementId (eh, pep, status); }
335  static GeometryIdPtr Create (ElementHandleCR eh) { return new FixedElementId (eh, PersistentElementPath(), Status::DCM3_G_UNKNOWN); }
336 
337  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
338  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
339  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange() const override;
340  virtual bool _OmitSolverGeometry () { return true; }
341 
342 
343 }; // FixedElementId
344 
345 //=======================================================================================
346 // @bsiclass Bentley Systems
347 //=======================================================================================
349 {
351 
352 protected:
354 
355  EdgeGeometryId (ElementHandleCR eh, PersistentElementPathCR pep, Status status, EdgeId const& edgeId) : GeometryId (eh, pep, Type::Edge, status), m_edgeId (edgeId) { }
356 
357 public:
358  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, ISubEntityCR subEntity);
359  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
360 
361  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Save (DataExternalizer& sink);
362  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
363  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
364  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange () const override;
365  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
366  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
367  CONSTRAINT3DCORE_EXPORT virtual bool _LessThan (GeometryIdCR id0, GeometryIdCR id1) const override;
368  EdgeId const* _GetEdgeId () const { return &m_edgeId; }
369 
370 
372  BentleyStatus GetEdgePoint (DPoint3dR point, double fraction) const;
373 
374 
375 }; // EdgeGeometryId
376 
377 
378 //=======================================================================================
379 // @bsiclass Bentley Systems
380 //=======================================================================================
382 {
384 
386 
387 public:
388  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, EdgeId const& edgeId);
389  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
390 
391  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
392  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
393  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
395 
396 
397 }; // EdgeArcAxisGeometryId
398 
399 //=======================================================================================
400 // @bsiclass Bentley Systems
401 //=======================================================================================
403 {
405 
406 protected:
408 
409  BRepVertexGeometryId (ElementHandleCR eh, PersistentElementPathCR pep, Status status, VertexId const& vertexId) : GeometryId (eh, pep, Type::BRepVertex, status), m_vertexId (vertexId) { }
410 
411 
412 
413 public:
414  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, ISubEntityCR subEntity);
415  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
416 
417  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Save (DataExternalizer& sink);
418  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
419  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
420  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
421  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
422  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange () const override;
423  CONSTRAINT3DCORE_EXPORT virtual bool _LessThan (GeometryIdCR id0, GeometryIdCR id1) const override;
424  VertexId const* _GetVertexId () const { return &m_vertexId; }
425 
426 
427 
428 }; // EdgePointGeometryId
429 
430 
431 //=======================================================================================
432 // @bsiclass Bentley Systems
433 //=======================================================================================
435 {
437 
439  UInt32 m_segmentIndex; // Segment index for linestrings.
440 
441 protected:
442  CurveGeometryId (ElementHandleCR eh, PersistentElementPathCR pep, Status status, CurvePrimitiveIdPtr& curveId, UInt32 segmentIndex, double fraction) : GeometryId (eh, pep, Type::Curve, status), m_curveId (curveId), m_segmentIndex (segmentIndex) { SetParameter (fraction); }
443 
444 public:
445  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, CurveLocationDetailCR curveLocationDetail);
446  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
447 
448  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Save (DataExternalizer& sink);
449  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
450  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
451  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange() const override;
452  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
453  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
454  CONSTRAINT3DCORE_EXPORT virtual bool _LessThan (GeometryIdCR id0, GeometryIdCR id1) const override;
455 
456  static BentleyStatus Extract (CurvePrimitiveIdPtr& curveId, UInt32& subindex, DataInternalizer& source);
458  BentleyStatus GetCurve (ICurvePrimitivePtr& curve, CurveVectorCR curveVector) const;
459  BentleyStatus GetCurvePoint (DPoint3dR point, double fraction) const;
460 
461 }; // CurveGeometryId
462 
463 
464 //=======================================================================================
465 // @bsiclass Bentley Systems
466 //=======================================================================================
468 {
470 
472 
473 public:
474  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, CurvePrimitiveIdCR curvePrimitiveId);
475  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
476 
477  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
478  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
479  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
481 
482 
483 }; // CurveArcAxisGeometryId
484 
485 
486 //=======================================================================================
487 // @bsiclass Bentley Systems
488 //=======================================================================================
490 {
492 
493 protected:
494  CurvePointGeometryId (ElementHandleCR eh, PersistentElementPathCR pep, Status status, CurvePrimitiveIdPtr& curveId, UInt32 segmentIndex, double fraction) : CurveGeometryId (eh, pep, status, curveId, segmentIndex, fraction) { m_type = Type::CurvePoint; }
495 
496 public:
497  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, CurveLocationDetailCR curveLocationDetail);
498  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
499 
500  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
501  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
502  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
503  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
504 
505 }; // CurvePointGeometryId
506 
507 
508 //=======================================================================================
509 // @bsiclass Bentley Systems
510 //=======================================================================================
512 {
514 
515 protected:
516  RegionPlaneId (ElementHandleCR eh, PersistentElementPathCR pep, Status status) : GeometryId (eh, pep, Type::RegionPlane, status) { }
517 
518 public:
519  static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status) { return new RegionPlaneId (eh, pep, status); }
520  static GeometryIdPtr Create (ElementHandleCR eh) { return new RegionPlaneId (eh, PersistentElementPath(), Status::DCM3_G_UNKNOWN); }
521 
522 
523  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR point) const override;
524  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
525  CONSTRAINT3DCORE_EXPORT virtual bool _ValidateRootChange () const override;
526  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
527  CONSTRAINT3DCORE_EXPORT virtual SolverGeometryPtr _CreateSolverGeometry (CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override;
528 
529  BentleyStatus GetCurveVector (CurveVectorPtr& curveVector) const;
530 
531 
532 }; // RegionPlaneId
533 
534 
535 //=======================================================================================
536 // @bsiclass Bentley Systems
537 //=======================================================================================
539 {
541 
542 protected:
544 
546 
547 public:
548  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, FaceId const& faceId);
549  CONSTRAINT3DCORE_EXPORT static GeometryIdPtr Create (ElementHandleCR eh, PersistentElementPathCR pep, Status status, DataInternalizer& source);
550 
551 
552  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetMarkerLocation (DPoint3dR pointh) const override;
553  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _Flash (ViewContextR viewContext) const override;
554  CONSTRAINT3DCORE_EXPORT virtual BentleyStatus _GetSolidSubEntity (ISubEntityPtr& subEntity, ISolidKernelEntityPtr& body) const override;
555  virtual DimensionToComponent _DimensionToComponent() const override;
556  FaceId const* _GetFaceId () const override { return &m_faceId; }
557 
559 
560 
561 }; // FaceGeometryId
562 
563 //=======================================================================================
564 // @bsiclass Bentley Systems
565 //=======================================================================================
567 {
568 
569 public:
570  enum class Status
571  {
572  DCM3_D_UNKNOWN, /* unknown status (newly added to system) */
573  DCM3_D_OVER_DEFINED, /* dimension specification is over-defined or too complex to solve */
574  DCM3_D_NOT_CONSISTENT, /* given dimension value is inconsistent */
575  DCM3_D_NOT_CONSISTENT_DIMENSIONS, /* given dimension value is inconsistent - change model */
576  DCM3_D_NOT_CONSISTENT_OTHER, /* given dimension value is inconsistent - try changing solving mode */
577  DCM3_D_NOT_CONSISTENT_UNKNOWN, /* given dimension value is inconsistent - cannot ascertain what to recommend */
578  DCM3_D_NOT_CHANGED, /* given dimension not changed */
579  DCM3_D_BETWEEN_SET_MEMBERS, /* given dimension between set members - has not solved - could also be between fixed geometry */
580  DCM3_D_BETWEEN_FIXED, /* given dimension between fixed geometry - has not solved */
581  DCM3_D_NOT_SOLVED, /* given dimension has not solved */
582  DCM3_D_SOLVED, /* dimension value is satisfied by solution */
583  Redundant = 0xffff,
584  };
585 
587  {
589  FlagMask_GroupLock = 0x0001 << 2,
590  FlagMask_HalfSpace1 = 0x0003 << 4,
591  FlagMask_HalfSpace2 = 0x0003 << 6,
592  };
593 
594 
595  CONSTRAINT3DCORE_EXPORT static Constraint3dPtr Create (Constraint3dType type);
596  CONSTRAINT3DCORE_EXPORT static Constraint3dPtr Create (Constraint3dType type, T_GeometryIds const& geometryIds, UInt32 flags);
597 
598  virtual BentleyStatus _Extract (DataInternalizer& source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache);
599  virtual BentleyStatus _Save (DataExternalizer& sink);
600  virtual bool _DoEditValue () const { return false; }
601  virtual bool _IsDirected () const { return false; }
602  virtual bool _IsDimension () const { return false; }
603  virtual void _Draw (ViewContextR viewContext, DgnModelRefR) const { }
604  virtual double _GetValue () const { return 0.0; }
605  virtual void _SetValue (double value) { BeAssert (false); }
606  virtual WString _GetVariableAccess () const { return WString(); }
607  virtual void _SetVariableAccess (WStringCR variableAccess) { BeAssert (false); }
608  virtual bool _DisplayMarkers (ViewContextR viewContext) const { return true; }
609 
610  Constraint3dType GetType () const { return m_type; }
611  Status GetStatus () const { return m_status; }
612  void SetStatus (Status status) { m_status = status; }
613  UInt32 GetFlags () const { return m_flags; }
614  void SetFlags (UInt32 flags) { m_flags = flags; }
615  T_GeometryIds const& GetGeometryIds() const { return m_geometryIds; }
616  void SetGeometryIds (T_GeometryIds const& geometryIds) { m_geometryIds = geometryIds; }
621  void SetHalfSpace1(Constraint3dHalfSpace halfSpace) { m_flags &= ~FlagMask_HalfSpace1; m_flags |= ((UInt32) halfSpace << 4); }
622  void SetHalfSpace2(Constraint3dHalfSpace halfSpace) { m_flags &= ~FlagMask_HalfSpace2; m_flags |= ((UInt32) halfSpace << 6); }
623 
624  bool GetGroupLock () const { return 0 != (m_flags & m_flags & FlagMask_GroupLock); }
625  CONSTRAINT3DCORE_EXPORT void SetGroupLock (bool groupLock);
626  bool HasBoundVariable() const { return !_GetVariableAccess().empty(); }
627  CONSTRAINT3DCORE_EXPORT bool IsRedundant (Constraint3dBaseCR other) const;
628  CONSTRAINT3DCORE_EXPORT bool HasElementRef (ElementRefP elementRef) const;
629  CONSTRAINT3DCORE_EXPORT void GetElementRefs (T_StdElementRefSet& elementRefs) const;
630  CONSTRAINT3DCORE_EXPORT BentleyStatus GetRootRange (DRange3dR range) const;
631 
632 
633 protected:
634  Constraint3dBase (Constraint3dType type) : m_type (type), m_status (Status::DCM3_D_UNKNOWN), m_flags (0) { }
635 
640 
641 }; // Constraint3dBase
642 
643 
644 //=======================================================================================
645 // @bsiclass Bentley Systems
646 //=======================================================================================
648 {
650 
651  virtual bool _IsDirected () const override { return true; }
653 
654 };
655 
656 //=======================================================================================
657 // @bsiclass Bentley Systems
658 //=======================================================================================
660 {
662 
664 };
665 
666 //=======================================================================================
667 // @bsiclass Bentley Systems
668 //=======================================================================================
670 {
672 
674 
675 };
676 
677 //=======================================================================================
678 // @bsiclass Bentley Systems
679 //=======================================================================================
681 {
683 
684  virtual bool _IsDirected () const override { return true; }
686 
687 };
688 
689 //=======================================================================================
690 // @bsiclass Bentley Systems
691 //=======================================================================================
693 {
695 
697 
698 };
699 //=======================================================================================
700 // @bsiclass Bentley Systems
701 //=======================================================================================
703 {
705 
707 
708 };
709 
710 
711 //=======================================================================================
712 // @bsiclass Bentley Systems
713 //=======================================================================================
715 {
717 
718 protected:
719  double m_value;
721 
722 
723 public:
725 
726  virtual BentleyStatus _Extract (DataInternalizer& source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache) override;
727  virtual BentleyStatus _Save (DataExternalizer& sink) override;
728  virtual bool _DoEditValue () const override { return true; }
729  virtual bool _DisplayMarkers (ViewContextR viewContext) const override { return false; }
730  virtual bool _IsDimension () const override { return true; }
731  virtual double _GetValue () const override { return m_value; }
732  virtual void _SetValue (double value) override { m_value = value; }
733  virtual WString _GetVariableAccess () const override { return m_variableAccess; }
734  virtual void _SetVariableAccess (WStringCR variableAccess) override { m_variableAccess = variableAccess; }
735 
736 }; // Dimension3dBase
737 
738 
739 
740 //=======================================================================================
741 // @bsiclass Bentley Systems
742 //=======================================================================================
744 {
746 
747 public:
749 
750  virtual void _Draw (ViewContextR viewContext, DgnModelRefR modelRef) const override;
751 
752  CONSTRAINT3DCORE_EXPORT void Draw (ViewContextR viewContext, DgnModelRefR modelRef, T_ElementTransformMap const* transformMap) const;
753  CONSTRAINT3DCORE_EXPORT static Constraint3dPtr Create (T_GeometryIds const& geometryIds, UInt32 flags, double value, WStringCR variableAccess);
754  CONSTRAINT3DCORE_EXPORT static BentleyStatus CalculateDimensionDistance (double& value, Constraint3dHalfSpace halfSpaces[2], T_GeometryIds const& geometryIds, DgnModelRefR modelRef);
755 
756 }; // DimensionConstraint3d
757 
758 //=======================================================================================
759 // @bsistruct Diego.Pinate 09/16
760 //=======================================================================================
762 {
764 
766  {
769  };
770 
771  // Position of the arc shown to the user, this just represents the length from the intersection point of the planes
772  // to the arc that shows the value of the angle
774  // The axis is regenerated each time DCubed solves it and origin is irrelevant
776  // These settings are for saving space for further enhancement of the angle constraint
778  // Unused save data for potential enhancements later on
779  double m_unused0;
780  double m_unused1;
781 
783 
784  virtual void _Draw (ViewContextR viewContext, DgnModelRefR modelRef) const override;
785  virtual bool _IsDirected() const override { return true; }
786  virtual BentleyStatus _Extract (DataInternalizer& source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache) override;
787  virtual BentleyStatus _Save (DataExternalizer& sink) override;
788 
789  DVec3d GetAxis() { return m_axis; }
790  void SetAxis(DVec3dCR axis);
791 
792  // Computes the axis and returns it
793  DRay3d ComputeAxis(T_GeometryIds const& geometryIds, bool invert);
794 
795  CONSTRAINT3DCORE_EXPORT void ComputeArcPosition(DPoint3dCR point);
796  CONSTRAINT3DCORE_EXPORT void ComputeDefaultArcPosition();
797  CONSTRAINT3DCORE_EXPORT BentleyStatus GetNormalPlane(DPlane3dR normalPlane);
798  CONSTRAINT3DCORE_EXPORT void Draw (ViewContextR viewContext, DgnModelRefR modelRef, T_ElementTransformMap const* transformMap) const;
799  CONSTRAINT3DCORE_EXPORT static Constraint3dPtr Create (T_GeometryIds const& geometryIds, DRay3dCR axis, UInt32 flags, double value, WStringCR variableAccess, UInt32 settings);
800  CONSTRAINT3DCORE_EXPORT static BentleyStatus CalculateAngle (double& value, T_GeometryIds const& geometryIds);
801 
802 }; // Angle3dConstraint
803 
804 
805 
806 //=======================================================================================
807 // @bsiclass Bentley Systems
808 //=======================================================================================
810 {
811  CONSTRAINT3DCORE_EXPORT static void RemoveInvalidConstraints (size_t& nInvalid, T_Constraints& constraints, ElementRefP changed, ElementHandleCR hostEh);
812  CONSTRAINT3DCORE_EXPORT static void GetConstrainedElements (T_StdElementRefSet& elements, T_Constraints const& constraints, DgnModelRefP modelRef);
813  CONSTRAINT3DCORE_EXPORT static BentleyStatus GetNamedGroupMembers (T_StdElementRefSet& members, NamedGroupPtr& namedGroup);
814  CONSTRAINT3DCORE_EXPORT static BentleyStatus GetNamedGroupMembers (T_StdElementRefSet& members, ElementRefP elementRef, DgnModelRefP modelRef);
815  CONSTRAINT3DCORE_EXPORT static BentleyStatus GetFaceAxis (ICurvePrimitivePtr& axis, ISubEntityCR face);
816  CONSTRAINT3DCORE_EXPORT static BentleyStatus GetEdgeArcAxis (DRay3dR axis, ISubEntityCR edge);
817 
818 }; // Constraint3dUtil
819 
820 
821 
822 /*=================================================================================**/
825 struct Constraint3dBodyCache : ElementRefAppData
826 {
827  static Key s_key;
828 
829 private:
830  typedef bmap<UInt32, ISolidKernelEntityPtr> Constraint3dBodyCacheValueMap;
831  bmap <ElementRefP, Constraint3dBodyCacheValueMap> m_bodyMap;
832 
833 protected:
834  virtual void _OnCleanup (ElementRefP host, bool unloadingModel, HeapZoneR zone) override;
835 
836 public:
837  CONSTRAINT3DCORE_EXPORT static Constraint3dBodyCacheP Get (ElementRefP host);
838  CONSTRAINT3DCORE_EXPORT static void KernelRestarted ();
839 
840  CONSTRAINT3DCORE_EXPORT ISolidKernelEntityPtr GetBody (ElementRefP elementRef, UInt32 entityIndex);
841  CONSTRAINT3DCORE_EXPORT void AddBody (ElementRefP elementRef, UInt32 entityIndex, ISolidKernelEntityPtr);
842  CONSTRAINT3DCORE_EXPORT void RemoveBodies (T_StdElementRefSet elementRefs);
843 
844 };
845 
846 
847 //=======================================================================================
848 // @bsiclass Bentley Systems
849 //=======================================================================================
851 {
852 private:
853  struct SolverImplementation* m_solverImpl;
854 
855 public:
856  CONSTRAINT3DCORE_EXPORT Constraint3dSolver () : m_solverImpl (NULL) { }
857  CONSTRAINT3DCORE_EXPORT ~Constraint3dSolver ();
858 
859  CONSTRAINT3DCORE_EXPORT BentleyStatus Initialize (T_Constraints const& constraints, DgnModelRefR modelRef, bmap <ElementRefP, EditElementHandleP>* modifiedElements = NULL, char const* debugJournal = NULL);
860  CONSTRAINT3DCORE_EXPORT BentleyStatus Evaluate (T_ElementTransformMap& transformMap);
861  CONSTRAINT3DCORE_EXPORT BentleyStatus Evaluate (T_ElementTransformMap& transformMap, GeometryIdCR softReferenceId);
862  CONSTRAINT3DCORE_EXPORT BentleyStatus Evaluate (T_ElementTransformMap& transformMap, T_StdElementRefSet const& elementRefs);
863  CONSTRAINT3DCORE_EXPORT BentleyStatus DynamicEvaluate (T_ElementTransformMap& transformMap, T_StdElementRefSet const& elementRefs, TransformCR tranform);
864  CONSTRAINT3DCORE_EXPORT BentleyStatus DynamicEvaluate (T_ElementTransformMap& transformOutMap, T_ElementTransformMap& transformInMap);
865  CONSTRAINT3DCORE_EXPORT BentleyStatus GetDegreesOfFreedom (int& dof, int& removedDof, int& rigidDof);
866 
867 }; // Constraint3dSolver
868 
869 
870 /*=================================================================================**/
874 {
876 
877 protected:
878  virtual BentleyStatus _ValidateConstraint3dTargets (WStringR cantAcceptReason, T_GeometryIds& geometryIds, ElementHandleCR eh, bool saveChanges) const = 0;
879  virtual void _PreprocessTransforms (ElementHandleCR eh, T_ElementTransformMap& transformMap) const = 0;
880 
881 
882 public:
883  CONSTRAINT3DCORE_EXPORT BentleyStatus ValidateConstraint3dTargets (WStringR cantAcceptReason, T_GeometryIds& geometryIds, ElementHandleCR eh, bool saveChanges) const;
884  CONSTRAINT3DCORE_EXPORT void PreprocessTransforms (ElementHandleCR eh, T_ElementTransformMap& transformMap) const;
885 
886 }; // Constraint3dTargetHostExtension
888 
889 END_CONSTRAINT3D_NAMESPACE
890 
891 #endif
892 
virtual bool _OmitSolverGeometry()
Definition: Constraint3dCoreApi.h:340
Constraint3dHalfSpace GetHalfSpace1() const
Definition: Constraint3dCoreApi.h:619
BRepVertexGeometryId(ElementHandleCR eh, PersistentElementPathCR pep, Status status, VertexId const &vertexId)
Definition: Constraint3dCoreApi.h:409
bset< ElementRefP > T_StdElementRefSet
Definition: PersistentElementPath.h:21
bvector< Constraint3dPtr > T_Constraints
Definition: Constraint3dCoreApi.h:131
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
virtual DimensionToComponent _DimensionToComponent() const override
struct DgnPlatform::PersistentElementPath const & PersistentElementPathCR
Definition: DgnPlatform.h:419
static CONSTRAINT3DCORE_EXPORT BentleyStatus GetEdgeArcAxis(DRay3dR axis, ISubEntityCR edge)
virtual void _Transform(TransformCR transform)
Definition: Constraint3dCoreApi.h:150
CONSTRAINT3DCORE_EXPORT void RemoveBodies(T_StdElementRefSet elementRefs)
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
Definition: Constraint3dCoreApi.h:825
BentleyStatus GetAxis(ICurvePrimitivePtr &axis) const
CONSTRAINT3DCORE_EXPORT ~Constraint3dSolver()
CONSTRAINT3DCORE_EXPORT bool HasElementRef(ElementRefP elementRef) const
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
Definition: Constraint3dCoreApi.h:768
EdgeId m_edgeId
Definition: Constraint3dCoreApi.h:353
virtual BentleyStatus _Save(DataExternalizer &sink) override
static GeometryIdPtr Create(ElementHandleCR eh, PersistentElementPathCR pep, Status status)
Definition: Constraint3dCoreApi.h:334
static CONSTRAINT3DCORE_EXPORT void GetConstrainedElements(T_StdElementRefSet &elements, T_Constraints const &constraints, DgnModelRefP modelRef)
Definition: Constraint3dCoreApi.h:297
PersistentElementPath m_pep
Definition: Constraint3dCoreApi.h:224
BentleyStatus GetCurve(ICurvePrimitivePtr &curve) const
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Save(DataExternalizer &sink)
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
Definition: Bentley.h:212
Definition: Constraint3dCoreApi.h:669
Definition: ViewContext.h:358
static CONSTRAINT3DCORE_EXPORT BentleyStatus GetNamedGroupMembers(T_StdElementRefSet &members, NamedGroupPtr &namedGroup)
Definition: Constraint3dCoreApi.h:214
EdgeGeometryId(ElementHandleCR eh, PersistentElementPathCR pep, Status status, EdgeId const &edgeId)
Definition: Constraint3dCoreApi.h:355
CONSTRAINT3DCORE_EXPORT BentleyStatus Initialize(T_Constraints const &constraints, DgnModelRefR modelRef, bmap< ElementRefP, EditElementHandleP > *modifiedElements=NULL, char const *debugJournal=NULL)
DVec3d GetAxis()
Definition: Constraint3dCoreApi.h:789
CONSTRAINT3DCORE_EXPORT bool operator<(GeometryIdCR otherId) const
Definition: Constraint3dCoreApi.h:277
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
AngleSettings
Definition: Constraint3dCoreApi.h:765
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
static GeometryIdPtr Create(ElementHandleCR eh, PersistentElementPathCR pep, Status status)
Definition: Constraint3dCoreApi.h:519
Definition: Constraint3dCoreApi.h:590
virtual SolverGeometryPtr _CreateSolverGeometry(CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform)
Definition: Constraint3dCoreApi.h:257
UInt32 m_entityIndex
Definition: Constraint3dCoreApi.h:226
ELEMENTHANDLER_EXTENSION_DECLARE_MEMBERS(Constraint3dTargetHostExtension, CONSTRAINT3DCORE_EXPORT)
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, CurveLocationDetailCR curveLocationDetail)
void SetGeometryIds(T_GeometryIds const &geometryIds)
Definition: Constraint3dCoreApi.h:616
defined (DGN_PLATFORM_MT)
Definition: HeapZone.h:22
g_node * m_dcmNode
Definition: Constraint3dCoreApi.h:140
virtual BentleyStatus _Flash(ViewContextR viewContext) const
Definition: Constraint3dCoreApi.h:254
Definition: Constraint3dCoreApi.h:873
virtual void _Draw(ViewContextR viewContext, DgnModelRefR modelRef) const override
virtual DimensionToComponent _DimensionToComponent() const
Definition: Constraint3dCoreApi.h:263
CONSTRAINT3DCORE_EXPORT void ComputeArcPosition(DPoint3dCR point)
virtual void _SetValue(double value) override
Definition: Constraint3dCoreApi.h:732
virtual BentleyStatus _Save(DataExternalizer &sink)
virtual bool _IsDirected() const override
Definition: Constraint3dCoreApi.h:785
virtual BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const
Definition: Constraint3dCoreApi.h:258
CONSTRAINT3DCORE_EXPORT void GetElementRefs(T_StdElementRefSet &elementRefs) const
virtual bool _IsDirected() const override
Definition: Constraint3dCoreApi.h:684
Definition: Constraint3dCoreApi.h:589
WString m_variableAccess
Definition: Constraint3dCoreApi.h:720
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
BentleyStatus GetEdgePoint(DPoint3dR point, double fraction) const
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
virtual EdgeId const * _GetEdgeId() const
Definition: Constraint3dCoreApi.h:261
struct DgnPlatform::ISubEntity const & ISubEntityCR
Definition: DgnPlatform.h:332
GeometryId()
Definition: Constraint3dCoreApi.h:233
virtual void _SetVariableAccess(WStringCR variableAccess) override
Definition: Constraint3dCoreApi.h:734
struct Bentley::WString const & WStringCR
Definition: Bentley.h:239
Definition: Constraint3dCoreApi.h:591
static CONSTRAINT3DCORE_EXPORT BentleyStatus CalculateDimensionDistance(double &value, Constraint3dHalfSpace halfSpaces[2], T_GeometryIds const &geometryIds, DgnModelRefR modelRef)
Status
Definition: Constraint3dCoreApi.h:184
virtual bool _DisplayMarkers(ViewContextR viewContext) const override
Definition: Constraint3dCoreApi.h:729
ElementHandleCR GetElement() const
Definition: Constraint3dCoreApi.h:241
SolverGeometry(GeometryIdP geometryId)
Definition: Constraint3dCoreApi.h:149
void SetStatus(Status status)
Definition: Constraint3dCoreApi.h:612
void SetElementRef(ElementRefP elementRef)
Definition: Constraint3dCoreApi.h:244
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR pointh) const override
CoincidentConstraint3d()
Definition: Constraint3dCoreApi.h:685
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
vertex triple for solid topology references.
Definition: GeomApi.r.h:75
CONSTRAINT3DCORE_EXPORT BentleyStatus GetNormalPlane(DPlane3dR normalPlane)
Definition: Constraint3dCoreApi.h:647
bvector< GeometryIdPtr > T_GeometryIds
Definition: Constraint3dCoreApi.h:130
face pair for solid topology references.
Definition: GeomApi.r.h:69
Definition: Constraint3dCoreApi.h:659
double m_unused0
Definition: Constraint3dCoreApi.h:779
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
static GeometryIdPtr Create(ElementHandleCR eh)
Definition: Constraint3dCoreApi.h:335
{nodeId, entityId} pair for solid topology references.
Definition: GeomApi.r.h:58
BentleyStatus GetBody(ISolidKernelEntityPtr &body) const
CONSTRAINT3DCORE_EXPORT void SetGroupLock(bool groupLock)
virtual DCM3_g_type _Identify()=0
virtual void SetParameter(double parameter)
void SetParameter(double parameter)
Definition: Constraint3dCoreApi.h:268
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
bool HasBoundVariable() const
Definition: Constraint3dCoreApi.h:626
virtual bool _IsDirected() const
Definition: Constraint3dCoreApi.h:601
RefCountedPtr< ISolidKernelEntity > ISolidKernelEntityPtr
Reference counted type to manage the life-cycle of the ISolidKernelEntity.
Definition: SolidKernel.h:79
Type m_type
Definition: Constraint3dCoreApi.h:221
void SetBodyCache(Constraint3dBodyCacheP cache)
Definition: Constraint3dCoreApi.h:245
SurfaceOrientation GetSurfaceOrientation() const
Definition: Constraint3dCoreApi.h:617
virtual bool _IsDirected() const override
Definition: Constraint3dCoreApi.h:651
void SetStatus(Status status)
Definition: Constraint3dCoreApi.h:239
Constraint3dType GetType() const
Definition: Constraint3dCoreApi.h:610
virtual double _GetValue() const override
Definition: Constraint3dCoreApi.h:731
Definition: Constraint3dCoreApi.h:489
UInt32 GetFlags() const
Definition: Constraint3dCoreApi.h:613
void SetHalfSpace2(Constraint3dHalfSpace halfSpace)
Definition: Constraint3dCoreApi.h:622
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, ISubEntityCR subEntity)
Status m_status
Definition: Constraint3dCoreApi.h:637
DRay3d ComputeAxis(T_GeometryIds const &geometryIds, bool invert)
Definition: Constraint3dCoreApi.h:213
static CONSTRAINT3DCORE_EXPORT void KernelRestarted()
CONSTRAINT3DCORE_EXPORT BentleyStatus DynamicEvaluate(T_ElementTransformMap &transformMap, T_StdElementRefSet const &elementRefs, TransformCR tranform)
virtual BentleyStatus _Extract(DataInternalizer &source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache)
virtual CONSTRAINT3DCORE_EXPORT bool _LessThan(GeometryIdCR id0, GeometryIdCR id1) const override
FlagMasks
Definition: Constraint3dCoreApi.h:586
ElementRefP GetElementRef() const
Definition: Constraint3dCoreApi.h:240
static CONSTRAINT3DCORE_EXPORT Constraint3dPtr Create(Constraint3dType type)
Dimension3dBase(Constraint3dType type)
Definition: Constraint3dCoreApi.h:724
struct CurveVector const & CurveVectorCR
Definition: msgeomstructs_typedefs.h:172
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
Definition: Constraint3dCoreApi.h:138
GeometryId(ElementHandle eh, PersistentElementPathCR pep, Type type, Status status)
Definition: Constraint3dCoreApi.h:230
Definition: Constraint3dCoreApi.h:743
FaceId const * _GetFaceId() const
Definition: Constraint3dCoreApi.h:318
CONSTRAINT3DCORE_EXPORT BentleyStatus ValidateConstraint3dTargets(WStringR cantAcceptReason, T_GeometryIds &geometryIds, ElementHandleCR eh, bool saveChanges) const
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, CurvePrimitiveIdCR curvePrimitiveId)
T_GeometryIds const & GetGeometryIds() const
Definition: Constraint3dCoreApi.h:615
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
bool m_reversed
Definition: Constraint3dCoreApi.h:143
Status m_status
Definition: Constraint3dCoreApi.h:222
Definition: Constraint3dCoreApi.h:381
UInt32 m_settings
Definition: Constraint3dCoreApi.h:777
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
uint32_t UInt32
Definition: Bentley.r.h:128
#define NULL
Definition: Bentley.h:157
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
Origin and normal vector for a plane.
Definition: dplane3d.h:18
virtual CONSTRAINT3DCORE_EXPORT bool _LessThan(GeometryIdCR id0, GeometryIdCR id1) const
CONSTRAINT3DCORE_EXPORT void Draw(ViewContextR viewContext, DgnModelRefR modelRef, T_ElementTransformMap const *transformMap) const
FaceGeometryId(ElementHandleCR eh, PersistentElementPathCR pep, Status status, FaceId const &faceId)
Definition: Constraint3dCoreApi.h:304
Definition: Constraint3dCoreApi.h:566
Constraint3dBodyCacheP m_bodyCache
Definition: Constraint3dCoreApi.h:227
virtual bool _IsDimension() const override
Definition: Constraint3dCoreApi.h:730
void InitIdentity()
returns an identity transformation, i.e.
void SetFlags(UInt32 flags)
Definition: Constraint3dCoreApi.h:614
Definition: Constraint3dCoreApi.h:588
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
FaceAxisGeometryId(ElementHandleCR eh, PersistentElementPathCR pep, Status status, FaceId const &faceId)
Definition: Constraint3dCoreApi.h:545
CONSTRAINT3DCORE_EXPORT BentleyStatus GetRootRange(DRange3dR range) const
virtual void _PreprocessTransforms(ElementHandleCR eh, T_ElementTransformMap &transformMap) const =0
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, ISubEntityCR subEntity)
DimensionToComponent
Definition: Constraint3dCoreApi.h:200
virtual BentleyStatus _ValidateConstraint3dTargets(WStringR cantAcceptReason, T_GeometryIds &geometryIds, ElementHandleCR eh, bool saveChanges) const =0
static CONSTRAINT3DCORE_EXPORT BentleyStatus CalculateAngle(double &value, T_GeometryIds const &geometryIds)
BentleyStatus GetEdge(ISubEntityPtr &edge, ISolidKernelEntityPtr &body) const
UInt32 GetEntityIndex() const
Definition: Constraint3dCoreApi.h:271
struct DgnPlatform::ISolidKernelEntity const & ISolidKernelEntityCR
Definition: DgnPlatform.h:331
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
Type GetType() const
Definition: Constraint3dCoreApi.h:237
virtual bool _ValidateRootChange() const
Definition: Constraint3dCoreApi.h:255
CONSTRAINT3DCORE_EXPORT bool IsRedundant(Constraint3dBaseCR other) const
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
GeometryIdP m_geometryId
Definition: Constraint3dCoreApi.h:142
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
virtual BentleyStatus _Extract(DataInternalizer &source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache) override
Definition: Constraint3dCoreApi.h:767
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
3d point coordinates.
Definition: dpoint3d.h:19
virtual double _GetValue() const
Definition: Constraint3dCoreApi.h:604
DistanceDimension3d()
Definition: Constraint3dCoreApi.h:748
virtual void _OnCleanup(ElementRefP host, bool unloadingModel, HeapZoneR zone) override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Save(DataExternalizer &sink)
BentleyStatus
Definition: Bentley.h:208
Definition: Constraint3dCoreApi.h:714
A DgnModelRef provides access to a model in a Bentley::DgnPlatform::DgnFile.
Definition: DgnModelRef.h:172
double x
x coordinate
Definition: dpoint2d.h:26
virtual void _Draw(ViewContextR viewContext, DgnModelRefR modelRef) const override
virtual BentleyStatus _Save(DataExternalizer &sink) override
virtual void _AddToSolver(class DCM3_dimension_system *dimensionSystem)
void SetSurfaceOrientation(SurfaceOrientation orientation)
Definition: Constraint3dCoreApi.h:618
virtual void _SetVariableAccess(WStringCR variableAccess)
Definition: Constraint3dCoreApi.h:607
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, CurveLocationDetailCR curveLocationDetail)
void SetParameter(DPoint2dCR parameter)
Definition: Constraint3dCoreApi.h:270
Constraint3dHalfSpace GetHalfSpace2() const
Definition: Constraint3dCoreApi.h:620
virtual CONSTRAINT3DCORE_EXPORT bool _LessThan(GeometryIdCR id0, GeometryIdCR id1) const override
A shared pointer template for reference-counted objects.
Definition: RefCounted.h:119
void GetParameter(DPoint2dR parameter) const
Definition: Constraint3dCoreApi.h:269
FixedElementId(ElementHandleCR eh, PersistentElementPathCR pep, Status status)
Definition: Constraint3dCoreApi.h:331
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
double GetParameter() const
Definition: Constraint3dCoreApi.h:267
Definition: Constraint3dCoreApi.h:761
struct DPoint2d const & DPoint2dCR
Definition: msgeomstructs_typedefs.h:78
CONSTRAINT3DCORE_EXPORT BentleyStatus Evaluate(T_ElementTransformMap &transformMap)
Definition: Constraint3dCoreApi.h:680
CurvePrimitiveIdPtr m_curveId
Definition: Constraint3dCoreApi.h:438
virtual void _SetValue(double value)
Definition: Constraint3dCoreApi.h:605
Constraint3dXAttributeIndex
Definition: Constraint3dCoreApi.h:61
static BentleyStatus Extract(CurvePrimitiveIdPtr &curveId, UInt32 &subindex, DataInternalizer &source)
virtual void _Draw(ViewContextR viewContext, DgnModelRefR) const
Definition: Constraint3dCoreApi.h:603
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, FaceId const &faceId)
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
BentleyStatus GetCurveVector(CurveVectorPtr &curveVector) const
Definition: Constraint3dCoreApi.h:348
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Save(DataExternalizer &sink)
RegionPlaneId(ElementHandleCR eh, PersistentElementPathCR pep, Status status)
Definition: Constraint3dCoreApi.h:516
Constraint3dHalfSpace
Definition: Constraint3dCoreApi.h:115
Definition: Constraint3dCoreApi.h:467
Interface that provides direct and efficient access to element data.
Definition: ElementRefBase.h:120
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Flash(ViewContextR viewContext) const override
virtual CONSTRAINT3DCORE_EXPORT bool _LessThan(GeometryIdCR id0, GeometryIdCR id1) const override
virtual bool _DoEditValue() const
Definition: Constraint3dCoreApi.h:600
Start point and direction (NOT necessarily unit) for a 3D ray.
Definition: dray3d.h:21
The whole curve (segment)
virtual WString _GetVariableAccess() const override
Definition: Constraint3dCoreApi.h:733
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
Definition: Constraint3dCoreApi.h:538
Constraint3dStorageVersion
Definition: Constraint3dCoreApi.h:55
bool GetGroupLock() const
Definition: Constraint3dCoreApi.h:624
static GeometryIdPtr Create(ElementHandleCR eh)
Definition: Constraint3dCoreApi.h:520
virtual WString _GetVariableAccess() const
Definition: Constraint3dCoreApi.h:606
Status GetStatus() const
Definition: Constraint3dCoreApi.h:611
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
#define DEFINE_T_SUPER(B)
Definition: Bentley.h:167
CONSTRAINT3DCORE_EXPORT BentleyStatus GetRootRange(DRange3dR range) const
FaceId m_faceId
Definition: Constraint3dCoreApi.h:302
RefCountedPtr< ISubEntity > ISubEntityPtr
Reference counted type to manage the life-cycle of the ISubEntity.
Definition: SolidKernel.h:115
struct CurvePrimitiveId const & CurvePrimitiveIdCR
Definition: CurvePrimitiveId.h:15
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, EdgeId const &edgeId)
Definition: Constraint3dCoreApi.h:326
SurfaceOrientation
Definition: Constraint3dCoreApi.h:105
VertexId const * _GetVertexId() const
Definition: Constraint3dCoreApi.h:424
struct Transform const & TransformCR
Definition: msgeomstructs_typedefs.h:134
Status
Definition: Constraint3dCoreApi.h:570
3x4 matrix for defining coordinate frames and affine transformations.
Definition: transform.h:22
Constraint3dType
Definition: Constraint3dCoreApi.h:70
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
Definition: Constraint3dCoreApi.h:215
virtual double GetParameter() const
void SetEntityIndex(UInt32 entityIndex)
Definition: Constraint3dCoreApi.h:272
RefCountedPtr< struct GeometryId > GeometryIdPtr
Definition: Constraint3dCoreApi.h:127
static CONSTRAINT3DCORE_EXPORT void RemoveInvalidConstraints(size_t &nInvalid, T_Constraints &constraints, ElementRefP changed, ElementHandleCR hostEh)
virtual BentleyStatus _GetMarkerLocation(DPoint3dR point) const
Definition: Constraint3dCoreApi.h:253
double m_value
Definition: Constraint3dCoreApi.h:719
static CONSTRAINT3DCORE_EXPORT Constraint3dBodyCacheP Get(ElementRefP host)
struct CurveLocationDetail const & CurveLocationDetailCR
Definition: msgeomstructs_typedefs.h:167
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(Type type, Status status, DataInternalizer &source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache=NULL)
FaceId m_faceId
Definition: Constraint3dCoreApi.h:543
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
CONSTRAINT3DCORE_EXPORT void ComputeDefaultArcPosition()
CONSTRAINT3DCORE_EXPORT BentleyStatus GetDegreesOfFreedom(int &dof, int &removedDof, int &rigidDof)
bmap< ElementRefP, Transform > T_ElementTransformMap
Definition: Constraint3dCoreApi.h:132
UInt32 m_flags
Definition: Constraint3dCoreApi.h:639
virtual ~SolverGeometry()
Definition: Constraint3dCoreApi.h:147
VertexId m_vertexId
Definition: Constraint3dCoreApi.h:407
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR pointh) const override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetSolidSubEntity(ISubEntityPtr &subEntity, ISolidKernelEntityPtr &body) const override
UInt32 m_segmentIndex
Definition: Constraint3dCoreApi.h:439
DPoint2d m_parameter
Definition: Constraint3dCoreApi.h:225
RefCountedPtr< struct SolverGeometry > SolverGeometryPtr
Definition: Constraint3dCoreApi.h:128
virtual VertexId const * _GetVertexId() const
Definition: Constraint3dCoreApi.h:262
EdgeId const * _GetEdgeId() const
Definition: Constraint3dCoreApi.h:368
virtual bool _DoEditValue() const override
Definition: Constraint3dCoreApi.h:728
This file is the top-level include file to access all APIs supported by the DgnPlatform library and i...
Definition: Constraint3dCoreApi.h:434
Status GetStatus() const
Definition: Constraint3dCoreApi.h:238
CONSTRAINT3DCORE_EXPORT void AddBody(ElementRefP elementRef, UInt32 entityIndex, ISolidKernelEntityPtr)
PersistentElementPathCR GetRootPep() const
Definition: Constraint3dCoreApi.h:242
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(CurveVectorCR curveVector, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79
static CONSTRAINT3DCORE_EXPORT BentleyStatus GetFaceAxis(ICurvePrimitivePtr &axis, ISubEntityCR face)
ElementHandle m_eh
Definition: Constraint3dCoreApi.h:223
#define BeAssert(_Expression)
BeAssert performs the same function as the standard assert, plus it prevents the most common cases of...
Definition: BeAssert.h:56
A Handler::Extension can be used to add additional interfaces to a Handler at runtime.
Definition: Handler.h:222
RefCountedPtr< NamedGroup > NamedGroupPtr
A Reference Counted pointer to a NamedGroup.
Definition: NamedGroup.h:179
Definition: Constraint3dCoreApi.h:809
bool operator()(GeometryIdCP const &id0, GeometryIdCP const &id1) const
Definition: Constraint3dCoreApi.h:288
BentleyStatus GetCurvePoint(DPoint3dR point, double fraction) const
virtual bool _DisplayMarkers(ViewContextR viewContext) const
Definition: Constraint3dCoreApi.h:608
virtual SolverGeometryPtr _CreateSolverGeometry(ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform)
Definition: Constraint3dCoreApi.h:256
void Zero()
Sets all components of a point or vector to zero.
void SetAxis(DVec3dCR axis)
CONSTRAINT3DCORE_EXPORT ISolidKernelEntityPtr GetBody(ElementRefP elementRef, UInt32 entityIndex)
struct DgnPlatform::ElementHandle const & ElementHandleCR
Definition: DgnPlatform.h:260
Definition: Constraint3dCoreApi.h:850
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Save(DataExternalizer &sink)
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
Definition: Constraint3dCoreApi.h:702
struct DRay3d const & DRay3dCR
Definition: msgeomstructs_typedefs.h:120
struct DVec3d const & DVec3dCR
Definition: msgeomstructs_typedefs.h:89
Transform m_transform
Definition: Constraint3dCoreApi.h:141
Type
Definition: Constraint3dCoreApi.h:168
FlagMasks
Definition: Constraint3dCoreApi.h:211
Definition: Constraint3dCoreApi.h:511
Constraint3dBase(Constraint3dType type)
Definition: Constraint3dCoreApi.h:634
virtual CONSTRAINT3DCORE_EXPORT SolverGeometryPtr _CreateSolverGeometry(ISolidKernelEntityCR body, TransformCR dgnToSolverTransform, TransformCR solverToDgnTransform) override
bool LessThanWithoutParams(GeometryIdCR id0, GeometryIdCR id1) const
Angle3dConstraint()
Definition: Constraint3dCoreApi.h:782
CONSTRAINT3DCORE_EXPORT void Draw(ViewContextR viewContext, DgnModelRefR modelRef, T_ElementTransformMap const *transformMap) const
CurvePointGeometryId(ElementHandleCR eh, PersistentElementPathCR pep, Status status, CurvePrimitiveIdPtr &curveId, UInt32 segmentIndex, double fraction)
Definition: Constraint3dCoreApi.h:494
CONSTRAINT3DCORE_EXPORT BentleyStatus SaveOptional(DataExternalizer &sink)
FaceId const * _GetFaceId() const override
Definition: Constraint3dCoreApi.h:556
double m_unused1
Definition: Constraint3dCoreApi.h:780
virtual bool _OmitSolverGeometry()
Definition: Constraint3dCoreApi.h:264
RefCountedPtr< struct Constraint3dBase > Constraint3dPtr
Definition: Constraint3dCoreApi.h:126
CONSTRAINT3DCORE_EXPORT BentleyStatus Extract(DataInternalizer &source)
static Key s_key
Definition: Constraint3dCoreApi.h:827
void SetRootPep(PersistentElementPathCR pep)
Definition: Constraint3dCoreApi.h:243
double m_arcPosition
Definition: Constraint3dCoreApi.h:773
Definition: Constraint3dCoreApi.h:692
Vector with x,y,z components.
Definition: dvec3d.h:110
static CONSTRAINT3DCORE_EXPORT GeometryIdPtr Create(ElementHandleCR eh, ISubEntityCR subEntity)
CONSTRAINT3DCORE_EXPORT void PreprocessTransforms(ElementHandleCR eh, T_ElementTransformMap &transformMap) const
virtual BentleyStatus _Extract(DataInternalizer &source, DgnModelRefR modelRef, Constraint3dBodyCacheP bodyCache) override
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _GetMarkerLocation(DPoint3dR point) const override
virtual bool _IsDimension() const
Definition: Constraint3dCoreApi.h:602
Definition: Constraint3dCoreApi.h:286
T_GeometryIds m_geometryIds
Definition: Constraint3dCoreApi.h:638
virtual DimensionToComponent _DimensionToComponent() const override
Definition: Constraint3dCoreApi.h:480
virtual CONSTRAINT3DCORE_EXPORT bool _LessThan(GeometryIdCR id0, GeometryIdCR id1) const override
static CONSTRAINT3DCORE_EXPORT Constraint3dPtr Create(T_GeometryIds const &geometryIds, DRay3dCR axis, UInt32 flags, double value, WStringCR variableAccess, UInt32 settings)
void SetHalfSpace1(Constraint3dHalfSpace halfSpace)
Definition: Constraint3dCoreApi.h:621
Definition: Constraint3dCoreApi.h:402
A 3d low and high corner pair for range boxes.
Definition: drange3d.h:20
virtual CONSTRAINT3DCORE_EXPORT bool _ValidateRootChange() const override
2d point coordinates.
Definition: dpoint2d.h:23
Definition: Constraint3dCoreApi.h:165
virtual FaceId const * _GetFaceId() const
Definition: Constraint3dCoreApi.h:260
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
Constraint3dType m_type
Definition: Constraint3dCoreApi.h:636
virtual DimensionToComponent _DimensionToComponent() const override
Definition: Constraint3dCoreApi.h:394
CONSTRAINT3DCORE_EXPORT Constraint3dSolver()
Definition: Constraint3dCoreApi.h:856
TangentConstraint3d()
Definition: Constraint3dCoreApi.h:652
DVec3d m_axis
Definition: Constraint3dCoreApi.h:775
static CONSTRAINT3DCORE_EXPORT Constraint3dPtr Create(T_GeometryIds const &geometryIds, UInt32 flags, double value, WStringCR variableAccess)
virtual CONSTRAINT3DCORE_EXPORT BentleyStatus _Save(DataExternalizer &sink)

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