libsurf
Programmer's Documentation

Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
InstanceSurf Class Reference

Detailed Description

Associative copy of another surface.

See Also
Surface, TopoPart

#include <instancesurf.h>

Inheritance diagram for InstanceSurf:
[legend]
Collaboration diagram for InstanceSurf:
[legend]

Public Member Functions

 InstanceSurf ()
 undefined instance
 
 m_parent (parent)
 
 m_tfm (tfm)
 
 m_uo (0)
 
 m_du (1)
 
 m_vo (0)
 
 m_dv (1)
 
 m_parent_id (0)
 
void transform (const Trafo3d &t)
 change instance transformation
 
void transform (const Mtx44 &t)
 change instance transformation
 
void uswap (bool flag)
 switch u-parametrization direction
 
void vswap (bool flag)
 switch v-parametrization direction
 
void mapU (Real offset, Real scale)
 define a general mapping of the u-coordinate
 
void mapV (Real offset, Real scale)
 define a general mapping of the v-coordinate
 
Vct3 eval (Real u, Real v) const
 evaluate surface
 
Vct3 derive (Real u, Real v, uint ku, uint kv) const
 compute derivative
 
void plane (Real u, Real v, Vct3 &S, Vct3 &Su, Vct3 &Sv) const
 compute point and tangent derivatives at (u,v), for efficiency
 
void apply ()
 coordinate transformation
 
XmlElement toXml (bool share=false) const
 XML output.
 
void fromXml (const XmlElement &xe)
 XML input.
 
InstanceSurfclone () const
 generate a clone
 
- 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
 
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
 
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
 

Public Attributes

 __pad0__: Surface("InstanceOf"+parent->name())
 create instance from parent and transformation matrix
 

Private Member Functions

void map (Real &u, Real &v) const
 map (u,v) coordinate to internal space
 

Private Attributes

SurfacePtr m_parent
 original, master surface
 
Mtx44 m_tfm
 transformation matrix
 
Real m_uo
 linear transformation of u-parameter
 
Real m_du
 
Real m_vo
 linear transformation of v-parameter
 
Real m_dv
 
uint m_parent_id
 for recovery from xml
 

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
 
- 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
 
- Static Protected Member Functions inherited from Surface
static uint nextObjectId ()
 generate new object id
 
- 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
 

The documentation for this class was generated from the following files:
Generated on Mon Jan 24 2022 03:03:18 for libsurf by   doxygen 1.8.5