00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef DL_EXTRUSION_H
00028 #define DL_EXTRUSION_H
00029
00030 #include <math.h>
00031
00032
00039 class DL_Extrusion {
00040
00041 public:
00042
00046 DL_Extrusion() {
00047 direction = new double[3];
00048 setDirection(0.0, 0.0, 1.0);
00049 setElevation(0.0);
00050 }
00051
00052
00056 ~DL_Extrusion() {
00057 delete direction ;
00058 }
00059
00060
00069 DL_Extrusion(double dx, double dy, double dz, double elevation) {
00070 direction = new double[3];
00071 setDirection(dx, dy, dz);
00072 setElevation(elevation);
00073 }
00074
00075
00076
00080 void setDirection(double dx, double dy, double dz) {
00081 direction[0]=dx;
00082 direction[1]=dy;
00083 direction[2]=dz;
00084 }
00085
00086
00087
00091 double* getDirection() const {
00092 return direction;
00093 }
00094
00095
00096
00100 void getDirection(double dir[]) const {
00101 dir[0]=direction[0];
00102 dir[1]=direction[1];
00103 dir[2]=direction[2];
00104 }
00105
00106
00107
00111 void setElevation(double elevation) {
00112 this->elevation = elevation;
00113 }
00114
00115
00116
00120 double getElevation() const {
00121 return elevation;
00122 }
00123
00124
00125
00129 DL_Extrusion operator = (const DL_Extrusion& extru) {
00130 setDirection(extru.direction[0], extru.direction[1], extru.direction[2]);
00131 setElevation(extru.elevation);
00132
00133 return *this;
00134 }
00135
00136
00137
00138 private:
00139 double *direction;
00140 double elevation;
00141 };
00142
00143 #endif
00144
00145