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

hyp.data.object.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 */
00026 
00027 #ifndef _hyp_data_object_h_
00028 #define _hyp_data_object_h_
00029 
00030 #ifndef hypfem_INSIDE_INTERN
00031 #error Inclusion not allowed (include hyp.fem.intern.h instead)
00032 #endif
00033 
00046 class CGeometricObject :
00047 #ifdef hypfem_IDENTIFY_CONSTRUCTION_ON
00048 protected CIDClass,
00049 #endif
00050 public IGeometricObject,/*
00051 #ifdef hyp_WIN32
00052 public ID3DRMMeshObject,
00053 #endif
00054 */
00055 public hyp_ker::CUnknown
00056 //+ aggregation iserialize
00057 {
00058 public:
00060         CGeometricObject(hyp_ker::IUnknown*,const hyp_ker::hypCLSID* );
00061         virtual ~CGeometricObject();
00062         hyp_DECLARE_IUNKNOWN
00063         virtual hyp_ker::com_result NondelegatingQueryInterface(const hyp_ker::hypIID&,void**);
00064         static hyp_ker::com_result CreateInstanceForGeometry(hyp_ker::IUnknown* ,hyp_ker::CUnknown** );
00065         static hyp_ker::com_result CreateInstanceForFiniteElement(hyp_ker::IUnknown* ,hyp_ker::CUnknown** );
00066         hyp_ker::com_result Init(void); 
00067         void FinalRelease(void);
00069 
00070 
00074         virtual IGeometricSide* CreateSide(const t_label&,const t_label_enum&);
00075         virtual IGeometricSide* CreateSide(const t_label&);
00076         virtual IGeometricVertex* CreateVertex(const t_label&,const t_real&,const t_real&,const t_real&);
00077         virtual IGeometricVertex* CreateVertex(const t_label&);         
00078         virtual void AddSide(IGeometricSide*,const t_label&);
00079         virtual void DeleteSide(const t_label&);
00080         virtual IContainerKey* GetContainerOfSides();
00081         virtual t_size GetNumberOfSides();
00082         virtual IGeometricSide* GetSide(const t_label&);
00084 /*
00085 #ifdef hyp_WIN32
00086         //ID3DRMMeshObject
00087         virtual void InitializeD3DRMMesh(LPDIRECT3DRMMESHBUILDER2);
00088 #endif
00089         */
00090 
00091 private:
00092         t_spContainerKey m_spSideContKey;       
00093         hyp_ker::IPtrUnknown m_spUnknownVertices;
00094         
00095         //quel composant est crée quand on appelle CreateVertex
00096         const hyp_ker::hypCLSID* m_pCLSID_Vertex;
00097 
00098 };
00099 
00100 
00101 #endif

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