]> Creatis software - creaVtk.git/blobdiff - lib/creaVtk/MeshManagerModel.h
#3504 Mesh Manager handle multiple meshes
[creaVtk.git] / lib / creaVtk / MeshManagerModel.h
index b2f5dc9051b13963e1383c8cf511ce6f54140d12..b679255a55e1686afbf39b4ad59a030752c4aedf 100644 (file)
 #  knowledge of the CeCILL-B license and that you accept its terms.
 # ------------------------------------------------------------------------
 */
+#include <vtkPolyData.h>
+
+class MeshModel{
+
+public:
+       MeshModel(int id);
+       MeshModel(vtkPolyData* mesh, int id);
+       ~MeshModel();
+       
+       void                    SetMeshBase(vtkPolyData* mesh);
+    void                       SetMeshMemoryMode(vtkPolyData* mesh);
+    void                       CopySetMeshBase(vtkPolyData* mesh);
+    void                       ResetMeshTemp();
+    void                       ResetMeshTemp_();
+    vtkPolyData*       GetMeshBase();
+    vtkPolyData*       GetMeshTemp();
+    int                        GetId();
+    std::string        GetName();
+    
+protected:
+
+private:
+       vtkPolyData                             *_meshBase;
+    vtkPolyData                                *_meshTemp;
+    int                                                        _meshId;
+    std::string                                        _name;
+};
 
 #ifndef _MESHMANAGERMODEL_H_
 #define _MESHMANAGERMODEL_H_
@@ -33,8 +60,6 @@
 // [classdescription]
 //---------------------------------------------
 
-#include <vtkPolyData.h>
-
 class MeshManagerModel
 {
 
@@ -49,10 +74,36 @@ public :
     void SetMeshMemoryMode(vtkPolyData* mesh);
     void CopySetMeshBase(vtkPolyData* mesh);
     void ResetMeshTemp();
-    void ResetMeshTemp_();
+    //void ResetMeshTemp_();
     vtkPolyData* GetMeshBase();
     vtkPolyData* GetMeshTemp();
-    virtual void RefreshOutputs();
+    
+    virtual void RefreshOutputs(bool signalBox);
+    
+    MeshModel* GetMeshModel();
+    int GetNumberOfMeshes();
+    
+    void AddMesh_(vtkPolyData* mesh);
+    void AddMesh(vtkPolyData* mesh);
+    
+    void AddEmptyMesh_();
+    void AddEmptyMesh();
+    
+    void AddMeshes(std::vector<vtkPolyData*> meshList);
+    void AddMeshes_(std::vector<vtkPolyData*> meshList);
+    
+    void InsertMeshesAtCurrent_(std::vector<vtkPolyData*> meshList);
+    void InsertMeshesAtCurrent(std::vector<vtkPolyData*> meshList);
+    
+    void SelectMesh(int i);
+    void SelectMeshByName(std::string meshName);
+    void DeleteMesh(int position);
+    void DeleteMeshByName(std::string meshName);
+    void DeleteCurrentMesh();
+    void DeleteAll();
+    void NextMesh();
+    void PreviousMesh();
+    std::vector<std::string> GetMeshNames();
 
 //--Method template----------------------------
 //  void FunctionName(int& parameterA);
@@ -67,8 +118,10 @@ protected:
 //Methods and attributes only visible by this class
 //---------------------------------------------
 private:
-    vtkPolyData *_meshBase;
-    vtkPolyData *_meshTemp;
+    
+    std::vector<MeshModel*>    _meshes;
+    int                                                currentMesh;
+    int                                                        meshId;
 };
 
 //-end of _MESHMANAGERMODEL_H_------------------------------------------------------