00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
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
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
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