Sketcher: small asserts cleanup
This commit is contained in:
parent
94c26629c0
commit
3e6eb430fa
|
@ -594,8 +594,9 @@ Py::Tuple Sketch::getPyGeometry(void) const
|
||||||
int Sketch::checkGeoId(int geoId)
|
int Sketch::checkGeoId(int geoId)
|
||||||
{
|
{
|
||||||
if (geoId < 0)
|
if (geoId < 0)
|
||||||
geoId += Geoms.size();
|
geoId += Geoms.size();//convert negative external-geometry index to index into Geoms
|
||||||
assert(geoId >= 0 && geoId < int(Geoms.size()));
|
if(!( geoId >= 0 && geoId < int(Geoms.size()) ))
|
||||||
|
throw Base::Exception("Sketch::checkGeoId. GeoId index out range.");
|
||||||
return geoId;
|
return geoId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -619,7 +620,6 @@ GCS::Curve* Sketch::getGCSCurveByGeoId(int geoId)
|
||||||
return &ArcsOfEllipse[Geoms[geoId].index];
|
return &ArcsOfEllipse[Geoms[geoId].index];
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -628,8 +628,8 @@ GCS::Curve* Sketch::getGCSCurveByGeoId(int geoId)
|
||||||
|
|
||||||
int Sketch::addConstraint(const Constraint *constraint)
|
int Sketch::addConstraint(const Constraint *constraint)
|
||||||
{
|
{
|
||||||
// constraints on nothing makes no sense
|
if(int(Geoms.size()) <= 0)
|
||||||
assert(int(Geoms.size()) > 0);
|
throw Base::Exception("Sketch::addConstraint. Can't add constraint to a sketch with no geometry!");
|
||||||
int rtn = -1;
|
int rtn = -1;
|
||||||
switch (constraint->Type) {
|
switch (constraint->Type) {
|
||||||
case DistanceX:
|
case DistanceX:
|
||||||
|
@ -767,7 +767,7 @@ int Sketch::addConstraint(const Constraint *constraint)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SnellsLaw:
|
case SnellsLaw:
|
||||||
assert(constraint->ThirdPos==none);
|
//assert(constraint->ThirdPos==none); //will work anyway...
|
||||||
rtn = addSnellsLawConstraint(constraint->First, constraint->FirstPos,
|
rtn = addSnellsLawConstraint(constraint->First, constraint->FirstPos,
|
||||||
constraint->Second, constraint->SecondPos,
|
constraint->Second, constraint->SecondPos,
|
||||||
constraint->Third,
|
constraint->Third,
|
||||||
|
@ -781,9 +781,6 @@ int Sketch::addConstraint(const Constraint *constraint)
|
||||||
|
|
||||||
int Sketch::addConstraints(const std::vector<Constraint *> &ConstraintList)
|
int Sketch::addConstraints(const std::vector<Constraint *> &ConstraintList)
|
||||||
{
|
{
|
||||||
// constraints on nothing makes no sense
|
|
||||||
assert(!Geoms.empty() || ConstraintList.empty());
|
|
||||||
|
|
||||||
int rtn = -1;
|
int rtn = -1;
|
||||||
for (std::vector<Constraint *>::const_iterator it = ConstraintList.begin();it!=ConstraintList.end();++it)
|
for (std::vector<Constraint *>::const_iterator it = ConstraintList.begin();it!=ConstraintList.end();++it)
|
||||||
rtn = addConstraint (*it);
|
rtn = addConstraint (*it);
|
||||||
|
@ -1157,7 +1154,7 @@ int Sketch::addAngleAtPointConstraint(
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!(cTyp == Angle || cTyp == Tangent || cTyp == Perpendicular)) {
|
if(!(cTyp == Angle || cTyp == Tangent || cTyp == Perpendicular)) {
|
||||||
assert(0);//none of the three types. Why are we here??
|
//assert(0);//none of the three types. Why are we here??
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1166,7 +1163,7 @@ int Sketch::addAngleAtPointConstraint(
|
||||||
bool e2e = pos2 != none && pos1 != none;//is endpoint-to-endpoint?
|
bool e2e = pos2 != none && pos1 != none;//is endpoint-to-endpoint?
|
||||||
|
|
||||||
if (!( avp || e2c || e2e )) {
|
if (!( avp || e2c || e2e )) {
|
||||||
assert(0);//none of the three types. Why are we here??
|
//assert(0);//none of the three types. Why are we here??
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1177,14 +1174,13 @@ int Sketch::addAngleAtPointConstraint(
|
||||||
|
|
||||||
if (Geoms[geoId1].type == Point ||
|
if (Geoms[geoId1].type == Point ||
|
||||||
Geoms[geoId2].type == Point){
|
Geoms[geoId2].type == Point){
|
||||||
assert(0);//point is not a curve. No tangency/whatever!
|
Base::Console().Error("addAngleAtPointConstraint: one of the curves is a point!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
GCS::Curve* crv1 =getGCSCurveByGeoId(geoId1);
|
GCS::Curve* crv1 =getGCSCurveByGeoId(geoId1);
|
||||||
GCS::Curve* crv2 =getGCSCurveByGeoId(geoId2);
|
GCS::Curve* crv2 =getGCSCurveByGeoId(geoId2);
|
||||||
if (!crv1 || !crv2) {
|
if (!crv1 || !crv2) {
|
||||||
assert(0);
|
|
||||||
Base::Console().Error("addAngleAtPointConstraint: getGCSCurveByGeoId returned NULL!\n");
|
Base::Console().Error("addAngleAtPointConstraint: getGCSCurveByGeoId returned NULL!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1196,7 +1192,6 @@ int Sketch::addAngleAtPointConstraint(
|
||||||
pointId = getPointId(geoId1, pos1);
|
pointId = getPointId(geoId1, pos1);
|
||||||
|
|
||||||
if (pointId < 0 || pointId >= int(Points.size())){
|
if (pointId < 0 || pointId >= int(Points.size())){
|
||||||
assert(0);
|
|
||||||
Base::Console().Error("addAngleAtPointConstraint: point index out of range.\n");
|
Base::Console().Error("addAngleAtPointConstraint: point index out of range.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1205,7 +1200,6 @@ int Sketch::addAngleAtPointConstraint(
|
||||||
if(e2e){//we need second point
|
if(e2e){//we need second point
|
||||||
int pointId = getPointId(geoId2, pos2);
|
int pointId = getPointId(geoId2, pos2);
|
||||||
if (pointId < 0 || pointId >= int(Points.size())){
|
if (pointId < 0 || pointId >= int(Points.size())){
|
||||||
assert(0);
|
|
||||||
Base::Console().Error("addAngleAtPointConstraint: point index out of range.\n");
|
Base::Console().Error("addAngleAtPointConstraint: point index out of range.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1660,7 +1654,7 @@ int Sketch::addSnellsLawConstraint(int geoIdRay1, PointPos posRay1,
|
||||||
|
|
||||||
if (Geoms[geoIdRay1].type == Point ||
|
if (Geoms[geoIdRay1].type == Point ||
|
||||||
Geoms[geoIdRay2].type == Point){
|
Geoms[geoIdRay2].type == Point){
|
||||||
assert(0);//point is not a curve. Not applicable!
|
Base::Console().Error("addSnellsLawConstraint: point is not a curve. Not applicable!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1668,7 +1662,6 @@ int Sketch::addSnellsLawConstraint(int geoIdRay1, PointPos posRay1,
|
||||||
GCS::Curve* ray2 =getGCSCurveByGeoId(geoIdRay2);
|
GCS::Curve* ray2 =getGCSCurveByGeoId(geoIdRay2);
|
||||||
GCS::Curve* boundary =getGCSCurveByGeoId(geoIdBnd);
|
GCS::Curve* boundary =getGCSCurveByGeoId(geoIdBnd);
|
||||||
if (!ray1 || !ray2 || !boundary) {
|
if (!ray1 || !ray2 || !boundary) {
|
||||||
assert(0);
|
|
||||||
Base::Console().Error("addSnellsLawConstraint: getGCSCurveByGeoId returned NULL!\n");
|
Base::Console().Error("addSnellsLawConstraint: getGCSCurveByGeoId returned NULL!\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1677,7 +1670,6 @@ int Sketch::addSnellsLawConstraint(int geoIdRay1, PointPos posRay1,
|
||||||
int pointId2 = getPointId(geoIdRay2, posRay2);
|
int pointId2 = getPointId(geoIdRay2, posRay2);
|
||||||
if ( pointId1 < 0 || pointId1 >= int(Points.size()) ||
|
if ( pointId1 < 0 || pointId1 >= int(Points.size()) ||
|
||||||
pointId2 < 0 || pointId2 >= int(Points.size()) ){
|
pointId2 < 0 || pointId2 >= int(Points.size()) ){
|
||||||
assert(0);
|
|
||||||
Base::Console().Error("addSnellsLawConstraint: point index out of range.\n");
|
Base::Console().Error("addSnellsLawConstraint: point index out of range.\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -245,8 +245,9 @@ int SketchObject::movePoint(int GeoId, PointPos PosId, const Base::Vector3d& toP
|
||||||
|
|
||||||
Base::Vector3d SketchObject::getPoint(int GeoId, PointPos PosId) const
|
Base::Vector3d SketchObject::getPoint(int GeoId, PointPos PosId) const
|
||||||
{
|
{
|
||||||
assert(GeoId == H_Axis || GeoId == V_Axis ||
|
if(!(GeoId == H_Axis || GeoId == V_Axis
|
||||||
(GeoId <= getHighestCurveIndex() && GeoId >= -getExternalGeometryCount()) );
|
|| (GeoId <= getHighestCurveIndex() && GeoId >= -getExternalGeometryCount()) ))
|
||||||
|
throw Base::Exception("SketchObject::getPoint. Invalid GeoId was supplied.");
|
||||||
const Part::Geometry *geo = getGeometry(GeoId);
|
const Part::Geometry *geo = getGeometry(GeoId);
|
||||||
if (geo->getTypeId() == Part::GeomPoint::getClassTypeId()) {
|
if (geo->getTypeId() == Part::GeomPoint::getClassTypeId()) {
|
||||||
const Part::GeomPoint *p = dynamic_cast<const Part::GeomPoint*>(geo);
|
const Part::GeomPoint *p = dynamic_cast<const Part::GeomPoint*>(geo);
|
||||||
|
@ -1731,7 +1732,7 @@ int SketchObject::delExternal(int ExtGeoId)
|
||||||
if (copiedConstr->Third < GeoId &&
|
if (copiedConstr->Third < GeoId &&
|
||||||
copiedConstr->Third != Constraint::GeoUndef)
|
copiedConstr->Third != Constraint::GeoUndef)
|
||||||
copiedConstr->Third += 1;
|
copiedConstr->Third += 1;
|
||||||
|
|
||||||
newConstraints.push_back(copiedConstr);
|
newConstraints.push_back(copiedConstr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2638,7 +2639,7 @@ int SketchObject::port_reversedExternalArcs(bool justAnalyze)
|
||||||
bool SketchObject::AutoLockTangencyAndPerpty(Constraint *cstr, bool bForce, bool bLock)
|
bool SketchObject::AutoLockTangencyAndPerpty(Constraint *cstr, bool bForce, bool bLock)
|
||||||
{
|
{
|
||||||
try{
|
try{
|
||||||
assert ( cstr->Type == Tangent || cstr->Type == Perpendicular);
|
//assert ( cstr->Type == Tangent || cstr->Type == Perpendicular);
|
||||||
if(cstr->Value != 0.0 && ! bForce) /*tangency type already set. If not bForce - don't touch.*/
|
if(cstr->Value != 0.0 && ! bForce) /*tangency type already set. If not bForce - don't touch.*/
|
||||||
return true;
|
return true;
|
||||||
if(!bLock){
|
if(!bLock){
|
||||||
|
@ -2683,7 +2684,6 @@ bool SketchObject::AutoLockTangencyAndPerpty(Constraint *cstr, bool bForce, bool
|
||||||
}
|
}
|
||||||
} catch (Base::Exception& e){
|
} catch (Base::Exception& e){
|
||||||
//failure to determine tangency type is not a big deal, so a warning.
|
//failure to determine tangency type is not a big deal, so a warning.
|
||||||
assert(0);//but it shouldn't happen (failure to determine tangency type)!
|
|
||||||
Base::Console().Warning("Error in AutoLockTangency. %s \n", e.what());
|
Base::Console().Warning("Error in AutoLockTangency. %s \n", e.what());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user