RobWorkProject
24.6.21

Surface is an abstract representation of a smooth surface geometry. More...
#include <Surface.hpp>
Inherited by ImplicitSurface.
Public Types  
typedef rw::core::Ptr< Surface >  Ptr 
Smart pointer type for Surface.  
typedef rw::core::Ptr< const Surface >  CPtr 
Smart pointer type for const Surface.  
Public Member Functions  
Surface ()  
Constructor.  
virtual  ~Surface () 
Destructor.  
Surface::Ptr  transform (const rw::math::Transform3D< double > &T) const 
Move the surface. More...  
Surface::Ptr  transform (const rw::math::Vector3D< double > &P) const 
Move the surface without rotation. More...  
Surface::Ptr  scale (double factor) const 
Get a scaled version of the surface. More...  
Surface::Ptr  clone () const 
Clone the surface. More...  
virtual std::pair< double, double >  extremums (const rw::math::Vector3D< double > &direction) const =0 
Find the extent of the surface along a specific direction. More...  
virtual rw::core::Ptr< TriMesh >  getTriMesh (const std::vector< rw::math::Vector3D< double >> &border=std::vector< rw::math::Vector3D< double >>()) const =0 
Discretize the surface into a triangle mesh representation. More...  
virtual void  setDiscretizationResolution (double resolution)=0 
Set the resolution used for discretization in the getTriMesh function. More...  
virtual bool  equals (const Surface &surface, double threshold) const =0 
Check if this surface is identical to other surface . More...  
Surface is an abstract representation of a smooth surface geometry.
The interface provides functions for affine transformations, such as scaling, rotation and translation. In case of a trimmed surface, it is also possible to make a discretization of the surface to triangle mesh.

inline 
Clone the surface.

pure virtual 
Check if this surface is identical to other surface .
surface  [in] other surface to compare to. 
threshold  [in] threshold for when surfaces can be considered identical. 
Implemented in ImplicitSurface, QuadraticSurface, and ImplicitTorus.

pure virtual 
Find the extent of the surface along a specific direction.
If the surface has no lower bound, the value std::numeric_limits<double>::max() can be returned to indicate that the surface has unbounded minimum value in the given direction.
If the surface has no upper bound, the value std::numeric_limits<double>::max() can be returned to indicate that the surface has unbounded maximum value in the given direction.
direction  [in] a normalized direction vector. 
Implemented in ImplicitSurface, QuadraticSurface, and ImplicitTorus.

pure virtual 
Discretize the surface into a triangle mesh representation.
If the border of a trimmed surface must fit with other surface triangulations, a discretized border must be given to this triangulation function.
If the same border points are used for different surfaces for their common edges, the triangulations will fit together.
border  [in] (optional) an ordered list of points on the surface, that forms the border of the patch to triangulate. 
Implemented in ImplicitSurface, QuadraticSurface, and ImplicitTorus.

inline 
Get a scaled version of the surface.
factor  [in] the factor to scale with. 

pure virtual 
Set the resolution used for discretization in the getTriMesh function.
The meaning of this parameter depends on the type of surface.
resolution  [in] the resolution parameter. 
Implemented in ImplicitSurface, QuadraticSurface, and ImplicitTorus.

inline 
Move the surface.
T  [in] the transform to the new surface. 

inline 
Move the surface without rotation.
If there is no rotation, this function is better to use than transform(const rw::math::Transform3D<>&) const for some surfaces. This is because certain properties can be preserved.
P  [in] the translation vector to the new surface. 