00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _MITOPOLOGYIJK_H
00024 #define _MITOPOLOGYIJK_H
00025
00026 #include <MeshVizXLM/mesh/topology/MiTopology.h>
00027
00028 #include <Inventor/STL/sstream>
00029
00030
00042 class MESHVIZXLM_EXTR_API MiTopologyIjk : virtual public MiTopology
00043 {
00044 public:
00045
00049 virtual size_t getNumCellsI() const = 0;
00050
00054 virtual size_t getNumCellsJ() const = 0;
00055
00059 virtual size_t getNumCellsK() const = 0;
00060
00067 virtual bool isDead(size_t SO_UNUSED_PARAM(i), size_t SO_UNUSED_PARAM(j), size_t SO_UNUSED_PARAM(k)) const { return false; }
00068
00069 private:protected:
00073 virtual std::ostream& toStream(std::ostream& s) const
00074 {
00075 s << "#mesh topology Ijk" << std::endl;
00076 s << "#numCellsI" << std::endl;
00077 s << getNumCellsI() << std::endl;
00078 s << "#numCellsJ" << std::endl;
00079 s << getNumCellsJ() << std::endl;
00080 s << "#numCellsK" << std::endl;
00081 s << getNumCellsK() << std::endl;
00082 s << "#hasDeadCells" << std::endl;
00083 s << hasDeadCells() << std::endl;
00084 if (hasDeadCells())
00085 {
00086 s << "#deadCells:" << std::endl;
00087 for (size_t i=0; i<getNumCellsI(); i++)
00088 {
00089 for (size_t j=0; j<getNumCellsJ(); j++)
00090 {
00091 for (size_t k=0; k<getNumCellsK(); k++)
00092 {
00093 if (isDead(i,j,k))
00094 {
00095 s << "#deadCell(" << i << "," << j << "," << k << ")" << std::endl;
00096 }
00097 }
00098 }
00099 }
00100 }
00101 return s;
00102 }
00103
00104 };
00105
00106
00107 #endif
00108
00109
00110