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 #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