From: sshutina Date: Wed, 23 Jul 2025 14:14:46 +0000 (+0100) Subject: Add API to get vertex by index from sensitive X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=f0a4b37b5d15234f0d6d58f0dee245d0eec0eb80;p=occt.git Add API to get vertex by index from sensitive --- diff --git a/src/Select3D/Select3D_SensitivePrimitiveArray.cxx b/src/Select3D/Select3D_SensitivePrimitiveArray.cxx index 8c0d0d3fdc..3a4956283c 100644 --- a/src/Select3D/Select3D_SensitivePrimitiveArray.cxx +++ b/src/Select3D/Select3D_SensitivePrimitiveArray.cxx @@ -395,6 +395,23 @@ bool Select3D_SensitivePrimitiveArray::InitTriangulation (const Handle(Graphic3d return true; } +// ======================================================================= +// function : GetVertex +// purpose : +// ======================================================================= +std::vector Select3D_SensitivePrimitiveArray::GetVertex (const Standard_Integer theIndex) const +{ + std::vector aVertices; + aVertices.reserve(3); + Graphic3d_Vec3i aTriNodes; + const Standard_Integer anIndexOffset = theIndex * 3; + getTriIndices(myIndices, anIndexOffset, aTriNodes); + aVertices.push_back (getPosVec3(aTriNodes[0])); + aVertices.push_back (getPosVec3(aTriNodes[1])); + aVertices.push_back (getPosVec3(aTriNodes[2])); + return aVertices; +} + // ======================================================================= // function : InitPoints // purpose : diff --git a/src/Select3D/Select3D_SensitivePrimitiveArray.hxx b/src/Select3D/Select3D_SensitivePrimitiveArray.hxx index 28002d8ecb..2f409c17b4 100644 --- a/src/Select3D/Select3D_SensitivePrimitiveArray.hxx +++ b/src/Select3D/Select3D_SensitivePrimitiveArray.hxx @@ -195,6 +195,9 @@ public: //! Return the second node of last topmost detected edge or -1 if undefined (axis picking). Standard_Integer LastDetectedEdgeNode2() const { return myDetectedEdgeNode2; } + //! Return vertex by index. + Standard_EXPORT std::vector GetVertex (const Standard_Integer theIndex) const; + //! Dumps the content of me into the stream Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;