-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File: GeomAlgoAPI_PointBuilder.h
-// Created: 02 Jun 2014
-// Author: Mikhail PONIKAROV
+// 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
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// 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
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
#ifndef GeomAlgoAPI_PointBuilder_H_
#define GeomAlgoAPI_PointBuilder_H_
/// \brief Creates vertex by edge and distance on it.
/// \param[in] theEdge edge.
/// \param[in] theValue distance value.
- /// \param[in] theIsPercent if true theValue will be treated as a percentage of theEdge total length.
+ /// \param[in] theIsPercent if true theValue will be treated
+ /// as a percentage of theEdge total length.
/// \param[in] theIsReverse if true the distance will be measured from the edge end point.
/// \return created vertex.
static std::shared_ptr<GeomAPI_Vertex> vertexOnEdge(const std::shared_ptr<GeomAPI_Edge> theEdge,
const bool theIsPercent = false,
const bool theIsReverse = false);
+ /// \brief Creates vertex by projection another vertex on edge.
+ /// \param[in] theVertex vertex to project.
+ /// \param[in] theEdge edge for projection.
+ /// \return created vertex.
+ static std::shared_ptr<GeomAPI_Vertex>
+ vertexByProjection(const std::shared_ptr<GeomAPI_Vertex> theVertex,
+ const std::shared_ptr<GeomAPI_Edge> theEdge);
+
/// \brief Creates vertex by projection another vertex on plane.
/// \param[in] theVertex vertex to project.
- /// \param[in] thePlane face for projection. Should be planar.
+ /// \param[in] theFace face for projection. Should be planar.
/// \return created vertex.
- static std::shared_ptr<GeomAPI_Vertex> vertexByProjection(const std::shared_ptr<GeomAPI_Vertex> theVertex,
- const std::shared_ptr<GeomAPI_Face> thePlane);
+ static std::shared_ptr<GeomAPI_Vertex>
+ vertexByProjection(const std::shared_ptr<GeomAPI_Vertex> theVertex,
+ const std::shared_ptr<GeomAPI_Face> theFace);
/// \brief Creates vertex by intersection two coplanar lines.
/// \param[in] theEdge1 first linear edge.
/// \param[in] theEdge2 second linear edge.
/// \return created vertex.
- static std::shared_ptr<GeomAPI_Vertex> vertexByIntersection(const std::shared_ptr<GeomAPI_Edge> theEdge1,
- const std::shared_ptr<GeomAPI_Edge> theEdge2);
+ static std::shared_ptr<GeomAPI_Vertex>
+ vertexByIntersection(const std::shared_ptr<GeomAPI_Edge> theEdge1,
+ const std::shared_ptr<GeomAPI_Edge> theEdge2);
/// Return point by shape vertex
static std::shared_ptr<GeomAPI_Pnt> point(const std::shared_ptr<GeomAPI_Shape> theVertex);