home *** CD-ROM | disk | FTP | other *** search
/ VRML Tools for 3D Cyberspace / VRML_Tools_For_3D_Cyberspace.iso / amber / include / water.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-01  |  1.4 KB  |  66 lines

  1. //**********************************************************************
  2. //  DIVE Laboratories, Inc.
  3. //  Copyright(c) 1995
  4. //  All rights reserved.
  5. //  FILE:   WATER.HPP
  6. //
  7. //  DESCRIPTION
  8. //  This file provides the function prototypes for the waterClass
  9. //
  10. //  Author: M. Doucet
  11. //
  12. //  Modification History:
  13. //  6/5/95    Created
  14. //
  15. //**********************************************************************
  16. #ifndef _WATER_HPP
  17. #define _WATER_HPP
  18.  
  19. #include "style.hpp"
  20. #include "geometry.hpp"
  21. #include "slink.hpp"
  22.  
  23. typedef struct {
  24.     positionClass *pt;
  25.     int t0;
  26.     int change;
  27. } dropStruct;
  28.  
  29. class waterClass : public styleClass {
  30.  
  31. private:
  32.  
  33.     sLinkClass *drops;
  34.     Vres width, wavefront, amp, waveL, damping, speed, db;
  35.     int    steps, tic;
  36.     
  37.     void reset();
  38.  
  39. public:
  40.  
  41.     geometryClass *geo;
  42.  
  43.     sLinkClass *geoList;
  44.  
  45.     void drop(V3 pos, Vres amplitude);
  46.          
  47.     void style(void);
  48.  
  49.     void setWaveSpeed(Vres s);
  50.     void setDampingConstant(Vres dk);
  51.     void setDeadBand(Vres dbk);
  52.     void setWaveLength(Vres l);
  53.  
  54.     waterClass(Vres length=10.0, int segments=1.0,
  55.                Vres waveSpeed=1.0, Vres dampingConstant=0.1,
  56.                Vres deadBand=0.05, Vres waveLength=5.0);
  57.  
  58.     waterClass(geometryClass *geometry,
  59.                Vres waveSpeed=1.0, Vres dampingConstant=0.1,
  60.                Vres deadBand=0.05, Vres waveLength=5.0);
  61.  
  62.     ~waterClass();
  63.  
  64. };
  65. #endif
  66.