Developer documentation | Axl-2.5.1

axlAbstractVolumeBSpline.h
Go to the documentation of this file.
1 /* axlAbstractVolumeBSpline.h ---
2  *
3  * Author:Anais Ducoffe
4  * Copyright (C) 2012 - Anais Ducoffe, Inria.
5  * Created:
6  * Version: $Id$
7  * Last-Updated:
8  * By:
9  * Update #:
10  */
11 
12 /* Commentary:
13  *
14  */
15 
16 /* Change log:
17  *
18  */
19 
20 #ifndef AXLABSTRACTVOLUMEBSPLINE_H
21 #define AXLABSTRACTVOLUMEBSPLINE_H
22 
24 #include "axlCoreExport.h"
25 
26 #include <dtkMathSupport/dtkVector3D.h>
27 
28 class axlAbstractVolumeBSplinePrivate;
29 
31 {
32  Q_OBJECT
33 
34 public:
36  virtual ~axlAbstractVolumeBSpline(void);
37 
38  using axlAbstractVolumeParametric::copy;
39  virtual axlAbstractVolumeBSpline* copy (void) const;
40 
41  virtual int countControlPoints(void) const;
42  virtual int countControlPoints_u(void) const;
43  virtual int countControlPoints_v(void) const;
44  virtual int countControlPoints_w(void) const;
45 
46  virtual int knotVectorSize_u(void) const;
47  virtual int knotVectorSize_v(void) const;
48  virtual int knotVectorSize_w(void) const;
49 
50  virtual int order_u(void) const;
51  virtual int order_v(void) const;
52  virtual int order_w(void) const;
53 
54  virtual double getCoord(int n, int m,int k, int v) const;
55  virtual axlPoint getCoef(int n, int m, int k) const;
56  virtual axlPoint getCoef(int n) const;
57 
58  //Added
59  virtual double getWeight(int n, int m, int k) const;
60 
61  virtual bool setCoef(int n, int m,int k, int v, double c);
62  virtual bool setCoef(int n, int m, int k, double *controlPoint);
63  virtual bool setCoef(int n, double *controlPoint);
64 
65  virtual double getKnot_u(int n) const;
66  virtual double getKnot_v(int n) const;
67  virtual double getKnot_w(int n) const;
68 
69  virtual void setVolume(int pointsCount_u, int pointsCount_v,int pointsCount_w, int order_u, int order_v,int order_w, int dimension, double *knots_u, double *knots_v, double *knots_w,double *points, bool rational);
70 
71  virtual void insertKnot_u(double k);
72  virtual void removeKnot_u(double k);
73 
74  virtual void insertKnot_v(double k);
75  virtual void removeKnot_v(double k);
76 
77  virtual void insertKnot_w(double k);
78  virtual void removeKnot_w(double k);
79 
80  virtual bool rational(void) const;
81 
82  virtual QVector<axlPoint *> sampling();
83 
84  virtual void gridEvaluator(int num_u, int num_v,int num_w, std::vector<double>& points, std::vector<double>& param_u, std::vector<double>& param_v,std::vector<double>& param_w);
85 
86  virtual QString printCoeffs(bool print) const;
87  virtual QString printKnotsVector(bool print) const;
88 
89  virtual QString description(void) const;
90 
91  virtual void updateRcoeff();
92 
93  // Scalar values proof of concept
94  double scalarValue(double u, double v, double w);
95  void setScalarValue(double u, double v, double w, double value);
96 
97 
98  //control points' connections definition
99  virtual bool connectionsAreDefined(void);
100  virtual QList<int> getControlPointConnection(int i); // give all the connections that are still to be made for the ith coefficient.
101  virtual void defineControlPointConnection(int i, int j);// i and j represents coefficient numbers.
102 
103  virtual void resetControlPointConnections(void);
104 
105  //converter method for qjson-rpc communication.
106  QVariantList convertDataToQVariant(void) const;
107  int convertQVariantToData(const QVariantList &data);
108 
109  virtual void selectIndex(int i) { emit indexSelected(i); }
110 
111 signals:
112  void updated(void);
113  void samplingChanged(void);
114  void indexSelected(int);
115 
116 private:
117  axlAbstractVolumeBSplinePrivate *d;
118 };
119 
120 #endif
Class axlPoint defines 3D points.
Definition: axlPoint.h:34
virtual int convertQVariantToData(const QVariantList &data)
Modify properties and geometry variables of the axlAbstractData. Return 1 if the modification was suc...
virtual QVariantList convertDataToQVariant(void) const
Convert an axlAbstractData into a QVariantList that specifies all properties of the axlAbstractData...
#define AXLCORE_EXPORT