00001 /*======================================================================= 00002 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), *** 00003 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. *** 00004 *** *** 00005 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS *** 00006 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR *** 00007 *** WRITTEN AUTHORIZATION OF FEI S.A.S. *** 00008 *** *** 00009 *** RESTRICTED RIGHTS LEGEND *** 00010 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS *** 00011 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN *** 00012 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT *** 00013 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN *** 00014 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. *** 00015 *** *** 00016 *** COPYRIGHT (C) 1996-2017 BY FEI S.A.S, *** 00017 *** MERIGNAC, FRANCE *** 00018 *** ALL RIGHTS RESERVED *** 00019 **=======================================================================*/ 00020 /*======================================================================= 00021 ** Author : Martial Bonaventure (Mar 2010) 00022 **=======================================================================*/ 00023 00024 #ifndef _MySurfaceMeshRectilinear_H 00025 #define _MySurfaceMeshRectilinear_H 00026 00051 #include <MeshVizXLM/mesh/topology/MiTopologyIj.h> 00055 class MyTopologyIj : public MiTopologyIj 00056 { 00057 public: 00061 size_t getNumCellsI() const 00062 { 00063 // @ADD YOUR CODE HERE. 00064 } 00065 00069 size_t getNumCellsJ() const 00070 { 00071 // @ADD YOUR CODE HERE. 00072 } 00073 00079 bool hasDeadCells() const 00080 { 00081 // @ADD YOUR CODE HERE (Optional). 00082 // Required only if the topology has dead cells, remove this method otherwise to use 00083 // the default implementation that always returns false. 00084 } 00085 00091 bool isDead(size_t i,size_t j) const 00092 { 00093 // @ADD YOUR CODE HERE (Optional). 00094 // Required only if the topology has dead cells, remove this method otherwise to use 00095 // the default implementation that always returns false. 00096 } 00097 00101 size_t getTimeStamp() const 00102 { 00103 // @ADD YOUR CODE HERE (see MxTimeStamp). 00104 // When the content of the topology changes, the time stamp must also change. 00105 // The time stamp allows MeshViz to be aware of any change to this topology. 00106 } 00107 00108 }; 00109 00110 #include <MeshVizXLM/mesh/geometry/MiSurfaceGeometryRectilinear.h> 00114 class MySurfaceGeometryRectilinear : public MiSurfaceGeometryRectilinear //, public YourGeometry 00115 // Advised to inherit from the class containing your application geometry. 00116 { 00117 public: 00121 double getX(size_t i) const 00122 { 00123 // @ADD YOUR CODE HERE. 00124 } 00125 00129 double getY(size_t j) const 00130 { 00131 // @ADD YOUR CODE HERE. 00132 } 00133 00137 MbVec3d getNormal() const 00138 { 00139 // @ADD YOUR CODE HERE (Optional). Remove this method if using the default 00140 // value (0,0,1) defining the XY plane. 00141 // Note: other values currently handled for the geometry are (1,0,0) and (0,1,0) 00142 // defining the YZ and ZX planes. 00143 } 00144 00148 double getDistance() const 00149 { 00150 // @ADD YOUR CODE HERE (Optional). Remove this method if using the default value 0. 00151 } 00152 00156 size_t getTimeStamp() const 00157 { 00158 // @ADD YOUR CODE HERE (see MxTimeStamp). 00159 // When the content of the geometry changes, the time stamp must also change. 00160 // The time stamp allows MeshViz to be aware of any change to this geometry. 00161 } 00162 }; 00163 00164 #include <MeshVizXLM/mesh/MiSurfaceMeshRectilinear.h> 00168 class MySurfaceMeshRectilinear : public MiSurfaceMeshRectilinear 00169 { 00170 00171 public: 00175 const MiSurfaceGeometryRectilinear& getGeometry() const 00176 { 00177 return m_geometry; 00178 } 00179 00183 const MiTopologyIj& getTopology() const 00184 { 00185 return m_topology; 00186 } 00187 00188 00189 private: 00190 MySurfaceGeometryRectilinear m_geometry; 00191 MyTopologyIj m_topology; 00192 00193 }; 00194 00195 #include <MeshVizXLM/mesh/data/MiDataSetIj.h> 00199 class MyScalarSetIj : public MiScalardSetIj //, public YourData 00200 // Advised to inherit from the class containing your application data. 00201 { 00202 public: 00203 00207 double get(size_t i,size_t j) const 00208 { 00209 // @ADD YOUR CODE HERE. 00210 } 00211 00215 size_t getTimeStamp() const 00216 { 00217 // @ADD YOUR CODE HERE (see MxTimeStamp). 00218 // When the content of the scalar set changes, the time stamp must also change. 00219 // The time stamp allows MeshViz to be aware of any change to this scalar set. 00220 } 00221 00225 std::string getName() const 00226 { 00227 // @ADD YOUR CODE HERE. 00228 } 00229 00233 DataBinding getBinding() const 00234 { 00235 // @ADD YOUR CODE HERE (see MiDataSet::DataBinding). 00236 } 00237 00238 }; 00239 00240 #include <MeshVizXLM/mesh/data/MiDataSetIj.h> 00244 class MyVectorSetIj : public MiVec3dSetIj //, public YourData 00245 // Advised to inherit from the class containing your application data. 00246 { 00247 public: 00248 00252 MbVec3d get(size_t i, size_t j) const 00253 { 00254 // @ADD YOUR CODE HERE. 00255 } 00256 00260 size_t getTimeStamp() const 00261 { 00262 // @ADD YOUR CODE HERE (see MxTimeStamp). 00263 // When the content of the vector set changes, the time stamp must also change. 00264 // The time stamp allows MeshViz to be aware of any change to this vector set. 00265 } 00266 00270 std::string getName() const 00271 { 00272 // @ADD YOUR CODE HERE. 00273 } 00274 00278 DataBinding getBinding() const 00279 { 00280 // @ADD YOUR CODE HERE (see MiDataSet::DataBinding). 00281 } 00282 00283 }; 00284 00285 #endif 00286 00287 00288 00289 00290 00291 00292 00293