-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2023 CEA, EDF
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include "ConstructionPlugin_Axis.h"
std::shared_ptr<GeomAPI_Vertex> aVertex(new GeomAPI_Vertex(aXAttr->value(),
aYAttr->value(),
aZAttr->value()));
- if (aShape1->isVertex() && (!aShape1->isEqual(aVertex))) {
+ if (aShape1->isVertex() &&
+ (fabs(aXAttr->value()) > MINIMAL_LENGTH() ||
+ fabs(aYAttr->value()) > MINIMAL_LENGTH() ||
+ fabs(aZAttr->value()) > MINIMAL_LENGTH())) {
std::shared_ptr<GeomAPI_Pnt> aStart = GeomAlgoAPI_PointBuilder::point(aShape1);
- std::shared_ptr<GeomAPI_Pnt> anEnd = aVertex->point();
- if (aStart->distance(anEnd) > ConstructionPlugin_Axis::MINIMAL_LENGTH()) {
- std::shared_ptr<GeomAPI_Edge> anEdge = GeomAlgoAPI_EdgeBuilder::line(aStart, anEnd);
+ std::shared_ptr<GeomAPI_Pnt> anEnd(new GeomAPI_Pnt(aStart->x() + aXAttr->value(),
+ aStart->y() + aYAttr->value(),
+ aStart->z() + aZAttr->value()));
- ResultConstructionPtr aConstr = document()->createConstruction(data());
- aConstr->setInfinite(true);
- aConstr->setShape(anEdge);
- setResult(aConstr);
- }
+ std::shared_ptr<GeomAPI_Edge> anEdge = GeomAlgoAPI_EdgeBuilder::line(aStart, anEnd);
+
+ ResultConstructionPtr aConstr = document()->createConstruction(data());
+ aConstr->setInfinite(true);
+ aConstr->setShape(anEdge);
+ setResult(aConstr);
}
}
}
GeomAPI_ShapeIterator anIt(aFaceShape);
aFace = anIt.current()->face();
}
+ if (!aFace)
+ return;
std::shared_ptr<GeomAPI_Pln> aPln = aFace->getPlane();
// Get point.
GeomAPI_ShapeIterator anIt(aFaceShape1);
aFace1 = anIt.current()->face();
}
+ if (!aFace1)
+ return;
std::shared_ptr<GeomAPI_Pln> aPln1 = aFace1->getPlane();
std::string useOffset1 = string(USE_OFFSET1())->value();
GeomAPI_ShapeIterator anIt(aFaceShape2);
aFace2 = anIt.current()->face();
}
+ if (!aFace2)
+ return;
std::shared_ptr<GeomAPI_Pln> aPln2 = aFace2->getPlane();
std::string useOffset2 = string(USE_OFFSET2())->value();
}
}
-bool ConstructionPlugin_Axis::customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
- std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)
+bool ConstructionPlugin_Axis::customisePresentation(ResultPtr theResult, AISObjectPtr thePrs)
{
- bool isCustomized = theDefaultPrs.get() != NULL &&
- theDefaultPrs->customisePresentation(theResult, thePrs, theDefaultPrs);
+ bool isCustomized = false;
isCustomized = thePrs->setLineStyle(3) || isCustomized;
isCustomized = thePrs->setWidth(2) || isCustomized;