DgnElementSetTool.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 
13 #include "DgnTool.h"
14 #include "IRedraw.h"
15 #include <DgnPlatform/Locate.h>
17 
18 DGNPLATFORM_TYPEDEFS (DgnElementSetTool)
19 
21 
22 /*=================================================================================**/
28 class ModifyOp : public IModifyElement
29 {
30 
31 private:
32  bool m_wantGGLock:1;
33  bool m_wantMakeCopy:1;
34  ElementCopyContextP m_ccP;
35 
36 protected:
38  virtual void _SetWantMakeCopy (bool val) override {m_wantMakeCopy = val;}
39 
41  virtual void _SetWantGGLock (bool val) override {m_wantGGLock = val;}
42 
45  virtual bool _WantMakeCopy() const override {return m_wantMakeCopy;}
46 
49  virtual bool _WantCheckGGLock() const override {return m_wantGGLock;}
50 
52  DGNVIEW_EXPORT virtual DgnModelRefP _GetDestinationModelRef ();
53 
55  DGNVIEW_EXPORT virtual ElementCopyContextP _GetCopyContext ();
56 
58  DGNVIEW_EXPORT virtual void _ClearCopyContext ();
59 
66  DGNVIEW_EXPORT virtual StatusInt _DoOperationForModify (EditElementHandleR eeh) override;
67 
74  DGNVIEW_EXPORT virtual StatusInt _OnPreElementModify (EditElementHandleR eeh);
75 
77  DGNVIEW_EXPORT virtual void _ResetStop () override;
78 
81  DGNVIEW_EXPORT virtual bool _CheckStop () override;
82 
83 public:
84  ModifyOp() {m_wantGGLock = m_wantMakeCopy = false; m_ccP = NULL;}
85  DGNVIEW_EXPORT virtual ~ModifyOp ();
86 
87 }; // ModifyOp
88 
89 /*=================================================================================**/
180 {
182 
183 public:
184 
185 /*=================================================================================**/
190  {
194  };
195 
196 /*=================================================================================**/
201  {
205  };
206 
207 /*=================================================================================**/
212  {
216  };
217 
218 /*=================================================================================**/
223  {
227  };
228 
229 /*=================================================================================**/
235  {
239  };
240 
241 /*=================================================================================**/
246  {
247  REF_LOCATE_Normal = (0),
248  REF_LOCATE_SelfAttachment = (1<<0),
249  REF_LOCATE_Editable = (1<<1),
250  REF_LOCATE_TreatAsElement = (1<<2),
251  };
252 
253 /*=================================================================================**/
259  {
260  ERROR_NUM_NoFence = 68,
261  ERROR_NUM_NoFenceElems = 122,
262  ERROR_NUM_NoFenceElemsOutside = 250,
263  ERROR_NUM_NoSSElems = 85,
264  ERROR_NUM_NotSuportedElmType = 609,
265  };
266 
267 private:
268 
269 HitSource m_hitSource;
270 ElemSource m_elemSource;
271 ElementAgenda m_agenda;
272 bool m_haveAnchor;
273 bool m_overlapInverted;
274 DPoint3d m_anchorPt;
275 DPoint3d m_dragAnchorPt;
276 UsesDragSelect m_defaultDragMode;
277 UsesDragSelect m_inDragMode;
278 bool m_initiateDrag;
279 int m_resrved2[8];
280 
281 protected:
282 
284 
285 /*---------------------------------------------------------------------------------**/
292 DGNVIEW_EXPORT virtual StatusInt _InstallToolImplementation () override;
294 
295 /*---------------------------------------------------------------------------------**/
303 DGNVIEW_EXPORT virtual bool _OnInstall () override;
304 
305 /*---------------------------------------------------------------------------------**/
311 DGNVIEW_EXPORT virtual void _OnPostInstall () override;
312 
313 /*---------------------------------------------------------------------------------**/
318 virtual void _OnReinitialize () override {CallOnRestartTool ();}
320 
322 
323 /*---------------------------------------------------------------------------------**/
331 DGNVIEW_EXPORT virtual void _SetupAndPromptForNextAction ();
332 
333 /*---------------------------------------------------------------------------------**/
338 DGNVIEW_EXPORT void SetupAndPromptForNextActionHelper ();
339 
340 /*---------------------------------------------------------------------------------**/
344 DGNVIEW_EXPORT static void OutputErrorMessage (ErrorNums msg);
345 
346 /*---------------------------------------------------------------------------------**/
354 DGNVIEW_EXPORT virtual bool _NeedAcceptPoint ();
355 
356 /*---------------------------------------------------------------------------------**/
362 virtual bool _NeedPointForDynamics () {return true;}
363 
364 /*---------------------------------------------------------------------------------**/
370 virtual bool _NeedPointForSelection () {return true;}
371 
372 /*---------------------------------------------------------------------------------**/
379 virtual bool _AcceptIdentifiesNext () {return false;}
381 
383 
384 /*---------------------------------------------------------------------------------**/
390 virtual bool _WantDynamics () {return true;}
391 
392 /*---------------------------------------------------------------------------------**/
400 DGNVIEW_EXPORT virtual void _OnDynamicFrame (DgnButtonEventCR ev) override;
401 
402 /*---------------------------------------------------------------------------------**/
413 DGNVIEW_EXPORT virtual StatusInt _OnRedrawOperation (EditElementHandleR el, ViewContextR context, bool* canUseCached) override;
414 
415 /*---------------------------------------------------------------------------------**/
422 virtual void _OnResymbolize (ViewContextR context) override {}
423 
424 /*---------------------------------------------------------------------------------**/
432 DGNVIEW_EXPORT virtual void _OnRedrawInit (ViewContextR context) override;
433 
434 /*---------------------------------------------------------------------------------**/
440 DGNVIEW_EXPORT virtual void _OnRedrawFinish (ViewContextR context) override;
441 
442 /*---------------------------------------------------------------------------------**/
449 DGNVIEW_EXPORT virtual StatusInt _OnRedrawComplete (ViewContextR context) override;
450 
452 
454 
455 /*---------------------------------------------------------------------------------**/
465 DGNVIEW_EXPORT virtual bool _OnDataButton (DgnButtonEventCR ev) override;
466 
467 /*---------------------------------------------------------------------------------**/
476 DGNVIEW_EXPORT virtual bool _OnResetButton (DgnButtonEventCR ev) override;
478 
480 
481 /*---------------------------------------------------------------------------------**/
486 virtual bool _WantAccuSnap () {return true;}
487 
488 /*---------------------------------------------------------------------------------**/
493 DGNVIEW_EXPORT virtual bool _WantAutoLocate ();
494 
496 /*---------------------------------------------------------------------------------**/
502 virtual HitSource _GetHitSource () const {return m_hitSource;}
503 
504 /*---------------------------------------------------------------------------------**/
509 virtual void _SetHitSource (HitSource source) {m_hitSource = source;}
511 
512 /*---------------------------------------------------------------------------------**/
518 virtual RefLocateOption _GetReferenceLocateOptions () {return (RefLocateOption) (REF_LOCATE_Normal | REF_LOCATE_SelfAttachment);}
519 
520 /*---------------------------------------------------------------------------------**/
526 DGNVIEW_EXPORT virtual void _SetLocateCriteria ();
527 
528 /*---------------------------------------------------------------------------------**/
534 DGNVIEW_EXPORT virtual bool _OnPostLocate (HitPathCP path, WStringR cantAcceptReason);
535 
536 /*---------------------------------------------------------------------------------**/
541 DGNVIEW_EXPORT virtual void _SetLocateCursor (bool enableLocate);
542 
543 /*---------------------------------------------------------------------------------**/
549 virtual bool _DoGroups () {return true;}
550 
551 /*---------------------------------------------------------------------------------**/
558 virtual size_t _GetAdditionalLocateNumRequired () {return 1;}
559 
560 /*---------------------------------------------------------------------------------**/
570 virtual bool _WantAdditionalLocate (DgnButtonEventCP ev) {return false;}
571 
572 /*---------------------------------------------------------------------------------**/
577 DGNVIEW_EXPORT bool WantAdditionalLocateHelper (DgnButtonEventCP ev);
578 
579 /*---------------------------------------------------------------------------------**/
587 DGNVIEW_EXPORT virtual HitPathCP _DoLocate (DgnButtonEventCR ev, bool newSearch, ComponentMode complexComponent);
588 
590 virtual ComponentMode _GetComponentMode () {return ComponentMode::None;}
591 
592 /*---------------------------------------------------------------------------------**/
598 DGNVIEW_EXPORT virtual void _LocateOneElement (DgnButtonEventCR ev, bool newSearch);
599 
600 /*---------------------------------------------------------------------------------**/
609 DGNVIEW_EXPORT virtual EditElementHandleP _BuildLocateAgenda (HitPathCP path, DgnButtonEventCP ev);
610 
611 /*---------------------------------------------------------------------------------**/
617 DGNVIEW_EXPORT virtual void _RemoveAgendaElement (EditElementHandleR el);
618 
619 /*---------------------------------------------------------------------------------**/
623 DGNVIEW_EXPORT virtual void _BeginPickElements ();
625 
627 
628 /*---------------------------------------------------------------------------------**/
635 virtual UsesDragSelect _AllowDragSelect () {return USES_DRAGSELECT_None;}
636 
637 /*---------------------------------------------------------------------------------**/
643 DGNVIEW_EXPORT virtual void _DecorateScreen (ViewportR vp) override;
644 
645 /*---------------------------------------------------------------------------------**/
653 DGNVIEW_EXPORT virtual bool _OnModifierKeyTransition (bool wentDown, int key) override;
654 
655 /*---------------------------------------------------------------------------------**/
662 DGNVIEW_EXPORT bool OnModifierKeyTransitionHelper (bool wentDown, int key);
663 
664 /*---------------------------------------------------------------------------------**/
671 DGNVIEW_EXPORT virtual bool _OnModelStartDrag (DgnButtonEventCR ev) override;
672 
673 /*---------------------------------------------------------------------------------**/
682 DGNVIEW_EXPORT virtual bool _OnModelEndDrag (DgnButtonEventCR ev) override;
683 
684 /*---------------------------------------------------------------------------------**/
689 DGNVIEW_EXPORT virtual bool _OnModelMotion (DgnButtonEventCR ev) override;
690 
691 /*---------------------------------------------------------------------------------**/
696 virtual UsesDragSelect _IsDragSelectActive () {return m_inDragMode;}
697 
698 /*---------------------------------------------------------------------------------**/
705 virtual bool _GetDragAnchorPoint (DPoint3dP anchorPt) {if (anchorPt) *anchorPt = m_dragAnchorPt; return USES_DRAGSELECT_None != m_inDragMode;}
706 
707 /*---------------------------------------------------------------------------------**/
715 DGNVIEW_EXPORT virtual bool _BuildDragSelectAgenda (FenceParamsP fp, DgnButtonEventCR ev);
716 
717 /*---------------------------------------------------------------------------------**/
724 DGNVIEW_EXPORT virtual bool _GetDragSelectOverlapMode (DgnButtonEventCR ev);
725 
726 /*---------------------------------------------------------------------------------**/
732 DGNVIEW_EXPORT virtual void _GetDragSelectSymbology (UInt32& color, UInt32& fillColor, UInt32& style, UInt32& weight, DgnButtonEventCR ev);
733 
734 /*---------------------------------------------------------------------------------**/
743 DGNVIEW_EXPORT virtual void _GetBoxPoints (DPoint3dP shapePointsP, DgnCoordSystem sys, DPoint3dCR activeOrigin, DPoint3dCR activeCorner, ViewportP vp);
745 
747 
748 /*---------------------------------------------------------------------------------**/
753 DGNVIEW_EXPORT virtual bool _NotifyListeners (ElementAgendaR, AgendaOperation, AgendaModify, AgendaEvent, void* eventArg = NULL);
754 
755 /*---------------------------------------------------------------------------------**/
761 virtual AgendaOperation _GetAgendaOperation () {return AgendaOperation::NotSpecified;}
762 
763 /*---------------------------------------------------------------------------------**/
768 DGNVIEW_EXPORT virtual AgendaModify _GetAgendaModify ();
770 
772 
773 /*---------------------------------------------------------------------------------**/
778 DGNVIEW_EXPORT virtual bool _UseActiveFence ();
779 
780 /*---------------------------------------------------------------------------------**/
785 virtual UsesFence _AllowFence () {return USES_FENCE_None;}
786 
787 /*---------------------------------------------------------------------------------**/
792 virtual UsesSelection _AllowSelection () {return USES_SS_Check;}
793 
794 /*---------------------------------------------------------------------------------**/
799 DGNVIEW_EXPORT virtual ElemSource _GetPreferredElemSource ();
800 
801 /*---------------------------------------------------------------------------------**/
806 virtual ElemSource _GetElemSource () const {return m_elemSource;}
807 
808 /*---------------------------------------------------------------------------------**/
813 virtual void _SetElemSource (ElemSource source) {m_elemSource = source;}
814 
815 /*---------------------------------------------------------------------------------**/
820 virtual bool _HiliteFenceElems () {return false;}
821 
822 /*---------------------------------------------------------------------------------**/
828 DGNVIEW_EXPORT virtual void _HiliteAgendaEntries (bool changed);
829 
830 /*---------------------------------------------------------------------------------**/
835 DGNVIEW_EXPORT virtual void _UnHiliteAgendaEntries (bool empty);
836 
837 /*---------------------------------------------------------------------------------**/
842 virtual bool _FilterAgendaEntries () {return false;}
843 
844 /*---------------------------------------------------------------------------------**/
850 DGNVIEW_EXPORT virtual void _ModifyAgendaEntries ();
851 
852 /*---------------------------------------------------------------------------------**/
858 DGNVIEW_EXPORT virtual void _BuildAgenda (DgnButtonEventCR ev);
860 
862 
863 /*---------------------------------------------------------------------------------**/
868 ElementAgendaR GetElementAgenda () {return m_agenda;}
869 
870 /*---------------------------------------------------------------------------------**/
876 virtual bool _GetAnchorPoint (DPoint3dP anchorPt) {if (anchorPt) *anchorPt = m_anchorPt; return m_haveAnchor;}
877 
878 /*---------------------------------------------------------------------------------**/
883 virtual void _SetAnchorPoint (DPoint3dCP anchorPt) {if (anchorPt) m_anchorPt = *anchorPt; m_haveAnchor = anchorPt ? true : false;}
884 
885 /*---------------------------------------------------------------------------------**/
890 virtual bool _IsModifyOriginal () {return true;}
891 
892 /*---------------------------------------------------------------------------------**/
897 DGNVIEW_EXPORT virtual DgnModelRefP _GetDestinationModelRef () override;
898 
899 /*---------------------------------------------------------------------------------**/
904 DGNVIEW_EXPORT virtual bool _IsFenceOverlap ();
905 
906 /*---------------------------------------------------------------------------------**/
911 DGNVIEW_EXPORT virtual bool _IsFenceVoid ();
912 
913 /*---------------------------------------------------------------------------------**/
918 DGNVIEW_EXPORT virtual bool _IsFenceClip ();
919 
920 /*---------------------------------------------------------------------------------**/
927 virtual bool _SetupForModify (DgnButtonEventCR ev, bool isDynamics) {return true;}
928 
929 /*---------------------------------------------------------------------------------**/
935 virtual ClipResult _GetFenceClipResult () {return CLIP_RESULT_NotSupported;}
936 
937 /*---------------------------------------------------------------------------------**/
943 DGNVIEW_EXPORT virtual StatusInt _DoFenceClip ();
944 
945 /*---------------------------------------------------------------------------------**/
954 virtual StatusInt _OnElementModify (EditElementHandleR el) = 0;
955 
956 /*---------------------------------------------------------------------------------**/
969 DGNVIEW_EXPORT virtual StatusInt _OnElementModifyClip (EditElementHandleR el, FenceParamsP fp, FenceClipFlags options);
970 
971 /*---------------------------------------------------------------------------------**/
979 DGNVIEW_EXPORT virtual bool _OnModifyComplete (DgnButtonEventCR ev);
980 
982 /*---------------------------------------------------------------------------------**/
985 virtual UInt32 _GetGroupOperationCount () {return 1;}
986 
987 /*---------------------------------------------------------------------------------**/
990 DGNVIEW_EXPORT virtual void _PreModifyAgenda (DgnButtonEventCR ev, AgendaOperation agendaOp, AgendaModify agendaModify, bool isGroupOp);
991 
992 /*---------------------------------------------------------------------------------**/
995 DGNVIEW_EXPORT virtual StatusInt _ModifyAgendaGroup (DgnButtonEventCR ev, AgendaOperation agendaOp, AgendaModify agendaModify, bool isGroupOp, UInt32 iGroupOp, bool redraw);
996 
997 /*---------------------------------------------------------------------------------**/
1000 DGNVIEW_EXPORT virtual void _PostModifyAgenda (DgnButtonEventCR ev, AgendaOperation agendaOp, AgendaModify agendaModify, bool isGroupOp);
1002 
1003 /*---------------------------------------------------------------------------------**/
1012 DGNVIEW_EXPORT virtual StatusInt _ProcessAgenda (DgnButtonEventCR ev);
1014 
1015 public:
1016 
1018 DGNVIEW_EXPORT DgnElementSetTool (int toolId);
1019 
1020 DGNVIEW_EXPORT DgnElementSetTool ();
1021 DGNVIEW_EXPORT ~DgnElementSetTool ();
1022 
1023 
1024 }; // DgnElementSetTool
1025 
1027 
AgendaOperation
Definition: DgnPlatform.h:1472
bool empty() const
Definition: stdcxx/bstdmap.h:210
virtual UsesFence _AllowFence()
Should the active fence be used, required, or ignored as a possible ElemSource.
Definition: DgnElementSetTool.h:785
Active Selection Set is allowed as ElemSource.
Definition: DgnElementSetTool.h:213
virtual bool _GetAnchorPoint(DPoint3dP anchorPt)
Call/Called to get the accept or locate point that populated the ElementAgenda.
Definition: DgnElementSetTool.h:876
Class for modifying elements.
Definition: DgnElementSetTool.h:28
Definition: ViewContext.h:358
virtual bool _WantAccuSnap()
Called from _SetupAndPromptForNextAction to enable AccuSnap for SOURCE_Pick.
Definition: DgnElementSetTool.h:486
#define END_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:69
AgendaEvent
Enums for tool agenda+handler cooperation.
Definition: DgnPlatform.h:1454
struct DPoint3d const * DPoint3dCP
Definition: msgeomstructs_typedefs.h:79
HitSource
The procedure that generated this Hit.
Definition: HitPath.h:41
Tool does not support fence clip.
Definition: DgnElementSetTool.h:236
virtual bool _NeedPointForDynamics()
Called from _OnPostInstall.
Definition: DgnElementSetTool.h:362
virtual bool _AcceptIdentifiesNext()
Called from _OnModifyComplete for SOURCE_PICK.
Definition: DgnElementSetTool.h:379
Active Fence is required as ElemSource.
Definition: DgnElementSetTool.h:203
Populate ElementAgenda from a locate.
Definition: DgnElementSetTool.h:191
Active Selection Set is required as ElemSource.
Definition: DgnElementSetTool.h:214
virtual UsesDragSelect _IsDragSelectActive()
Call/Called to check the current drag selection mode.
Definition: DgnElementSetTool.h:696
Valid entries in ElementAgenda reference original elemRef and modelRef.
Definition: DgnElementSetTool.h:238
ComponentMode
Definition: Locate.h:16
FenceClipFlags
Influences how handler should apply fence clip.
Definition: DgnPlatform.h:1429
AgendaModify
Definition: DgnPlatform.h:1464
virtual void _SetWantGGLock(bool val) override
Call to set graphic group number remap option for copy.
Definition: DgnElementSetTool.h:41
ElemSource
The requested source for the elements to modify.
Definition: DgnElementSetTool.h:189
virtual bool _NeedPointForSelection()
Called from _OnPostInstall for SOURCE_SelectionSet.
Definition: DgnElementSetTool.h:370
struct DgnPlatform::DgnButtonEvent const * DgnButtonEventCP
Definition: DgnPlatform.h:191
virtual size_t _GetAdditionalLocateNumRequired()
Implemented by multi-select tools that may require more than 1 element to complete the current tool p...
Definition: DgnElementSetTool.h:558
UsesSelection
Should the active selection set be used, required, or ignored as a possible ElemSource.
Definition: DgnElementSetTool.h:211
virtual bool _HiliteFenceElems()
Call to query if elements selected from the active fence should be hilited.
Definition: DgnElementSetTool.h:820
virtual RefLocateOption _GetReferenceLocateOptions()
Called from SetLocateCriteria and controls how the search model ref list is populated.
Definition: DgnElementSetTool.h:518
Drag selection using crossing line.
Definition: DgnElementSetTool.h:225
virtual bool _WantDynamics()
Called to see if element dynamics should be started after populating tool's ElementAgenda.
Definition: DgnElementSetTool.h:390
A writeable "handle" to an MSElement.
Definition: ElementHandle.h:470
Drag selection using shape inside/overlap.
Definition: DgnElementSetTool.h:224
Valid entries in ElementAgenda are new elements, no elemRef but correct modelRef. ...
Definition: DgnElementSetTool.h:237
ElementAgendaR GetElementAgenda()
Call to return a pointer to the tool's ElementAgenda.
Definition: DgnElementSetTool.h:868
Interface for modifying elements.
Definition: IModifyElement.h:18
virtual bool _SetupForModify(DgnButtonEventCR ev, bool isDynamics)
Called before each dynamics frame and once for final accept.
Definition: DgnElementSetTool.h:927
virtual bool _WantMakeCopy() const override
Call to determine whether original element is being modified or copied.
Definition: DgnElementSetTool.h:45
uint32_t UInt32
Definition: Bentley.r.h:128
#define NULL
Definition: Bentley.h:157
RefLocateOption
Used to setup special reference locate criteria.
Definition: DgnElementSetTool.h:245
struct DgnPlatform::DgnButtonEvent const & DgnButtonEventCR
Definition: DgnPlatform.h:191
virtual void _OnResymbolize(ViewContextR context) override
Called during complex dynamics.
Definition: DgnElementSetTool.h:422
3d point coordinates.
Definition: dpoint3d.h:19
struct DgnPlatform::HitPath const * HitPathCP
Definition: DgnPlatform.h:274
UsesFence
Should the active fence be used, required, or ignored as a possible ElemSource.
Definition: DgnElementSetTool.h:200
virtual void _OnReinitialize() override
Call to reset tool to initial state.
Definition: DgnElementSetTool.h:318
A DgnModelRef provides access to a model in a Bentley::DgnPlatform::DgnFile.
Definition: DgnModelRef.h:172
The DgnElementSetTool class can be used to implement a modify command.
Definition: DgnElementSetTool.h:179
The DgnPrimitiveTool class can be used to implement a primitive command.
Definition: DgnTool.h:698
A bvector of EditElementHandle entries to be used for operating on groups of elements.
Definition: ElementAgenda.h:257
#define DGNPLATFORM_TYPEDEFS(_name_)
Definition: DgnPlatform.h:73
Active Fence is not supported as ElemSource.
Definition: DgnElementSetTool.h:204
virtual AgendaOperation _GetAgendaOperation()
Called to see if tool wants to send out IElementAgendaEvents.
Definition: DgnElementSetTool.h:761
UsesDragSelect
Should SOURCE_Pick allow a drag select to identify elements.
Definition: DgnElementSetTool.h:222
virtual bool _WantCheckGGLock() const override
Call to determine whether copied elements will have their graphic group number remapped or cleared...
Definition: DgnElementSetTool.h:49
virtual void _SetElemSource(ElemSource source)
Called to set tool's ElemSource from what is returned by GetPreferredElemSource.
Definition: DgnElementSetTool.h:813
virtual bool _IsModifyOriginal()
Called to determine how elements will be modified.
Definition: DgnElementSetTool.h:890
virtual UsesSelection _AllowSelection()
Should the active selection set be used, required, or ignored as a possible ElemSource.
Definition: DgnElementSetTool.h:792
#define DEFINE_T_SUPER(B)
Definition: Bentley.h:167
ClipResult
Helps determine the action ModifyAgenda will take on the agenda elements after calling DoFenceClip...
Definition: DgnElementSetTool.h:234
#define BEGIN_BENTLEY_DGNPLATFORM_NAMESPACE
Definition: DgnPlatformBaseType.r.h:68
DgnCoordSystem
Definition: DgnPlatform.h:1045
ModifyOp()
Definition: DgnElementSetTool.h:84
Use the ElementCopyContext class to copy elements.
Definition: ElementCopyContext.h:241
int StatusInt
Definition: Bentley.h:222
virtual bool _DoGroups()
Called for SOURCE_Pick to ask whether to add graphic and named group members of the selected element ...
Definition: DgnElementSetTool.h:549
virtual void _SetWantMakeCopy(bool val) override
Call to set copy option.
Definition: DgnElementSetTool.h:38
struct DPoint3d const & DPoint3dCR
Definition: msgeomstructs_typedefs.h:79
virtual ElemSource _GetElemSource() const
Call/Called to return the currently selection ElemSource.
Definition: DgnElementSetTool.h:806
virtual bool _FilterAgendaEntries()
Called from ModifyAgendaEntries to add/remove ElementAgenda entries.
Definition: DgnElementSetTool.h:842
Populate ElementAgenda from active selection set.
Definition: DgnElementSetTool.h:193
Tool does not support drag selection for SOURCE_Pick.
Definition: DgnElementSetTool.h:226
Active Fence is allowed as ElemSource.
Definition: DgnElementSetTool.h:202
virtual ComponentMode _GetComponentMode()
Get component mode for pick/auto-locate...
Definition: DgnElementSetTool.h:590
virtual void _SetAnchorPoint(DPoint3dCP anchorPt)
Call to set/clear the accept or locate point return by GetAnchorPoint.
Definition: DgnElementSetTool.h:883
virtual bool _WantAdditionalLocate(DgnButtonEventCP ev)
Called for SOURCE_Pick to ask whether the tool wants to identify multiple elements by holding down th...
Definition: DgnElementSetTool.h:570
virtual bool _GetDragAnchorPoint(DPoint3dP anchorPt)
Call/Called to return the anchor point location for the data point that initiated the drag event...
Definition: DgnElementSetTool.h:705
virtual UsesDragSelect _AllowDragSelect()
Called for SOURCE_Pick to allow elements to be selected using a drag box or crossing line...
Definition: DgnElementSetTool.h:635
ErrorNums
ElemSource specific failures.
Definition: DgnElementSetTool.h:258
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
Class for finding elements that are inside or overlap a volume defined by an extrusion of a planar re...
Definition: FenceParams.h:32
virtual ClipResult _GetFenceClipResult()
Called to determine the action ModifyAgenda needs to take post-clip.
Definition: DgnElementSetTool.h:935
Definition: DgnViewport.h:186
Populate ElementAgenda from active fence.
Definition: DgnElementSetTool.h:192
Active Selection Set is not supported as ElemSource.
Definition: DgnElementSetTool.h:215

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