libsurf
Programmer's Documentation

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

Detailed Description

Cap surface as a polynomial spline surface.

See Also
PolySplineSurf

#include <splinecapsurf.h>

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

Public Member Functions

 SplineCapSurf (const std::string &s="")
 create undefined cap surface
 
void init (Real tsplit, const Curve &c)
 generate flat cap from tip/first/last curve
 
void init (const Vector &tc, const Curve &c)
 generate flat cap from tip/first/last curve
 
void initGridPattern (Vector &up, Vector &vp) const
 for visualization & debugging
 
- Public Member Functions inherited from PolySplineSurf
 PolySplineSurf (const std::string &s="")
 construct named spline surface
 
void interpolate (const Vector &u, const Vector &v, const PointGrid< 3 > &grid, int udeg=3, int vdeg=3)
 interpolate spline surface from grid
 
void approximate (const Vector &u, const Vector &v, const PointGrid< 3 > &grid, int ncu, int ncv, int udeg=3, int vdeg=3)
 approximate spline surface from grid with a given control grid size
 
Vct3 eval (Real u, Real v) const
 evaluation interface
 
Vct3 derive (Real u, Real v, uint du, uint dv) const
 derive at (u,v)
 
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
 
void dimStats (DimStat &stat) const
 compute statistics
 
void simpleMesh (PointGrid< 3, float > &pgrid, PointGrid< 3, float > &ngrid, uint pu=2, uint pv=2) const
 create simple discretization for display purposes
 
void simpleMesh (TriMesh &msh, uint pu=2, uint pv=2, int tag=0) const
 dump simple discretization into global mesh
 
XmlElement toXml (bool share=false) const
 XML output.
 
void fromXml (const XmlElement &xe)
 XML input.
 
bool fromStep (const StepFile &file, const StepBSplineSurfaceWithKnots *ep)
 extract from STEP entity id
 
bool fromIges (const IgesFile &file, const IgesDirEntry &entry)
 extract from IGES entity 128
 
int toIges (IgesFile &file, int tfi=0) const
 append to IGES file and return the directory entry index, if implemented
 
Surfaceclone () const
 generate a clone
 
void knotScale (AbstractCurve &c) const
 transform a parameter-space curve read from IGES
 
- 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
 
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 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
 

Static Public Member Functions

static void limitUKnotCount (uint c)
 set this to 100 if you need IGES export to CAD
 
- Static Public Member Functions inherited from PolySplineSurf
static GridCompat compatible (const PolySplineSurf &a, const PolySplineSurf &b, Real tol=1e-6)
 compute control point grid compatibility
 
- 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 Private Attributes

static uint iMaxKnots = numeric_limits<int>::max()
 mesh constraints? More...
 

Additional Inherited Members

- Public Types inherited from PolySplineSurf
enum  GridCompat {
  Incompatible =0, North2South, South2North, East2West,
  West2East
}
 control point grid compatibility
 
- Protected Member Functions inherited from PolySplineSurf
void evalBasisGrid (const Vector &u, const Vector &v, Matrix &A) const
 evaluate spline bases on grid (interpolation/approximation)
 
void toControlGrid (int nu, int nv, const Matrix &b)
 recover control points from linear system solution
 
Real umap (Real ux) const
 map u parameter to internal range
 
Real vmap (Real vx) const
 map v parameter to internal range
 
void mappedPlane (Real u, Real v, Vct3 &S, Vct3 &Su, Vct3 &Sv) const
 evaluate first derivatives in mapped domain [0,1]x[0,1]
 
- 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 PolySplineSurf
SplineBasis ub
 spline bases in two directions
 
SplineBasis vb
 
PointGrid< 3 > cp
 control point grid
 
Real ukfront
 original range of knot values
 
Real ukback
 
Real vkfront
 
Real vkback
 
Real ustart
 parameter region
 
Real uend
 
Real vstart
 
Real vend
 
- 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
 

Member Data Documentation

uint SplineCapSurf::iMaxKnots = numeric_limits<int>::max()
staticprivate

mesh constraints?

limit on knot count


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