Salome HOME
PR: notes
[modules/smesh.git] / src / SMDS / Notes
1
2 =============================== Hypothese de refonte de l'API de SMDS
3
4 n'utiliser que vtkUnstructuredGrid, ne pas avor d'objets SMDS_MeshElement mais seulement des index de vtkUnstructuredGrid.
5 2987 usages de SMDS_MeshNodes
6 810            SMDS_MeshElement
7 ...
8 ==> en dernier ressort, lourd
9 ================================================================================
10
11 Essai a API SMDS a peu près constante
12 =====================================
13
14 SMDS_Mesh
15   static vector<SMDS_Mesh*> _meshList;     --> retrouver un SMDS_Mesh
16   vtkUnstructuredGrid*      myGrid;
17
18   vector<SMDS_MeshNode *>   myNodes;       --> meme index que dans le pointSet de myGrid
19   vector<SMDS_MeshCell *>   myCells;       --> index = ID client, pas le meme index que dans le cellTypes de myGrid (ID vtk)
20
21
22
23 SMDS_MeshElement
24   int myID;                                --> index dans la structure geree par SMDS_Mesh
25   int myMeshId;                            --> pour retrouver SMDS_Mesh* dans _meshList
26   int myShapeId;                           --> pour retrouver la subShape
27                                                          
28
29 SMDS_MeshNode: SMDS_MeshElement
30   SMDS_PositionPtr myPosition;             -->  A REVOIR : objet position dans la shape geom
31   ##vector<int> myInverseElements;         -->  SUPPRIME : pour retrouver les elements, vtkCellLinks
32
33
34 SMDS_MeshCell: SMDS_MeshElement            --> generique pour tous les elements (cells)
35   int myVtkID                              --> A SUPPRIMER
36
37 SMDS_MeshVolume: SMDS_MeshCell
38
39 SMDS_VolumeOfNodes: SMDS_MeshVolume
40   const SMDS_MeshNode **myNodes;           --> A SUPPRIMER, utiliser myID
41   int                 myNbNodes;           --> A SUPPRIMER
42
43 SMDS_MeshElementIDFactory: SMDS_MeshNodeIDFactory
44   vector<int> myIDElements; // index = ID client, value = ID vtk  --> A SUPPRIMER, ne sert que dans SMDS_MeshElementIDFactory
45   vector<int> myVtkIndex;   // index = ID vtk, value = ID client  --> A REPORTER dans SMDS_Mesh
46
47 ========= TODO ============
48
49 enlever vtkId de SMDS_MeshCell, utiliser SMDS_MeshElementIDFactory.
50
51 ajouter ID dans SMDS_Mesh::createTriangle 
52 verifier ID dans SMDS_Mesh::Find*OrCreate
53
54 ========================
55 occupation memoire cube 100*100*100 sans affichage
56
57 Ubuntu 9.10 64 bits 15/12/2009
58 /home/prascle/projets/SALOME/SMESH/BR_SMDS_MEMIMP/SMESH_SRC/src/SMESH/SMESH_Gen.cxx:143
59 in use bytes     =   32843200 
60 /home/prascle/projets/SALOME/SMESH/BR_SMDS_MEMIMP/SMESH_SRC/src/SMESH/SMESH_Gen.cxx [294] : VSR - SMESH_Gen::Compute() finished, OK = 1
61 in use bytes     =  498773760
62 delta = 460 Mo (45 Mo de plus que sur Sarge 64 bits ?)