Developer documentation | Axl-2.5.1

axlAbstractSurfaceParametric.h
Go to the documentation of this file.
1 /* axlAbstractSurfaceParametric.h ---
2  *
3  * Author: Meriadeg Perrinel
4  * Copyright (C) 2008 - Meriadeg Perrinel, Inria.
5  * Created: Tue Nov 9 16:58:59 2010 (+0100)
6  * Version: $Id$
7  * Last-Updated: Tue Mar 29 09:43:43 2011 (+0200)
8  * By: Julien Wintz
9  * Update #: 24
10  */
11 
12 /* Commentary:
13  *
14  */
15 
16 /* Change log:
17  *
18  */
19 
20 #ifndef AXLABSTRACTSURFACEPARAMETRIC_H
21 #define AXLABSTRACTSURFACEPARAMETRIC_H
22 
23 #include "axlAbstractSurface.h"
24 #include "axlCoreExport.h"
25 #include "axlPoint.h"
26 
27 #include <dtkMathSupport/dtkVector3D.h>
28 
29 class axlMesh;
30 class axlAbstractSurfaceParametricPrivate;
31 //class axlAbstractVisitorParametric;
32 
34 {
35  Q_OBJECT
36  Q_PROPERTY(int samples_u READ samples_u WRITE setSamples_u)
37  Q_PROPERTY(int samples_v READ samples_v WRITE setSamples_v)
38 
39 public:
41  virtual ~axlAbstractSurfaceParametric(void);
42 
43  virtual axlPoint eval(double u, double v);
44  virtual void eval(axlPoint *point, double u,double v);
45  virtual void eval(double&, double&, double&, double u,double v);
46  virtual void normal(axlPoint *normal, double u,double v);
47 
48  virtual axlMesh eval(double u, double v, int derivs, bool u_from_right = true, bool v_from_right = true, double resolution = 1.0e-12);
49  virtual dtkDeprecated::dtkVector3D<double> eval2(double u,double v);
50 
51  virtual void parameterOf(const axlPoint& point, double& um, double& vm);
52 
53 
54  virtual dtkDeprecated::dtkVector3D<double> normal(double u,double v);
55  virtual void normal(dtkDeprecated::dtkVector3D<double> *normal, double u,double v);
56 
57 
58  virtual double area(double tol);
59 
60  virtual int numSamples_u(void);
61  virtual int numSamples_v(void);
62 
63  virtual double startParam_u(void);
64  virtual double endParam_u(void);
65  virtual double startParam_v(void);
66  virtual double endParam_v(void);
67 
68 
69  virtual double startParam_u(int numCell);
70  virtual double endParam_u(int numCell);
71  virtual double startParam_v(int numCell);
72  virtual double endParam_v(int numCell);
73  virtual void eval(axlPoint *point, double u,double v, int numCell);
74  virtual void normal(axlPoint *normal, double u,double v, int numCell);
75  virtual bool hasCells(void);
76  virtual int countCells(void);
77  virtual int numSamples_u(int numCell);
78  virtual int numSamples_v(int numCell);
79 
80 
81  virtual int stripes(void);
82  virtual void setStripes(int stripes);
83 
84  virtual void setNumSamples_u(int numSamples);
85  virtual void setNumSamples_v(int numSamples);
86 
87 public:
88  const int& samples_u(void) const;
89  const int& samples_v(void) const;
90 
91 public slots:
92  void setSamples_u(const int& color);
93  void setSamples_v(const int& color);
94 
95 //public :
96 // virtual axlAbstractVisitorParametric *getVisitor(void);
97 // virtual void setVisistor(axlAbstractVisitorParametric *visitor);
98 
99 
100 
101 private:
102  axlAbstractSurfaceParametricPrivate *d;
103 };
104 #endif
Class axlPoint defines 3D points.
Definition: axlPoint.h:34
#define AXLCORE_EXPORT
Class axlMesh defines a piecewise-linear 3D object.
Definition: axlMesh.h:41