|
Open PaperOpt
|
00001 // Surface.h: interface for the Surface class. 00002 // 00004 00005 #if !defined(AFX_SURFACE_H__FD6A9522_062B_11D7_B637_00500429BABE__INCLUDED_) 00006 #define AFX_SURFACE_H__FD6A9522_062B_11D7_B637_00500429BABE__INCLUDED_ 00007 00008 #if _MSC_VER >= 1000 00009 #pragma once 00010 #endif // _MC_VER >= 1000 00011 00012 #include "WavePacket.h" 00013 #include "StructureObject.h" 00014 #include "Array2D.h" 00015 00016 00017 00018 #define FLAT 0 00019 #define TOPO 1 00020 #define TOPO_TRI 2 00021 #define TN 3 00022 #define TN_SUBFLAT 4 00023 #define TN_INK 5 00024 00025 00026 class Surface : public StructureObject 00027 { 00028 00029 friend class SimVolume; 00030 friend class SurfaceTopo; 00031 friend class SurfaceTopography; 00032 friend class SurfaceTN; 00033 friend class SurfaceTNSubflat; 00034 friend class SurfaceTNInk; 00035 00036 public: 00037 Surface(); 00038 virtual ~Surface(); 00039 00053 Surface(float z,float rms_lo, float rms_hi,float xmin, 00054 float xmax,float ymin,float ymax,StructureObject * el); 00055 00060 virtual double mZposition(WavePacket &wp) const {return mZoffset;}; 00061 00068 virtual int Process(WavePacket& wp, int up_down, int internal) const ; 00069 00078 virtual int mIntercept(WavePacket& wp,double t1in,double t2in,int ud,double& t) const; 00079 00080 virtual int mGetTypeSurface() const {return mTypeSurface ;} ; //const ; 00081 00082 virtual double mGetSurfPosition() const {return(mZoffset);} 00083 00084 virtual double mGetZmin() const { return mZmin; } 00085 virtual double mGetZmax() const { return mZmax; } 00086 virtual double mGetXmin() const { return mXMin; } 00087 virtual double mGetXmax() const { return mXMax; } 00088 virtual double mGetYmin() const { return mYMin; } 00089 virtual double mGetYmax() const { return mYMax; } 00090 00091 virtual double mGetZoffset() const { return mZoffset; } 00092 00104 protected: 00105 00106 float mZoffset; 00107 float mZmin; 00108 float mZmax; 00109 00110 00111 //V3 mSnormal; 00112 V2 <float> rms; 00113 00114 00115 int mTypeSurface; 00116 }; 00117 00118 #endif // !defined(AFX_SURFACE_H__FD6A9522_062B_11D7_B637_00500429BABE__INCLUDED_)