Surface interface.
Abstract base class which defines the minimum interface of a surface implementation. Whenever possible, a reasonable default implementation for all non-pure virtual interfaces is provided. Nevertheless, it will usually be beneficial to override even these functions for best results.
|
| 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 Vct3 | eval (Real u, Real v) const =0 |
| evaluation interface
|
|
virtual void | eval (const PointList< 2 > &uv, PointList< 3 > &xyz) const |
| utility interface
|
|
virtual Vct3 | derive (Real u, Real v, uint du, uint dv) const =0 |
| derive at (u,v)
|
|
virtual void | plane (Real u, Real v, Vct3 &S, Vct3 &Su, Vct3 &Sv) const |
| compute point and tangent derivatives at (u,v), for efficiency
|
|
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 | apply ()=0 |
| coordinate transformation
|
|
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
|
|
virtual XmlElement | toXml (bool share=false) const =0 |
| XML output.
|
|
virtual void | fromXml (const XmlElement &xe)=0 |
| XML input.
|
|
virtual int | toIges (IgesFile &file, int tfi=0) const |
| append to IGES file and return the directory entry index, if implemented
|
|
virtual bool | fromIges (const IgesFile &file, const IgesDirEntry &entry) |
| retrieve surface from IGES file, return false if not successfull
|
|
virtual Surface * | clone () const =0 |
| generate a clone
|
|
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
|
|
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 |
|