X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FGeomAPI%2FGeomAPI_PlanarEdges.cpp;h=9bb3fb994dfaa1d1cf05efc47b1763910334abdb;hb=7b4a6a2a335d41a647e0f6a6becb7c23df042be1;hp=f12d62204838cccd8a44cbbdcb1e2107a79771c7;hpb=61da4e89d2ec63daa429d304f928482a0e6fa0b7;p=modules%2Fshaper.git diff --git a/src/GeomAPI/GeomAPI_PlanarEdges.cpp b/src/GeomAPI/GeomAPI_PlanarEdges.cpp index f12d62204..9bb3fb994 100644 --- a/src/GeomAPI/GeomAPI_PlanarEdges.cpp +++ b/src/GeomAPI/GeomAPI_PlanarEdges.cpp @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D + // File: GeomAPI_PlanarEdges.cpp // Created: 06 Oct 2014 // Author: Sergey BELASH @@ -25,7 +27,7 @@ GeomAPI_PlanarEdges::GeomAPI_PlanarEdges() : GeomAPI_Shape() this->setImpl(new TopoDS_Shape(aBigWireImpl)); } -void GeomAPI_PlanarEdges::addEdge(boost::shared_ptr theEdge) +void GeomAPI_PlanarEdges::addEdge(std::shared_ptr theEdge) { const TopoDS_Edge& anEdge = theEdge->impl(); if (anEdge.ShapeType() != TopAbs_EDGE) @@ -35,16 +37,63 @@ void GeomAPI_PlanarEdges::addEdge(boost::shared_ptr theEdge) aBuilder.Add(aWire, anEdge); } -std::list > GeomAPI_PlanarEdges::getEdges() +std::list > GeomAPI_PlanarEdges::getEdges() { TopoDS_Shape& aShape = const_cast(impl()); //BRepTools_WireExplorer aWireExp(TopoDS::Wire(aShape)); TopExp_Explorer aWireExp(aShape, TopAbs_EDGE); - std::list > aResult; + std::list > aResult; for (; aWireExp.More(); aWireExp.Next()) { - boost::shared_ptr anEdge(new GeomAPI_Shape); + std::shared_ptr anEdge(new GeomAPI_Shape); anEdge->setImpl(new TopoDS_Shape(aWireExp.Current())); aResult.push_back(anEdge); } return aResult; } + +bool GeomAPI_PlanarEdges::hasPlane() const { + return myPlane.get() != NULL; +} + +bool GeomAPI_PlanarEdges::isVertex() const { + return false; +} + +bool GeomAPI_PlanarEdges::isEdge() const { + return false; +} + +std::shared_ptr GeomAPI_PlanarEdges::origin() const +{ + if (hasPlane()) + return myPlane->origin(); + return std::shared_ptr(); +} + +std::shared_ptr GeomAPI_PlanarEdges::dirX() const +{ + if (hasPlane()) + return myPlane->dirX(); + return std::shared_ptr(); +} + +std::shared_ptr GeomAPI_PlanarEdges::dirY() const +{ + if (hasPlane()) + return myPlane->dirY(); + return std::shared_ptr(); +} + +std::shared_ptr GeomAPI_PlanarEdges::norm() const +{ + if (hasPlane()) + return myPlane->normal(); + return std::shared_ptr(); +} + +void GeomAPI_PlanarEdges::setPlane(const std::shared_ptr& theOrigin, + const std::shared_ptr& theDirX, + const std::shared_ptr& theNorm) +{ + myPlane = std::shared_ptr(new GeomAPI_Ax3(theOrigin, theDirX, theNorm)); +} \ No newline at end of file