+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
#include <SketchSolver_Constraint.h>
#include <SketchSolver_Group.h>
#include <SketchSolver_Error.h>
#include <SketchPlugin_ConstraintEqual.h>
#include <SketchPlugin_ConstraintHorizontal.h>
#include <SketchPlugin_ConstraintLength.h>
+#include <SketchPlugin_ConstraintMiddle.h>
#include <SketchPlugin_ConstraintMirror.h>
#include <SketchPlugin_ConstraintParallel.h>
#include <SketchPlugin_ConstraintPerpendicular.h>
return CONSTRAINT_TANGENT;
else if (aType == SketchPlugin_ConstraintCollinear::ID())
return CONSTRAINT_COLLINEAR;
+ else if (aType == SketchPlugin_ConstraintMiddle::ID())
+ return CONSTRAINT_MIDDLE_POINT;
return CONSTRAINT_UNKNOWN;
}
{
static const int anInitNbOfAttr = 4;
theAttributes.assign(anInitNbOfAttr, EntityWrapperPtr());
+ myAttributes.clear();
DataPtr aData = myBaseConstraint->data();
BuilderPtr aBuilder = SketchSolver_Manager::instance()->builder();
myStorage->update(*anIter/*, myGroupID*/);
EntityWrapperPtr anEntity = myStorage->entity(*anIter);
+ if (!anEntity) {
+ // Force creation of an entity
+ myStorage->update(*anIter, GID_UNKNOWN, true);
+ anEntity = myStorage->entity(*anIter);
+ }
+ myAttributes.push_back(anEntity);
SketchSolver_EntityType aType = anEntity->type();
if (aType == ENTITY_UNKNOWN)
if ((*aCIt)->isUsed(theFeature))
return true;
- std::list<AttributePtr> anAttrList = theFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
+ std::list<AttributePtr> anAttrList =
+ theFeature->data()->attributes(GeomDataAPI_Point2D::typeId());
std::list<AttributePtr>::const_iterator anAttrIt = anAttrList.begin();
for (; anAttrIt != anAttrList.end(); ++ anAttrIt)
if (isUsed(*anAttrIt))