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

hyp.data.side.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 14/03/01 Pierre Rebours
00026 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00027 */
00028 
00029 #ifndef _hyp_data_side_h_
00030 #define _hyp_data_side_h_
00031 
00032 #ifndef hypfem_INSIDE_INTERN
00033 #error Inclusion not allowed (include hyp.fem.intern.h instead)
00034 #endif
00035 
00048 class CGeometricSide :
00049 #ifdef hypfem_IDENTIFY_CONSTRUCTION_ON
00050 protected CIDClass,
00051 #endif
00052 public IGeometricBase,
00053 public IGeometricSide,
00054 public hyp_ker::CUnknown
00055 {
00056 public:
00058         CGeometricSide(hyp_ker::IUnknown*);
00059         virtual ~CGeometricSide();
00060         hyp_DECLARE_IUNKNOWN
00061         virtual hyp_ker::com_result NondelegatingQueryInterface(const hyp_ker::hypIID&,void**);
00062         static hyp_ker::com_result CreateInstance(hyp_ker::IUnknown* ,hyp_ker::CUnknown**);
00063         hyp_ker::com_result Init(void); 
00064         void FinalRelease(void);
00066 
00070         virtual t_size GetNumberOfVertices() {
00071                 return GetGeometricBase()->GetNumberOfVertices(); }
00072         virtual IGeometricVertex* GetVertex(const t_label& Label) {
00073                 return GetGeometricBase()->GetVertex(Label);
00074         }
00075         virtual IGeometricVertex* GetVertex(const t_real& X,const t_real& Y,const t_real& Z) {
00076                 return GetGeometricBase()->GetVertex(X,Y,Z);
00077         }
00078         virtual t_label GetLabel(IGeometricVertex* pObject) {
00079                 return GetGeometricBase()->GetLabel(pObject);
00080         }
00081         virtual void AddVertex(IGeometricVertex*,const t_label&);
00082         virtual void DeleteVertex(const t_label& Label) {
00083                 GetGeometricBase()->DeleteVertex(Label);
00084         }
00085         virtual IContainerKey* GetContainerOfVertices() {
00086                 return GetGeometricBase()->GetContainerOfVertices();
00087         }
00088         virtual void SetFilter(const hyp_ker::hypIID* pIID) {
00089                 GetGeometricBase()->SetFilter(pIID);
00090         }
00091         virtual void ClearFilter() {
00092                 GetGeometricBase()->ClearFilter();
00093         }
00095 
00096 private:
00097         inline IGeometricBase* GetGeometricBase(void) {
00098                 t_spGeometricBase spVerticesBase=m_spUnknownBase;
00099                 return spVerticesBase;
00100         }
00101         hyp_ker::IPtrUnknown m_spUnknownBase;
00102 };
00103 
00104 #endif

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