Open PaperOpt
OpenPaperOpt/SurfaceTNInk.h
Go to the documentation of this file.
00001 // SurfaceTNInk.h: interface for the SurfaceTNInk class.
00002 //
00004 
00005 #if !defined(AFX_SurfaceTNInk_H__7C7A0B54_6FBD_4B55_A8F1_E8DAB00D1886__INCLUDED_)
00006 #define AFX_SurfaceTNInk_H__7C7A0B54_6FBD_4B55_A8F1_E8DAB00D1886__INCLUDED_
00007 #if _MSC_VER > 1000
00008 #pragma once
00009 #endif // _MSC_VER > 1000
00010 
00011 #include "SurfaceTN.h"
00012 #include "Halftone.h"
00013 
00014 class SurfaceTNInk : public Surface {
00015 
00016 public:
00017         
00018         /*******************************************************************************
00019         * CONSTRUCTOR
00020         *
00021         * A simple constructor where no normal mapping is used, i.e. like a Surface
00022         * (not SurfaceTN) with halftone screens on top of it.
00023         *@param _zoffset                        Indicates actualy where is surface actualy exists   
00024         *@param _xmax                                   Size of normal
00025         *@param _ymax                                   Size of normal
00026         *@param _rmsmin                                 Replacement of normals file
00027         *@param _rmsmax                                 Represents how many normals can be calculated
00028         *@param _interpolate                    Resolution of generated surface normal map.
00029         *@param half                                    Ink Halftone screen
00030         *@param nrHalfTones                             Number of half tones 
00031         *@param lambdasim                               Wavelength of simulation
00032         *@param _el                                             Instance of StructureObject class is used to appraoch next surface layer untill
00033                                                                         last one
00034         *******************************************************************************/
00035         SurfaceTNInk(float _zoffset, float _xmax, float _ymax,
00036                                                                                                                  float _rmsmin, float _rmsmax,
00037                                                                                                                  Halftone *half,int nrHalfTones, StructureObject* _el, std::vector<float> lambdasim);
00038 
00039         virtual ~SurfaceTNInk();
00040         
00041         /*Calculate  surface interaction and check halftone layers
00042         /*  
00043     *@param wp                                  Wave Packet's object to calculate ditance of interception and call many fuctions of wave packet.                   
00044         *@param up_down                         Checks if wave packet is travelling in upward.
00045                         
00046         
00047         */
00048         int Process(WavePacket& wp, int updown, int internal) const;
00049         
00050 
00051 private:
00052 
00053         int halftone_nbr;                                               // the number of halftones in that file
00054         Halftone* halftones;                            // The array of Halftone-objects
00055 };
00056 
00057 #endif // !defined(AFX_SurfaceTNInk_H__7C7A0B54_6FBD_4B55_A8F1_E8DAB00D1886__INCLUDED_)