Programmer's Documentation

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
RevoSurf Class Reference

Detailed Description

Surface of revolution.

This definition of a surface of revolution is modeled after the IGES entity 120.

See Also
Surface, LinearSurf

#include <revosurf.h>

Inheritance diagram for RevoSurf:
Collaboration diagram for RevoSurf:

Public Member Functions

 RevoSurf (const std::string &s="RevoSurf")
 create undefined surface
Vct3 eval (Real u, Real v) const
 evaluate surface
Vct3 derive (Real u, Real v, uint du, uint dv) const
 evaluate derivatives
void plane (Real u, Real v, Vct3 &S, Vct3 &Su, Vct3 &Sv) const
 evaluate linear approximation
int toIges (IgesFile &file, int tfi=0) const
 append to IGES file and return the directory entry index, if implemented
bool fromIges (const IgesFile &file, const IgesDirEntry &dir)
 extract surface of revolution from IGES file
RevoSurfclone () const
 generate a clone
XmlElement toXml (bool share) const
 create XML representation
void fromXml (const XmlElement &xe)
 recover from XML representation
void apply ()
 apply transformation
- Public Member Functions inherited from Surface
 Surface (const std::string &s="NoNameSurface")
 default initialization
virtual ~Surface ()
 virtual destructor
uint objid () const
 access integer object id
void rename (const std::string &s)
 change name
const std::string & name () const
 return name
virtual void eval (const PointList< 2 > &uv, PointList< 3 > &xyz) const
 utility interface
virtual Vct3 normal (Real u, Real v) const
 compute normal vector
virtual Real vcurvature (Real u, Real v) const
 compute curvature along v at u
virtual Real ucurvature (Real u, Real v) const
 compute curvature along u at v
virtual Real gaussianCurvature (Real u, Real v) const
 compute Gaussian curvature
virtual bool project (const Vct3 &pt, Vct2 &q, Real tol=1e-6, Real dpmin=1e-6) const
 find projection of pt on surface (needs a guess in q)
virtual bool intersect (const AbstractCurve &c, Vct2 &q, Real &t, Real tol=1e-6, Real dpmin=1e-6) const
 find approximate intersection with curve c
virtual void dimStats (DimStat &stat) const
 compute dimensional statistics
Real typLength (int nu=8, int nv=8) const
 compute typical dimension
virtual void initGrid (Real lmax, Real lmin, Real phimax, PointGrid< 2 > &pts) const
 create an unconstrained point grid as initialization for mesh generator
virtual void initMesh (const DnRefineCriterion &c, DnMesh &gnr) const
 initialize mesh generator - default version uses initGrid
virtual void tessellate (CgMesh &cgm, uint maxtri=60000) const
 create a triangular mesh for visualization
SurfacePtr self ()
 return shared-pointer from *this
virtual void initGridPattern (Vector &up, Vector &vp) const
 return an initial discretization pattern to start with [equidistant]
virtual void isSymmetric (bool &usym, bool &vsym) const
 return if surface is symmetric in u- or v-direction [false]
virtual void gridViz (MeshFields &mvz) const
 debug : create simple visualization
- Public Member Functions inherited from RFrame
void clear ()
Vct3 getOrigin () const
void translate (const Vct3 &v)
void translate (Real dx, Real dy, Real dz)
void rotate (Real betax, Real betay, Real betaz)
void rotate (const Vct3 &rotax, Real angle)
void scale (Real xf, Real yf, Real zf)
void scale (Real f)
void mirror (const Vct3 &normal)
const SMatrix< 4, 4 > & trafoMatrix () const
void setTrafoMatrix (const SMatrix< 4, 4 > &m)
Vct3 forward (const Vct3 &a) const
void forward (const PointList< 4 > &a, PointList< 4 > &b) const

Protected Member Functions

void buildRotation ()
 reconstruct 90 degree rotation from axis
- Protected Member Functions inherited from Surface
Real localCurvature (const Vct3 &dc, const Vct3 &ddc) const
 determine local curvature given first and second derivative
void applyIgesTrafo (const IgesFile &file, const IgesDirEntry &dir)
 apply a transformation retrieved from IGES file
void setIgesName (const IgesFile &file, const IgesEntity &e)
 retrieve name from IGES file

Protected Attributes

Vct3 pax1
 two points define axis of revolution
Vct3 pax2
CurvePtr genCurve
 generatrix curve
Real startAngle
 start and end angles
Real termAngle
Mtx33 rot90
 helper : rotation by 90 degree about axis
- Protected Attributes inherited from Surface
std::string ids
 string identifier
uint object_id
 integer id used to find object in serialization
- Protected Attributes inherited from RFrame
SMatrix< 4, 4 > mat

Additional Inherited Members

- Static Public Member Functions inherited from Surface
static SurfacePtr createFromXml (const XmlElement &xe)
 static factory function
static SurfacePtr createFromIges (const IgesFile &file, const IgesDirEntry &entry)
 static factory : create surface from IGES entity
- Static Protected Member Functions inherited from Surface
static uint nextObjectId ()
 generate new object id

The documentation for this class was generated from the following files:
Generated on Fri Dec 2 2022 03:03:16 for libsurf by   doxygen 1.8.5