libsurf
Programmer's Documentation

abstractuvcurve.h (r6227/r5385)
1 
2 /* Copyright (C) 2015 David Eller <david@larosterna.com>
3  *
4  * Commercial License Usage
5  * Licensees holding valid commercial licenses may use this file in accordance
6  * with the terms contained in their respective non-exclusive license agreement.
7  * For further information contact david@larosterna.com .
8  *
9  * GNU General Public License Usage
10  * Alternatively, this file may be used under the terms of the GNU General
11  * Public License version 3.0 as published by the Free Software Foundation and
12  * appearing in the file gpl.txt included in the packaging of this file.
13  */
14 
15 #ifndef SURF_ABSTRACTUVCURVE_H
16 #define SURF_ABSTRACTUVCURVE_H
17 
18 #include "forward.h"
19 #include "abstractcurve.h"
20 
32 {
33 public:
34 
36  AbstractUvCurve(SurfacePtr psf = SurfacePtr())
37  : AbstractCurve(), m_psf(psf) {}
38 
40  SurfacePtr surface() const {return m_psf;}
41 
43  virtual Vct3 eval(Real t) const;
44 
46  virtual Vct3 derive(Real t, uint k) const;
47 
49  virtual void tgline(Real t, Vct3 &c, Vct3 &dc) const;
50 
52  virtual void apply();
53 
55  virtual void reverse() = 0;
56 
58  virtual AbstractUvCurvePair split(Real t) const = 0;
59 
61  virtual Vct2 uveval(Real t) const = 0;
62 
64  virtual Vct2 uvderive(Real t, uint k) const = 0;
65 
67  virtual void uvtgline(Real t, Vct2 &q, Vct2 &dq) const;
68 
70  virtual uint discretize(const DcMeshCritBase &mcrit, Vector &t) const;
71 
72 protected:
73 
75  SurfacePtr m_psf;
76 };
77 
78 #endif // ABSTRACTUVCURVE_H
Base class for all curve objects.
Definition: abstractcurve.h:31
virtual Vct2 uvderive(Real t, uint k) const =0
evaluate derivative in (u,v) space
virtual void reverse()=0
reverse evaluation direction, must be implemented
virtual uint discretize(const DcMeshCritBase &mcrit, Vector &t) const
discretized based on simple criteria
Definition: abstractuvcurve.cpp:63
Base class for mesh quality criteria.
Definition: dcmeshcrit.h:30
virtual void uvtgline(Real t, Vct2 &q, Vct2 &dq) const
efficient evaluation of point and first derivative
Definition: abstractuvcurve.cpp:51
virtual Vct3 eval(Real t) const
evaluate spline curve
Definition: abstractuvcurve.cpp:24
virtual void tgline(Real t, Vct3 &c, Vct3 &dc) const
compute point and first derivative in one sweep
Definition: abstractuvcurve.cpp:42
Curve in (u,v) domain of parametric surface.
Definition: abstractuvcurve.h:31
virtual Vct2 uveval(Real t) const =0
evaluate curve in (u,v) space
virtual AbstractUvCurvePair split(Real t) const =0
split curve at t, create low and high curve
virtual Vct3 derive(Real t, uint k) const
compute kth derivative
Definition: abstractuvcurve.cpp:31
SurfacePtr surface() const
access surface on which this curve lies
Definition: abstractuvcurve.h:40
SurfacePtr m_psf
surface on which curve is defined
Definition: abstractuvcurve.h:75
virtual void apply()
apply hard transformation (default implementation does nothing)
Definition: abstractuvcurve.cpp:57
Generated on Wed Jan 19 2022 03:03:14 for libsurf by   doxygen 1.8.5