SHAPER
9.12.0
|
Contains all necessary data in SolveSpace format to solve a single group of constraints. More...
Public Member Functions | |
SolveSpaceSolver_Storage (const GroupID &theGroup) | |
virtual bool | update (ConstraintWrapperPtr theConstraint) |
Update constraint's data. More... | |
virtual bool | update (EntityWrapperPtr theEntity) |
Update entity's data. More... | |
virtual bool | update (ParameterWrapperPtr theParameter) |
Update parameter's data. More... | |
virtual void | refresh (bool theFixedOnly=false) const |
Update SketchPlugin features after resolving constraints. More... | |
virtual void | verifyFixed () |
Check if some parameters or entities are returned to the current group after removing temporary constraints. More... | |
virtual void | addCoincidentPoints (EntityWrapperPtr theMaster, EntityWrapperPtr theSlave) |
Mark two points as coincident. More... | |
virtual EntityWrapperPtr | calculateMiddlePoint (EntityWrapperPtr theBase, double theCoeff) |
Calculate point on theBase entity. More... | |
void | storeWorkplane (EntityWrapperPtr theSketch) |
Obtain and store identifier of sketch. More... | |
Slvs_hParam | addParameter (const Slvs_Param &theParam) |
Add new parameter to the current group. More... | |
Slvs_hParam | updateParameter (const Slvs_Param &theParam) |
Updates parameter in the current group. More... | |
bool | removeParameter (const Slvs_hParam &theParamID) |
Removes the parameter by its ID. More... | |
const Slvs_Param & | getParameter (const Slvs_hParam &theParamID) const |
Returns the parameter by its ID. More... | |
Slvs_hEntity | addEntity (const Slvs_Entity &theEntity) |
Add new entity to the current group. More... | |
Slvs_hEntity | updateEntity (const Slvs_Entity &theEntity) |
Updates entity in the current group. More... | |
bool | removeEntity (const Slvs_hEntity &theEntityID) |
Removes the entity by its ID. More... | |
const Slvs_Entity & | getEntity (const Slvs_hEntity &theEntityID) const |
Returns the entity by its ID. More... | |
const Slvs_hEntity & | entityMaxID () const |
Returns maximal ID of entities in this storage. More... | |
Slvs_hConstraint | addConstraint (const Slvs_Constraint &theConstraint) |
Add new constraint to the current group. More... | |
Slvs_hConstraint | updateConstraint (const Slvs_Constraint &theConstraint) |
Updates constraint in the current group. More... | |
bool | removeConstraint (const Slvs_hConstraint &theConstraintID) |
Removes the constraint by its ID. More... | |
const Slvs_Constraint & | getConstraint (const Slvs_hConstraint &theConstraintID) const |
Returns the constraint by its ID. More... | |
size_t | nbConstraints () const |
Returns quantity of constraints in this storage. More... | |
virtual bool | hasDuplicatedConstraint () const |
Shows the storage has the same constraint twice. More... | |
virtual void | initializeSolver (SolverPtr theSolver) |
Initialize constraint solver by the entities collected by current storage. More... | |
virtual void | addConstraint (ConstraintPtr theConstraint, ConstraintWrapperPtr theSolverConstraint) |
Change mapping between constraint from SketchPlugin and a constraint applicable for corresponding solver. More... | |
virtual void | addMovementConstraint (const ConstraintWrapperPtr &theSolverConstraint)=0 |
Add a movement constraint which will be destroyed after the next solving of the set of constraints. More... | |
void | addEntity (FeaturePtr theFeature, EntityWrapperPtr theSolverEntity) |
Change mapping feature from SketchPlugin and the entity applicable for corresponding solver. More... | |
void | addEntity (AttributePtr theAttribute, EntityWrapperPtr theSolverEntity) |
Change mapping attribute of a feature and the entity applicable for corresponding solver. More... | |
virtual bool | update (FeaturePtr theFeature, bool theForce=false)=0 |
Convert feature to the form applicable for specific solver and map it. More... | |
virtual bool | update (AttributePtr theAttribute, bool theForce=false)=0 |
Convert attribute to the form applicable for specific solver and map it. More... | |
const ConstraintWrapperPtr & | constraint (const ConstraintPtr &theConstraint) const |
Returns constraint related to corresponding constraint. More... | |
const EntityWrapperPtr & | entity (const FeaturePtr &theFeature) const |
Returns entity related to corresponding feature. More... | |
const EntityWrapperPtr & | entity (const AttributePtr &theAttribute) const |
Returns entity related to corresponding attribute. More... | |
virtual void | makeExternal (const EntityWrapperPtr &theEntity)=0 |
Make entity external. More... | |
virtual void | makeNonExternal (const EntityWrapperPtr &theEntity)=0 |
Make entity non-external. More... | |
virtual bool | removeConstraint (ConstraintPtr theConstraint)=0 |
Removes constraint from the storage. More... | |
void | removeFeature (FeaturePtr theFeature) |
Removes feature from the storage. More... | |
void | removeAttribute (AttributePtr theAttribute) |
Removes attribute from the storage. More... | |
virtual void | removeInvalidEntities ()=0 |
Remove all features became invalid. More... | |
bool | areFeaturesValid () const |
Check the features have not been removed. More... | |
virtual bool | isEmpty () const |
Check the storage has constraints. More... | |
virtual bool | isNeedToResolve () |
Shows the sketch should be resolved. More... | |
void | setNeedToResolve (bool theFlag) |
Changes the flag of group to be resolved. More... | |
std::set< ObjectPtr > | getConflictingConstraints (SolverPtr theSolver) const |
Return list of conflicting constraints. More... | |
virtual void | getUnderconstrainedGeometry (std::set< ObjectPtr > &theFeatures) const =0 |
Return list of features which are not fully constrained. More... | |
virtual PlaneGCSSolver_Solver::SolveStatus | checkDegeneratedGeometry () const =0 |
Verify, the sketch contains degenerated geometry after resolving the set of constraints. More... | |
virtual void | refresh () const =0 |
Update SketchPlugin features after resolving constraints. More... | |
void | blockEvents (bool isBlocked) |
Block or unblock events when refreshing features. More... | |
void | subscribeUpdates (SketchSolver_Constraint *theSubscriber, const std::string &theGroup) const |
Subscribe for updates of features. More... | |
void | unsubscribeUpdates (SketchSolver_Constraint *theSubscriber) const |
Unsubscribe for updates of features. More... | |
void | notify (const FeaturePtr &theFeature) const |
Notify all subscribers about update of the feature. More... | |
virtual void | adjustParametrizationOfArcs ()=0 |
Make parametrization of arcs consistent. More... | |
Protected Member Functions | |
virtual bool | remove (ConstraintWrapperPtr theConstraint) |
Remove constraint. More... | |
virtual bool | remove (EntityWrapperPtr theEntity) |
Remove entity. More... | |
virtual bool | remove (ParameterWrapperPtr theParameter) |
Remove parameter. More... | |
virtual void | changeGroup (EntityWrapperPtr theEntity, const GroupID &theGroup) |
Update the group for the given entity, its sub-entities and parameters. More... | |
virtual void | changeGroup (ParameterWrapperPtr theParam, const GroupID &theGroup) |
Update the group for the given parameter. More... | |
Static Protected Member Functions | |
static void | resultToFeatureOrAttribute (const ObjectPtr &theResult, FeaturePtr &theFeature, AttributePtr &theAttribute) |
Convert result to feature or attribute if theResult is linked to center of circle/arc. More... | |
Protected Attributes | |
SolverPtr | mySketchSolver |
Sketch solver, prepared in corresponding group. More... | |
bool | myNeedToResolve |
parameters are changed and group needs to be resolved More... | |
bool | myEventsBlocked |
indicates that features do not send events More... | |
std::map< ConstraintPtr, ConstraintWrapperPtr > | myConstraintMap |
map SketchPlugin constraint to a list of solver's constraints More... | |
std::map< FeaturePtr, EntityWrapperPtr > | myFeatureMap |
map SketchPlugin feature to solver's entity More... | |
std::map< AttributePtr, EntityWrapperPtr > | myAttributeMap |
map attribute to solver's entity More... | |
UpdaterPtr | myUpdaters |
Contains all necessary data in SolveSpace format to solve a single group of constraints.
|
virtual |
Update constraint's data.
true
if any value is updated
|
virtual |
Update entity's data.
true
if any value is updated
|
virtual |
Update parameter's data.
true
if the value of parameter is updated
|
virtual |
Update SketchPlugin features after resolving constraints.
theFixedOnly | [in] if true the fixed points will be updated only |
|
virtual |
Check if some parameters or entities are returned to the current group after removing temporary constraints.
|
virtual |
Mark two points as coincident.
|
virtual |
Calculate point on theBase entity.
Value theCoeff is in [0.0 .. 1.0] and shows the distance from the start point.
|
protectedvirtual |
Remove constraint.
true
if the constraint and all its parameters are removed successfully
|
protectedvirtual |
Remove entity.
true
if the entity and all its parameters are removed successfully
|
protectedvirtual |
Remove parameter.
true
if the parameter has been removed
|
protectedvirtual |
Update the group for the given entity, its sub-entities and parameters.
|
protectedvirtual |
Update the group for the given parameter.
void SolveSpaceSolver_Storage::storeWorkplane | ( | EntityWrapperPtr | theSketch | ) |
Obtain and store identifier of sketch.
Slvs_hParam SolveSpaceSolver_Storage::addParameter | ( | const Slvs_Param & | theParam | ) |
Add new parameter to the current group.
[in] | theParam | SolveSpace parameter |
Slvs_hParam SolveSpaceSolver_Storage::updateParameter | ( | const Slvs_Param & | theParam | ) |
Updates parameter in the current group.
If the ID of parameter is zero, the new item will be added
[in] | theParam | SolveSpace parameter |
bool SolveSpaceSolver_Storage::removeParameter | ( | const Slvs_hParam & | theParamID | ) |
Removes the parameter by its ID.
[in] | theParamID | index of parameter to be removed |
true
if the parameter was successfully removed const Slvs_Param & SolveSpaceSolver_Storage::getParameter | ( | const Slvs_hParam & | theParamID | ) | const |
Returns the parameter by its ID.
Slvs_hEntity SolveSpaceSolver_Storage::addEntity | ( | const Slvs_Entity & | theEntity | ) |
Add new entity to the current group.
[in] | theEntity | SolveSpace entity |
Slvs_hEntity SolveSpaceSolver_Storage::updateEntity | ( | const Slvs_Entity & | theEntity | ) |
Updates entity in the current group.
If the ID of entity is zero, the new item will be added
[in] | theEntity | SolveSpace entity |
bool SolveSpaceSolver_Storage::removeEntity | ( | const Slvs_hEntity & | theEntityID | ) |
Removes the entity by its ID.
All parameters used in this entity, and not used in other constraints, will be removed too.
[in] | theEntityID | index of entity to be removed |
true
if the entity was successfully removed const Slvs_Entity & SolveSpaceSolver_Storage::getEntity | ( | const Slvs_hEntity & | theEntityID | ) | const |
Returns the entity by its ID.
|
inline |
Returns maximal ID of entities in this storage.
Slvs_hConstraint SolveSpaceSolver_Storage::addConstraint | ( | const Slvs_Constraint & | theConstraint | ) |
Add new constraint to the current group.
[in] | theConstraint | SolveSpace's constraint |
Slvs_hConstraint SolveSpaceSolver_Storage::updateConstraint | ( | const Slvs_Constraint & | theConstraint | ) |
Updates constraint in the current group.
If the ID of constraint is zero, the new item will be added
[in] | theConstraint | SolveSpace constraint |
bool SolveSpaceSolver_Storage::removeConstraint | ( | const Slvs_hConstraint & | theConstraintID | ) |
Removes the constraint by its ID.
All entities and parameters depending on this constraint, which are not used in other constraints, will be removed too.
[in] | theConstraintID | index of constraint to be removed |
true
if the constraint was successfully removed const Slvs_Constraint & SolveSpaceSolver_Storage::getConstraint | ( | const Slvs_hConstraint & | theConstraintID | ) | const |
Returns the constraint by its ID.
|
inline |
Returns quantity of constraints in this storage.
|
inlinevirtual |
Shows the storage has the same constraint twice.
|
virtual |
Initialize constraint solver by the entities collected by current storage.
|
virtualinherited |
Change mapping between constraint from SketchPlugin and a constraint applicable for corresponding solver.
theConstraint | [in] original SketchPlugin constraint |
theSolverConstraint | [in] solver's constraint |
Reimplemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Add a movement constraint which will be destroyed after the next solving of the set of constraints.
theSolverConstraint | [in] solver's constraint |
Implemented in PlaneGCSSolver_Storage.
|
inherited |
Change mapping feature from SketchPlugin and the entity applicable for corresponding solver.
theFeature | [in] original SketchPlugin feature |
theSolverEntity | [in] solver's entity, created outside |
|
inherited |
Change mapping attribute of a feature and the entity applicable for corresponding solver.
theAttribute | [in] original attribute |
theSolverEntity | [in] solver's entity, created outside |
|
pure virtualinherited |
Convert feature to the form applicable for specific solver and map it.
theFeature | [in] feature to convert |
theForce | [in] forced feature creation |
true
if the feature has been created or updated Implemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Convert attribute to the form applicable for specific solver and map it.
theAttribute | [in] attribute to convert |
theForce | [in] forced feature creation |
true
if the attribute has been created or updated Implemented in PlaneGCSSolver_Storage.
|
inherited |
Returns constraint related to corresponding constraint.
|
inherited |
Returns entity related to corresponding feature.
|
inherited |
Returns entity related to corresponding attribute.
TODO: Check resultToFeatureOrAttribute() precisely. Create additional unit-test
|
pure virtualinherited |
Make entity external.
Implemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Make entity non-external.
Implemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Removes constraint from the storage.
true
if the constraint and all its parameters are removed successfully Implemented in PlaneGCSSolver_Storage.
|
inherited |
Removes feature from the storage.
|
inherited |
Removes attribute from the storage.
|
pure virtualinherited |
Remove all features became invalid.
Implemented in PlaneGCSSolver_Storage.
|
inherited |
Check the features have not been removed.
|
inlinevirtualinherited |
Check the storage has constraints.
Reimplemented in PlaneGCSSolver_Storage.
|
inlinevirtualinherited |
Shows the sketch should be resolved.
|
inlineinherited |
Changes the flag of group to be resolved.
|
inherited |
Return list of conflicting constraints.
|
pure virtualinherited |
Return list of features which are not fully constrained.
Implemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Verify, the sketch contains degenerated geometry after resolving the set of constraints.
Implemented in PlaneGCSSolver_Storage.
|
pure virtualinherited |
Update SketchPlugin features after resolving constraints.
Implemented in PlaneGCSSolver_Storage.
|
inherited |
Block or unblock events when refreshing features.
|
inherited |
Subscribe for updates of features.
theSubscriber | [in] object which wants to revceive notifications |
theGroup | [in] group of updates features to be send |
|
inherited |
Unsubscribe for updates of features.
theSubscriber | [in] object which does not want to revceive notifications anymore |
|
inherited |
Notify all subscribers about update of the feature.
|
pure virtualinherited |
Make parametrization of arcs consistent.
Forward arcs should have the last parameter greater than the first parameter. Reversed arcs should have the last parameter lesser than the first parameter.
Implemented in PlaneGCSSolver_Storage.
|
staticprotectedinherited |
Convert result to feature or attribute if theResult is linked to center of circle/arc.
|
protectedinherited |
Sketch solver, prepared in corresponding group.
|
protectedinherited |
parameters are changed and group needs to be resolved
|
protectedinherited |
indicates that features do not send events
|
protectedinherited |
map SketchPlugin constraint to a list of solver's constraints
|
protectedinherited |
map SketchPlugin feature to solver's entity
|
protectedinherited |
map attribute to solver's entity