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:
Collaboration diagram for InstanceSurf:

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