SmallChange  1.0.0
A collection of extensions to Coin3D
Loading...
Searching...
No Matches
SmOceanKit.h
1#ifndef SMALLCHANGE_SMOCEANKIT_H
2#define SMALLCHANGE_SMOCEANKIT_H
3
4#include <Inventor/SbBasic.h>
5#if defined(__COIN__) && (COIN_MAJOR_VERSION >= 3)
6
7/**************************************************************************\
8 *
9 * This file is part of the SmallChange extension library for Coin.
10 * Copyright (C) 1998-2003 by Systems in Motion. All rights reserved.
11 *
12 * This library is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * ("GPL") version 2 as published by the Free Software Foundation.
15 * See the file LICENSE.GPL at the root directory of this source
16 * distribution for additional information about the GNU GPL.
17 *
18 * For using SmallChange with software that can not be combined with the
19 * GNU GPL, and for taking advantage of the additional benefits of our
20 * support services, please contact Systems in Motion about acquiring
21 * a Coin Professional Edition License.
22 *
23 * See <URL:http://www.coin3d.org> for more information.
24 *
25 * Systems in Motion, Teknobyen, Abels Gate 5, 7030 Trondheim, NORWAY.
26 * <URL:http://www.sim.no>.
27 *
28\**************************************************************************/
29
30#include <Inventor/nodekits/SoSubKit.h>
31#include <Inventor/nodekits/SoBaseKit.h>
32#include <Inventor/fields/SoSFVec2f.h>
33#include <Inventor/fields/SoSFVec3f.h>
34#include <Inventor/fields/SoSFFloat.h>
35#include <Inventor/fields/SoSFBool.h>
36#include <Inventor/SbVec2f.h>
37#include <SmallChange/basic.h>
38
39class SmOceanKitP;
40class SoSensor;
41class SoPickedPoint;
42class SbViewportRegion;
43
44class SMALLCHANGE_DLL_API SmOceanKit : public SoBaseKit {
45 typedef SoBaseKit inherited;
46
47 SO_KIT_HEADER(SmOceanKit);
48 SO_KIT_CATALOG_ENTRY_HEADER(topSeparator);
49 SO_KIT_CATALOG_ENTRY_HEADER(utmposition);
50 SO_KIT_CATALOG_ENTRY_HEADER(material);
51 SO_KIT_CATALOG_ENTRY_HEADER(shapeHints);
52 SO_KIT_CATALOG_ENTRY_HEADER(programSwitch);
53 SO_KIT_CATALOG_ENTRY_HEADER(callback);
54 SO_KIT_CATALOG_ENTRY_HEADER(waveTexture);
55 SO_KIT_CATALOG_ENTRY_HEADER(debugTexture);
56 SO_KIT_CATALOG_ENTRY_HEADER(debugCube);
57 SO_KIT_CATALOG_ENTRY_HEADER(envMapSwitch);
58 SO_KIT_CATALOG_ENTRY_HEADER(envMapUnit);
59 SO_KIT_CATALOG_ENTRY_HEADER(envMap);
60 SO_KIT_CATALOG_ENTRY_HEADER(resetUnit);
61 SO_KIT_CATALOG_ENTRY_HEADER(shader);
62 SO_KIT_CATALOG_ENTRY_HEADER(oceanShape);
63
64public:
65 SmOceanKit(void);
66 static void initClass(void);
67 float getElevation(float x, float y);
68
69 SoSFBool enableEffects;
70 SoSFVec2f size;
71
72 SoSFFloat gravConst;
73 SoSFFloat chop;
74 SoSFFloat angleDeviation;
75 SoSFVec2f windDirection;
76 SoSFFloat minWaveLength;
77 SoSFFloat maxWaveLength;
78 SoSFFloat amplitudeRatio;
79 SoSFFloat frequency;
80
81 SoSFFloat specAttenuation;
82 SoSFFloat specEnd;
83 SoSFFloat specTrans;
84
85 SoSFFloat envHeight;
86 SoSFFloat envRadius;
87 SoSFFloat waterLevel;
88 SoSFFloat transitionSpeed;
89 SoSFFloat sharpness;
90 SoSFVec3f lightDirection;
91 SoSFVec3f distanceAttenuation;
92
93 SoSFFloat gridDensity;
94
95 virtual void GLRender(SoGLRenderAction * action);
96
97protected:
98
99 virtual void setDefaultOnNonWritingFields(void);
100 virtual ~SmOceanKit();
101
102public:
103 friend class SmOceanKitP;
104 SmOceanKitP * pimpl;
105};
106
107#endif // temporary compile fix
108#endif // SMALLCHANGE_SMOCEANKIT_H
109
Definition misc/SbList.h:69