16 BEGIN_CONSTRAINT2D_NAMESPACE
47 virtual bool Remove (
size_t index) = 0;
103 virtual void _SetValue (
double value) = 0;
192 struct SolverAndModelRef
194 IConstraintSolver* m_solver;
197 SolverAndModelRef () { }
198 SolverAndModelRef (IConstraintSolver* solver,
DgnModelRefP modelRef) : m_solver (solver), m_modelRef (modelRef) { }
201 typedef bvector <ElementRefP> T_ElementRefs;
203 bmap <ElementRefP, DgnModelRefP> m_constrained;
204 bmap <ElementRefP, SolverAndModelRef> m_hostMap;
206 ElementAgenda m_controlElmsToAdd;
207 bvector <IConstraintSolver*> m_solvers;
240 bool IsGeometricConstraint(
WCharCP classname);
285 END_CONSTRAINT2D_NAMESPACE
struct DgnPlatform::ECQuery const & ECQueryCR
Definition: DgnPlatform.h:532
virtual bool _HasElementRef(ElementRefP elementRef) const =0
virtual WCharCP _GetIconName() const =0
struct DgnPlatform::ElementAndModelIdRemapping const & ElementAndModelIdRemappingCR
Definition: DgnPlatform.h:510
virtual ConstraintSolverDataProxyPtr _GetConstraintSolverDataForRemap(ElementHandleCR eh) const
Definition: ConstraintHandlerBase.h:151
class DgnPlatform::Handler & HandlerR
Definition: Handler.h:17
virtual CONSTRAINT2DELEMENT_EXPORT IDependencyHandler * _GetIDependencyHandler() override
Definition: ConstraintHandlerBase.h:165
virtual bool _SetOrientation(ConstraintOrientation orientation)=0
ConstraintOrientation
Definition: ConstraintHandlerBase.h:74
static CONSTRAINT2DELEMENT_EXPORT bool GetControllingParameterAccessString(WStringR accessString, IDgnECTypeAdapterContextCR context, ConstraintSolverDataProxy const &solverData)
BEGIN_CONSTRAINT2D_NAMESPACE typedef bmap< ElementRefP, EditElementHandleP > T_ModifiedElementMap
Definition: ConstraintHandlerBase.h:18
static CONSTRAINT2DELEMENT_EXPORT void Register()
virtual UInt32 _GetDiaType() const =0
virtual bool _HasElementRef(ElementRefP elementRef) const =0
ConstraintSolverDataProxyPtr GetConstraintSolverData(ElementHandleCR eh) const
Definition: ConstraintHandlerBase.h:276
virtual IConstraintRootPepCollectionPtr _GetRootPeps(DataInternalizer &source, XAttributeHandleCR xa, DgnModelRefR modelRef) const =0
virtual CONSTRAINT2DELEMENT_EXPORT WCharCP _GetProviderName() const override=0
virtual CONSTRAINT2DELEMENT_EXPORT ConstraintSolverDataProxyPtr _GetConstraintSolverData(ElementHandleCR eh) const =0
RefCountedPtr< ECSchema > ECSchemaPtr
Definition: ECSchema.h:569
virtual CONSTRAINT2DELEMENT_EXPORT StatusInt _OnPreprocessCopy(IReplaceXAttribute *toBeReplaced, XAttributeHandleCR xa, ElementHandleCR eh, ElementCopyContextP cc) override
virtual StatusInt _Replace(IReplaceXAttribute *tbr)=0
IConstraintSolver(UInt16 handlerMinorId)
Definition: ConstraintHandlerBase.h:186
Definition: ConstraintHandlerBase.h:49
virtual CONSTRAINT2DELEMENT_EXPORT bool _SupportsQueryFlags(ECQueryProcessFlags flags) const override
bvector< PersistentElementPath > T_PepVector
Definition: ConstraintHandlerBase.h:19
virtual CONSTRAINT2DELEMENT_EXPORT bool _GetControllingParameterAccessString(WStringR accessString, IDgnECTypeAdapterContextCR context) const override
reference operator*() const
Definition: ConstraintHandlerBase.h:55
virtual void _SetDiaType(UInt32 value)=0
bvector< ConstraintProxyPtr > m_constraints
Definition: ConstraintHandlerBase.h:120
struct DgnPlatform::ElementAgenda const * ElementAgendaCP
Definition: DgnPlatform.h:258
struct Bentley::WString const & WStringCR
Definition: Bentley.h:239
SchemaMatchType
Defines what sort of match should be used when locating a schema.
Definition: ECSchema.h:967
virtual double _GetValue() const =0
ConstraintRootPepIterator(IConstraintRootPepCollection &collection, size_t index)
Definition: ConstraintHandlerBase.h:60
Definition: ConstraintHandlerBase.h:181
virtual CONSTRAINT2DELEMENT_EXPORT void _OnPreCopyAgenda(ElementAgendaCP agenda, AgendaOperation opType, AgendaModify modify, ElementCopyContextP cc) override
struct DgnPlatform::DgnECInstanceCreateContext const & DgnECInstanceCreateContextCR
Definition: DgnPlatform.h:540
uint16_t UInt16
Definition: Bentley.r.h:118
virtual CONSTRAINT2DELEMENT_EXPORT bool _IsParameterReferenced(ParameterDefinitionCR def, IParameterDefinitionsCR defs) const override
virtual CONSTRAINT2DELEMENT_EXPORT void _OnUnregistered() override
virtual CONSTRAINT2DELEMENT_EXPORT bool _InternalizeInstanceId(WStringR internalizedId, WCharCP externalizedId, DgnFileP dgnfile, DgnModelRefP modelRef, ElementRefP elemRef) const override
struct DgnPlatform::XAttributeHandle const & XAttributeHandleCR
Definition: DgnPlatform.h:489
ElementECEnablerPtr CreateEnabler(UInt16 providerId, WCharCP classname, ECAccessorTable &table)
static CONSTRAINT2DELEMENT_EXPORT void DisplayInvalidConstraintRemovedMessage()
virtual CONSTRAINT2DELEMENT_EXPORT bool _ExternalizeInstanceId(WStringR externalizedId, WCharCP internalId) const override
ECQueryProcessFlags
Definition: WhereCriterion.h:33
virtual WString _GetVariableName() const =0
Definition: ConstraintHandlerBase.h:230
virtual CONSTRAINT2DELEMENT_EXPORT DgnECInstanceEnablerP _ObtainInstanceEnablerByName(WCharCP schemaName, WCharCP className, DgnFileR dgnfile, void *providerPerFileCache) override
virtual CONSTRAINT2DELEMENT_EXPORT void _OnElementIDsChanged(XAttributeHandleR xa, ElementAndModelIdRemappingCR remapTable, ElementHandleCR eh) override
virtual bool _FinishRootsChanged(ElementHandleCR dependent, ConstraintSolverDataProxy &data, T_StdElementRefSet &roots, bool modified) const =0
Definition: ConstraintHandlerBase.h:139
virtual size_t _RemoveInvalidConstraints(ElementRefP root, ElementHandleCR dependent)=0
virtual CONSTRAINT2DELEMENT_EXPORT void _DisclosePointers(T_StdElementRefSet *refs, XAttributeHandleCR xa, DgnModelRefP homeModel) override
bool operator==(ConstraintRootPepIterator const &rhs) const
Definition: ConstraintHandlerBase.h:56
Definition: ConstraintHandlerBase.h:98
wchar_t const * WCharCP
Definition: Bentley.h:224
iterator end()
Definition: ConstraintHandlerBase.h:66
#define CONSTRAINT2DELEMENT_EXPORT
Definition: Constraint2dElementAPI.h:16
ConstraintRootPepIterator iterator
Definition: ConstraintHandlerBase.h:63
static WString GetConstraintLabel(Constraint2dType type)
Definition: ConstraintHandlerBase.h:43
uint32_t UInt32
Definition: Bentley.r.h:128
virtual bool _SolveAndModifyElements(ElementHandleCR hostEh, bmap< ElementRefP, EditElementHandleP > &modifiedElements, bool addRelatedChanges)=0
virtual void _SetVariableName(WCharCP name)=0
virtual CONSTRAINT2DELEMENT_EXPORT DgnECInstancePtr _LocateInstance(IDgnECInstanceLocatorCR locator, DgnECInstanceCreateContextCR context) const override
virtual CONSTRAINT2DELEMENT_EXPORT void _GetSchemaInfos(bvector< SchemaInfo > &infos, DgnFileR dgnfile, ECSchemaPersistence persistence) override
bmap< ElementRefP, EditElementHandleP > T_ModifiedElementMap
Definition: Constraint2dManager.h:17
virtual bool Remove(size_t index)=0
virtual CONSTRAINT2DELEMENT_EXPORT bool _OnRedrawGroupEvent(ElementAgendaCP agenda, AgendaOperation opType, AgendaModify modify, RedrawGroupInfo const *info) override
virtual CONSTRAINT2DELEMENT_EXPORT void _GetSupportedRelationshipInfos(DgnECInstanceCR instance, DgnECRelationshipInfoVector &infos) const override
Definition: ConstraintHandlerBase.h:118
virtual ConstraintSolverDataProxyPtr _GetConstraintSolverData(ElementHandleCR eh) const =0
struct DgnPlatform::IDgnECInstanceLocator const & IDgnECInstanceLocatorCR
Definition: DgnECProviders.h:18
static CONSTRAINT2DELEMENT_EXPORT void DisplayConstraintAppliedMessage()
ConstraintRootPepIterator & operator++()
Definition: ConstraintHandlerBase.h:58
BentleyStatus
Definition: Bentley.h:208
Definition: ConstraintHandlerBase.h:34
virtual void _SetValue(double value)=0
virtual CONSTRAINT2DELEMENT_EXPORT void _OnPostModifyAgenda(ElementAgendaCP agenda, AgendaOperation opType, AgendaModify modify, bool isGroupOperation) override
virtual void _RemoveUnresolvedData(IConstraintRootPepCollection const &rootPeps)=0
CONSTRAINT2DELEMENT_EXPORT ConstraintECProvider(UInt16 providerId)
virtual CONSTRAINT2DELEMENT_EXPORT ECN::ECSchemaPtr _LocateSchemaInDgnFile(SchemaInfoR schemaInfo, ECN::SchemaMatchType matchType) override
virtual Constraint2dType _GetConstraintType() const =0
bvector< DimensionProxyPtr > m_dimensions
Definition: ConstraintHandlerBase.h:121
bmap< ECN::ECClassCP, ElementECEnablerPtr > ExternalEnablersByClass
Definition: ConstraintHandlerBase.h:232
A shared pointer template for reference-counted objects.
Definition: RefCounted.h:119
static CONSTRAINT2DELEMENT_EXPORT void RegisterRejectExtensions(HandlerR handler)
bool operator!=(ConstraintRootPepIterator const &rhs) const
Definition: ConstraintHandlerBase.h:57
Constraint2dType
Enumerates for constraint types.
Definition: Constraint2dCoreAPI.h:83
virtual CONSTRAINT2DELEMENT_EXPORT void _RemapOrDrop(ParameterDefinitionCR def, IEditParameterDefinitionsR defs, ParameterDefinitionCP remapTo) const override
Definition: ConstraintHandlerBase.h:85
UInt16 m_handlerMinorId
Definition: ConstraintHandlerBase.h:185
virtual ConstraintOrientation _GetOrientation() const =0
virtual PersistentElementPathP GetPep(size_t index)=0
virtual CONSTRAINT2DELEMENT_EXPORT IDgnECInstanceFinderPtr _CreateFinder(DgnFileR dgnfile, ECQueryCR ecquery, void *providerPerFileCache, DgnECInstanceCreateContextCR context) const override
ECSchemaPersistence
Definition: DgnECProviders.h:63
RefCountedPtr< IConstraintRootPepCollection > IConstraintRootPepCollectionPtr
Definition: ConstraintHandlerBase.h:69
virtual CONSTRAINT2DELEMENT_EXPORT StatusInt _OnPreprocessCopyRemapIds(IReplaceXAttribute *toBeReplaced, XAttributeHandleCR xa, ElementHandleCR eh) override
Use the ElementCopyContext class to copy elements.
Definition: ElementCopyContext.h:241
int StatusInt
Definition: Bentley.h:222
Concrete class that can be used to implement the reference-counting pattern.
Definition: RefCounted.h:109
RefCountedPtr< ConstraintProxy > ConstraintProxyPtr
Definition: ConstraintHandlerBase.h:111
Holds descriptive information about an ECSchema, particularly so that it can be examined before the E...
Definition: DgnECProviders.h:85
static CONSTRAINT2DELEMENT_EXPORT void AddSolver(IConstraintSolver *solver)
virtual CONSTRAINT2DELEMENT_EXPORT BentleyStatus _LocateSchemaXmlInDgnFile(WStringR schemaXml, SchemaInfoR schemaInfo, ECN::SchemaMatchType matchType) override
static CONSTRAINT2DELEMENT_EXPORT ISpriteP GetSpriteByIconName(WStringCR iconName, size_t size)
virtual CONSTRAINT2DELEMENT_EXPORT void _RemapParameterNames(IParameterDefinitionsCR defs, IParameterNameRemapperCR remapper) const override
virtual void _OnUndoRedoRootsChanged(ElementHandleR dependent, bvector< RootChange > const &rootsChanged, bvector< XAttributeHandle > const &xAttrsAffected) const override
Definition: ConstraintHandlerBase.h:168
virtual CONSTRAINT2DELEMENT_EXPORT void _ValidateDependencies(IParameterDefinitionsCR defs) const override
virtual BentleyStatus _ReplaceRootPeps(DataExternalizer &sink, DataInternalizer &source, IConstraintRootPepCollection &rootPeps, DgnModelRefR modelRef) const =0
virtual StatusInt _EvaluateAndUpdate(EditElementHandleR eeh)=0
RefCountedPtr< DimensionProxy > DimensionProxyPtr
Definition: ConstraintHandlerBase.h:112
virtual bool _IsConstraintElement(ElementHandleCR eh) const =0
virtual CONSTRAINT2DELEMENT_EXPORT IDgnECInstanceFinderPtr _CreateRelatedFinder(DgnECInstanceCR source, QueryRelatedClassSpecifierCR spec, DgnECInstanceCreateContextCR context) const override
bool IsEmpty() const
Definition: ConstraintHandlerBase.h:130
struct DgnPlatform::ElementHandle const & ElementHandleCR
Definition: DgnPlatform.h:260
RefCountedPtr< ConstraintSolverDataProxy > ConstraintSolverDataProxyPtr
Definition: ConstraintHandlerBase.h:133
struct DgnPlatform::DgnECInstance const & DgnECInstanceCR
Definition: DgnPlatform.h:199
iterator begin()
Definition: ConstraintHandlerBase.h:65
Definition: ConstraintHandlerBase.h:183
virtual CONSTRAINT2DELEMENT_EXPORT DgnECHostType _GetHostType() const override
virtual StatusInt _GetDegreesOfFreedom(int &dof, int &rigidDof, DgnModelRefR modelRef) const =0
DgnECHostType
Describes the underlying type on which an instance can be persisted.
Definition: DgnECInstance.h:78
virtual size_t GetCount() const =0
virtual CONSTRAINT2DELEMENT_EXPORT DgnECRelationshipEnablerP _ObtainDgnECRelationshipEnabler(WCharCP schemaName, WCharCP className, DgnFileR dgnfile) override
ElementECEnablerPtr GetEnablerByName(WCharCP classname) const
size_type size() const
Definition: stdcxx/bstdmap.h:214
struct DgnPlatform::QueryRelatedClassSpecifier const & QueryRelatedClassSpecifierCR
Definition: DgnPlatform.h:538
virtual StatusInt _UpdateDimensions(ElementRefP elRef, bvector< DimensionProxy * > const &modifiedDimensions)=0
virtual CONSTRAINT2DELEMENT_EXPORT void _GetPotentialInstanceChanges(DgnECInstanceChangeRecordsR changes, DgnECTxnInfoCR txns, DgnECInstanceCreateContextCR context) const override
virtual Constraint2dType _GetConstraintType() const =0
virtual CONSTRAINT2DELEMENT_EXPORT void _OnRootsChanged(ElementHandleR dependent, bvector< RootChange > const &rootsChanged, bvector< XAttributeHandle > const &xAttrsAffected) override
A string class that has many of the same capabilities as std::string, plus additional functions such ...
Definition: WString.h:51
virtual CONSTRAINT2DELEMENT_EXPORT void _OnPreModifyAgenda(ElementAgendaCP agenda, AgendaOperation opType, AgendaModify modify, bool isGroupOperation) override
Definition: ConstraintHandlerBase.h:27
virtual CONSTRAINT2DELEMENT_EXPORT UInt16 _GetProviderId() const override=0