00001
00012 #ifndef __FILL_OCT_H__
00013 #define __FILL_OCT_H__
00014
00015 #include <global.h>
00016
00017 #if !defined(CLASSIC_MODE) && defined(FILL_SOLIDS)
00018
00019 #include <octree/index_oct.h>
00020 #include <generator/oct_gen.h>
00021 #include <octree/idx_holder.h>
00022
00028 class FillOct : public IndexOct {
00029 public:
00034 FillOct(IndexOct idxOct);
00035
00046 void fill(OctGen* generator);
00047
00048 private:
00054 void add(NodeIndex idx);
00055
00060 void fill();
00061
00076 void fillParts(_octree subtree, NodeIndex myIdx, Axis axis, AxIndex partOfs);
00077
00091 void fillParts(NodeIndex myIdx, Axis axis, AxIndex partOfs);
00092
00105 void fillTree(_octree subtree, NodeIndex myIdx, OctGen* generator);
00106
00107 #ifdef SAVED_FILL
00108
00116 Color getColor(OctGen* generator, NodeIndex p, bool &savedFill);
00117 #endif
00118
00122 Color fillColor;
00123
00127 IdxHolder fillPoints;
00128
00129 #ifdef LIMITED_STACK
00130
00134 bool fillFurther;
00135
00140 NodeIndex keptPoint;
00141 #endif // LIMITED_STACK
00142
00143 };
00144
00145 #endif // !CLASSIC_MODE && FILL_SOLIDS
00146
00147 #endif // ! __FILL_OCT_H__