chrono::geometry::ChSurface Class Referenceabstract

Description

Base class for all geometric objects representing bi-parametric surfaces in 3D space.

This is the base for all U,V-parametric object, implementing Evaluate() that returns a point as a function of two U,V parameters.

#include <ChSurface.h>

Inheritance diagram for chrono::geometry::ChSurface:
Collaboration diagram for chrono::geometry::ChSurface:

Public Member Functions

 ChSurface (const ChSurface &source)
 
virtual void Evaluate (ChVector<> &pos, const double parU, const double parV) const =0
 "Virtual" copy constructor (covariant return type). More...
 
virtual void Normal (ChVector<> &dir, const double parU, const double parV) const
 Evaluates a normal versor, given parametric coordinates U,V. More...
 
virtual bool Get_closed_U () const
 Tell if the surface is closed (periodic) on U.
 
virtual bool Get_closed_V () const
 Tell if the surface is closed (periodic) on V.
 
virtual int GetManifoldDimension () const override
 This is a surface, so manifold dimension=2.
 
bool IsWireframe ()
 Tell if the visualization is done only as UV isolines.
 
void SetWireframe (bool mw)
 Set if the visualization is done only as UV isolines.
 
virtual void ArchiveOUT (ChArchiveOut &marchive) override
 Method to allow serialization of transient data to archives.
 
virtual void ArchiveIN (ChArchiveIn &marchive) override
 Method to allow de-serialization of transient data from archives.
 
- Public Member Functions inherited from chrono::geometry::ChGeometry
 ChGeometry (const ChGeometry &source)
 
virtual ChGeometryClone () const =0
 "Virtual" copy constructor.
 
virtual GeometryType GetClassType () const
 Get the class type as unique numerical ID (faster than using ChronoRTTI mechanism). More...
 
virtual void GetBoundingBox (double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax, ChMatrix33<> *Rot=nullptr) const
 Compute bounding box. More...
 
virtual void InflateBoundingBox (double &xmin, double &xmax, double &ymin, double &ymax, double &zmin, double &zmax, ChMatrix33<> *Rot=NULL) const
 Enlarge a previous existing bounding box. More...
 
virtual double Size () const
 Returns the radius of the sphere which can enclose the geometry.
 
virtual ChVector Baricenter () const
 Compute center of mass It should be overridden by inherited classes.
 
virtual void CovarianceMatrix (ChMatrix33<> &C) const
 Compute the 3x3 covariance matrix (only the diagonal and upper part) It should be overridden by inherited classes.
 
virtual void Update ()
 Generic update of internal data. More...
 

Protected Attributes

bool wireframe
 

Additional Inherited Members

- Public Types inherited from chrono::geometry::ChGeometry
enum  GeometryType {
  NONE, SPHERE, BOX, CYLINDER,
  TRIANGLE, CAPSULE, CONE, LINE,
  LINE_ARC, LINE_BEZIER, LINE_CAM, LINE_PATH,
  LINE_POLY, LINE_SEGMENT, ROUNDED_BOX, ROUNDED_CYLINDER,
  ROUNDED_CONE, TRIANGLEMESH, TRIANGLEMESH_CONNECTED, TRIANGLEMESH_SOUP
}
 Enumeration of geometric objects.
 

Member Function Documentation

◆ Evaluate()

virtual void chrono::geometry::ChSurface::Evaluate ( ChVector<> &  pos,
const double  parU,
const double  parV 
) const
pure virtual

"Virtual" copy constructor (covariant return type).

Evaluates a point on the surface, given parametric coordinates U,V. Parameters U and V always work in 0..1 range. Computed value goes into the 'pos' reference. It must be implemented by inherited classes.

Implemented in chrono::geometry::ChSurfaceNurbs.

◆ Normal()

void chrono::geometry::ChSurface::Normal ( ChVector<> &  dir,
const double  parU,
const double  parV 
) const
virtual

Evaluates a normal versor, given parametric coordinates U,V.

Parameters U,V always work in 0..1 range. Computed value (normalized) goes into the 'pos' reference. It could be overridden by inherited classes if a precise solution is known (otherwise it defaults to numerical BDF using the Evaluate() function).


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono/geometry/ChSurface.h
  • /builds/uwsbel/chrono/src/chrono/geometry/ChSurface.cpp