#ifndef BRELEMENT2DNODETRAVERSER_H_INCLUDED #define BRELEMENT2DNODETRAVERSER_H_INCLUDED #include "Br/BrTraverser.h" #include "Br/BrEnums.h" #include "Br/BrMesh2dElement2dTraverser.h" #include "Br/BrNode.h" #include "Ge/GePoint2d.h" /** \details This interface class represents element node traversers. It is used to access node data, such as surface normals and pairs of uv parameters. \remarks This class is implemented only for Spatial modeler. \sa TD_Br */ class ODBR_TOOLKIT_EXPORT OdBrElement2dNodeTraverser : public OdBrTraverser { public: /** \details Default constructor. */ OdBrElement2dNodeTraverser(); /** \details Destructor. */ ~OdBrElement2dNodeTraverser(); /** \details Sets the specific element node list to this traverser. \param mesh2dElement2dTraverser [in] Defines the topological adjacent list of nodes owned by the 2D element at the current position in this OdBrMesh2dElement2dTraverser, starting at the first node in the list. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the value of this traverser's element node list is unchanged. */ OdBrErrorStatus setElement (const OdBrMesh2dElement2dTraverser& mesh2dElement2dTraverser); /** \details Sets the specific element node list to this traverser. \param element [in] Defines the 2D element with a topological adjacent list of nodes, starting at the first node in the list. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the value of this traverser's element node list is unchanged. */ OdBrErrorStatus setElement (const OdBrElement2d& element); /** \details Returns the element that owns the element node list. \param element [out] Defines the 2D element object, passed by reference. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the element reference object passed as an argument is unchanged. */ OdBrErrorStatus getElement (OdBrElement2d& element) const; /** \details Sets the starting position of this traverser to a specific node in the element node list. \param node [in] Node at which the traverser's starting position is set. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the traverser's element node list is unchanged. */ OdBrErrorStatus setNode (const OdBrNode& node); /** \details Returns the node at the current position in the element node list. \param node [out] Node at the current position. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the node reference object that is passed as an argument is unchanged. */ OdBrErrorStatus getNode (OdBrNode& node) const; /** \details Returns the normal vector computed on the original surface at the current node. \param vector [out] Normal vector at the current node. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the normal vector reference argument's value is unchanged. */ OdBrErrorStatus getSurfaceNormal(OdGeVector3d& vector) const; /** \details Returns the 2D element node's underlying parameter point. \param point [out] Parameter point. \returns Returns odbrOK if successful, or an appropriate error code if not. \remarks In case of an error, the parameter point reference object is unchanged. */ OdBrErrorStatus getParamPoint (OdGePoint2d& point) const; }; #endif