20 #ifndef AXLABSTRACTVOLUMEBSPLINE_H 
   21 #define AXLABSTRACTVOLUMEBSPLINE_H 
   24 #include "axlCoreExport.h" 
   26 #include <dtkMathSupport/dtkVector3D.h> 
   28 class axlAbstractVolumeBSplinePrivate;
 
   38     using   axlAbstractVolumeParametric::copy;
 
   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;
 
   46     virtual int knotVectorSize_u(
void) 
const;
 
   47     virtual int knotVectorSize_v(
void) 
const;
 
   48     virtual int knotVectorSize_w(
void) 
const;
 
   50     virtual int order_u(
void) 
const;
 
   51     virtual int order_v(
void) 
const;
 
   52     virtual int order_w(
void) 
const;
 
   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;
 
   59     virtual double getWeight(
int n, 
int m, 
int k) 
const;
 
   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);
 
   65     virtual double getKnot_u(
int n) 
const;
 
   66     virtual double getKnot_v(
int n) 
const;
 
   67     virtual double getKnot_w(
int n) 
const;
 
   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);
 
   71     virtual void insertKnot_u(
double k);
 
   72     virtual void removeKnot_u(
double k);
 
   74     virtual void insertKnot_v(
double k);
 
   75     virtual void removeKnot_v(
double k);
 
   77     virtual void insertKnot_w(
double k);
 
   78     virtual void removeKnot_w(
double k);
 
   80     virtual bool rational(
void) 
const;
 
   82     virtual QVector<axlPoint *> sampling();
 
   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);
 
   86     virtual QString printCoeffs(
bool print) 
const;
 
   87     virtual QString printKnotsVector(
bool print) 
const;
 
   89     virtual QString description(
void) 
const;
 
   91     virtual void updateRcoeff();
 
   94     double scalarValue(
double u, 
double v, 
double w);
 
   95     void setScalarValue(
double u, 
double v, 
double w, 
double value);
 
   99     virtual bool connectionsAreDefined(
void);
 
  100     virtual QList<int> getControlPointConnection(
int i); 
 
  101     virtual void defineControlPointConnection(
int i, 
int j);
 
  103     virtual void resetControlPointConnections(
void);
 
  113     void samplingChanged(
void);
 
  114     void indexSelected(
int);
 
  117     axlAbstractVolumeBSplinePrivate *d;
 
Class axlPoint defines 3D points. 
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...
virtual void selectIndex(int i)