00001 00012 #ifndef __VOXEL___ 00013 #define __VOXEL___ 00014 #pragma once 00015 00016 #include <QColor> 00017 #include "vector.h" 00018 #include "color.h" 00019 00025 class Voxel 00026 { 00027 00028 public: 00029 00030 Voxel(void); 00032 Voxel(float desity); 00034 Voxel(float densityIn, Color mColorIn, Vector mGradientIn) { 00035 this->dens = densityIn; 00036 this->mColor = mColorIn; 00037 this->mGradient = mGradientIn; 00038 } 00039 ~Voxel(void); 00040 00041 inline Voxel operator+(const Voxel& v) const { return Voxel(v.dens + dens, v.mColor + mColor, v.mGradient + mGradient); } 00043 inline Voxel operator*(float fl) const { return Voxel((float)dens * fl, mColor * fl, mGradient * fl); } 00046 void setColor(Color newColor); 00047 00048 float dens; 00049 Color mColor; 00050 Vector mGradient; 00051 }; 00052 00053 00054 #endif