Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

hyp.out.facade.h

00001 /*
00002 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00003  Ephydryne Components.
00004  Ephydryne is a part of the Hyperion Project.
00005 ----------------------------------------------------------
00006  Copyright (c) 2001 Pierre Rebours.
00007 
00008  This library is free software; you can redistribute it and/or
00009  modify it under the terms of the GNU Lesser General Public
00010  License as published by the Free Software Foundation; either
00011  version 2.1 of the License, or (at your option) any later version.
00012 
00013  This library is distributed in the hope that it will be useful,
00014  but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016  
00017  See hyp.license.txt file for more information about the license.
00018  
00019  Web: http://lagrandeporte.multimania.com/hyperion
00020  Email: pierre_rebours@yahoo.com
00021 ----------------------------------------------------------
00022  CVS
00023  $Log$
00024  
00025  Creation 27/03/01 Pierre Rebours
00026 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00027 */
00028 
00029 
00030 #ifndef _hyp_out_facade_h_
00031 #define _hyp_out_facade_h_
00032 
00033 
00034 class CMeshData
00035 {
00036 public:
00037         CMeshData(hyp_ker::IUnknown*);
00038         struct SVertex {
00039                 t_label label;  //label absolu du vertex
00040                 t_real coord[3];
00041                 bool dof[3];
00042                 bool b_visible;
00043         };
00044         struct SVerticesEnum :
00045         public std::vector<SVertex>
00046         {
00047 
00048         };
00049         SVerticesEnum GetVerticesEnum(void);
00050         
00051         struct SBase {
00052                 t_label label;
00053                 t_label_enum vertices_global;   //vertices
00054                 t_label_enum vertices_local;    //vertices en local             
00055         };
00056 
00057         template<class T>
00058         struct SBasesEnum :
00059         public std::vector<T> {
00060                 int GetTotalRefNodes(void) {
00061                         int TotalRef=0;
00062                         for(int i=0;i<size();i++) {
00063                                 TotalRef+=at(i).vertices_global.size();
00064                         }
00065                         return TotalRef;
00066                 }
00067         };
00068                 
00069         struct SSide : public SBase { };
00070         struct SSidesEnum :
00071         public SBasesEnum<SSide> { };
00072         SSidesEnum GetSidesEnum(void);
00073 
00074         struct SElement : public SBase {
00075                 t_real young;
00076                 t_real poisson;
00077         };
00078         struct SElementsEnum :
00079         public SBasesEnum<SElement> { };
00080         SElementsEnum GetElementsEnum(void);
00081 
00082         t_label GetLabelVertex(hyp_ker::IUnknown*);
00083         t_label GetLabelSide(hyp_ker::IUnknown*);
00084         t_label GetLabelElement(hyp_ker::IUnknown*);
00085 
00086 protected:
00087         t_label_enum GetLabelsForContainer(hyp_ker::IUnknown*,hyp_ker::IUnknown* =0);
00088 
00089 private:
00090         hyp_fem::t_spGeometricBase m_spBaseMesh;
00091         hyp_fem::t_spGeometricObject m_spObjectMesh;
00092         hyp_fem::t_spFEOMesh m_spMeshMesh;      
00093         
00094 };
00095 
00096 #endif

Top of Page
written by Pierre Rebours © 2000-2001. Terms of Use.