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

hyp.fem.element.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 26/03/01 Pierre Rebours
00026 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00027 */
00028 
00029 
00030 #ifndef _hyp_fem_element_h_
00031 #define _hyp_fem_element_h_
00032 
00033 #ifndef hypfem_INSIDE_INTERN
00034 #error Inclusion not allowed (include hyp.fem.intern.h instead)
00035 #endif
00036 
00047 class CFEOElements :
00048 #ifdef hypfem_IDENTIFY_CONSTRUCTION_ON
00049 protected CIDClass,
00050 #endif
00051 public IFEOElement,
00052 public hyp_ker::CUnknown
00053 {
00054         typedef void (*PTR_INIT_MATRIX)(hyp_ker::IUnknown*,IMatrix*);
00055 public:
00057         CFEOElements(hyp_ker::IUnknown*,PTR_INIT_MATRIX);
00058         virtual ~CFEOElements();
00059         hyp_DECLARE_IUNKNOWN
00060         virtual hyp_ker::com_result NondelegatingQueryInterface(const hyp_ker::hypIID&,void**);
00061         hyp_ker::com_result Init(void); 
00062         void FinalRelease(void);
00063 
00064         //factories
00065         static hyp_ker::com_result CreateInstanceBrick42(hyp_ker::IUnknown* ,hyp_ker::CUnknown** );
00067         
00071         virtual const IFEOMaterial* GetMaterial() const;
00072         virtual void SetMaterial(IFEOMaterial*);
00073         virtual void SetKe(IMatrix*);
00075 
00076 private:
00077         static void InitMatrixForBrick42(hyp_ker::IUnknown*, IMatrix* );
00078         PTR_INIT_MATRIX m_InitMatrix;
00079 
00080         IFEOMaterial* m_pMaterial;      
00081 
00082         //aggregation
00083         hyp_ker::IPtrUnknown m_spUnknownContNodes;
00084         inline IGeometricBase* GetGeometricBase(void) {
00085                 t_spGeometricBase spContNodes=m_spUnknownContNodes;
00086                 return spContNodes;
00087         }
00088 };
00089 
00090 #endif  

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