00001 00010 #ifndef PTCLOUD_H 00011 #define PTCLOUD_H 00012 00013 00014 #include <assert.h> 00015 #include "Color.H" 00016 00017 // Gluebase includes 00018 #define OUTSIDE_GLUE_CORE 00019 #include <mlib/points.H> 00020 #include <std/list.H> 00021 00022 00023 class PtCloud 00024 { 00025 public: 00026 00027 PtCloud() {}; 00028 virtual ~PtCloud() {}; 00029 00030 virtual int num() { return _points.num(); } 00031 00032 virtual Wpt point(int n) { 00033 assert(n < _points.num()); 00034 return _points[n]; 00035 } 00036 00037 virtual Wvec norm(int n) { 00038 assert (n < _norms.num()); 00039 return _norms[n]; 00040 } 00041 00042 virtual Color color(int n) { 00043 assert (n < _colors.num()); 00044 return _colors[n]; 00045 } 00046 00047 virtual void addPt(Wpt p, Wvec n, Color c) { 00048 _points += p; 00049 _norms += n; 00050 _colors += c; 00051 } 00052 00053 protected: 00054 00055 Wpt_list _points; 00056 ARRAY<Wvec> _norms; 00057 ARRAY<Color> _colors; 00058 00059 }; 00060 00061 #endif 00062