aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-13 18:54:10 +1000
committerDavid Walter Seikel2013-01-13 18:54:10 +1000
commit959831f4ef5a3e797f576c3de08cd65032c997ad (patch)
treee7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp
parentAdd info about changes to Irrlicht. (diff)
downloadSledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.zip
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.gz
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.bz2
SledjHamr-959831f4ef5a3e797f576c3de08cd65032c997ad.tar.xz
Remove damned ancient DOS line endings from Irrlicht. Hopefully I did not go overboard.
Diffstat (limited to '')
-rw-r--r--libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp274
1 files changed, 137 insertions, 137 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp b/libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp
index 12d20c2..7da300e 100644
--- a/libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp
+++ b/libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp
@@ -1,137 +1,137 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt 1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine". 2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h 3// For conditions of distribution and use, see copyright notice in irrlicht.h
4 4
5#include "CWaterSurfaceSceneNode.h" 5#include "CWaterSurfaceSceneNode.h"
6#include "ISceneManager.h" 6#include "ISceneManager.h"
7#include "IMeshManipulator.h" 7#include "IMeshManipulator.h"
8#include "IMeshCache.h" 8#include "IMeshCache.h"
9#include "S3DVertex.h" 9#include "S3DVertex.h"
10#include "SMesh.h" 10#include "SMesh.h"
11#include "os.h" 11#include "os.h"
12 12
13namespace irr 13namespace irr
14{ 14{
15namespace scene 15namespace scene
16{ 16{
17 17
18//! constructor 18//! constructor
19CWaterSurfaceSceneNode::CWaterSurfaceSceneNode(f32 waveHeight, f32 waveSpeed, f32 waveLength, 19CWaterSurfaceSceneNode::CWaterSurfaceSceneNode(f32 waveHeight, f32 waveSpeed, f32 waveLength,
20 IMesh* mesh, ISceneNode* parent, ISceneManager* mgr, s32 id, 20 IMesh* mesh, ISceneNode* parent, ISceneManager* mgr, s32 id,
21 const core::vector3df& position, const core::vector3df& rotation, 21 const core::vector3df& position, const core::vector3df& rotation,
22 const core::vector3df& scale) 22 const core::vector3df& scale)
23 : CMeshSceneNode(mesh, parent, mgr, id, position, rotation, scale), 23 : CMeshSceneNode(mesh, parent, mgr, id, position, rotation, scale),
24 WaveLength(waveLength), WaveSpeed(waveSpeed), WaveHeight(waveHeight), 24 WaveLength(waveLength), WaveSpeed(waveSpeed), WaveHeight(waveHeight),
25 OriginalMesh(0) 25 OriginalMesh(0)
26{ 26{
27 #ifdef _DEBUG 27 #ifdef _DEBUG
28 setDebugName("CWaterSurfaceSceneNode"); 28 setDebugName("CWaterSurfaceSceneNode");
29 #endif 29 #endif
30 30
31 setMesh(mesh); 31 setMesh(mesh);
32} 32}
33 33
34 34
35//! destructor 35//! destructor
36CWaterSurfaceSceneNode::~CWaterSurfaceSceneNode() 36CWaterSurfaceSceneNode::~CWaterSurfaceSceneNode()
37{ 37{
38 // Mesh is dropped in CMeshSceneNode destructor 38 // Mesh is dropped in CMeshSceneNode destructor
39 if (OriginalMesh) 39 if (OriginalMesh)
40 OriginalMesh->drop(); 40 OriginalMesh->drop();
41} 41}
42 42
43 43
44//! frame 44//! frame
45void CWaterSurfaceSceneNode::OnRegisterSceneNode() 45void CWaterSurfaceSceneNode::OnRegisterSceneNode()
46{ 46{
47 CMeshSceneNode::OnRegisterSceneNode(); 47 CMeshSceneNode::OnRegisterSceneNode();
48} 48}
49 49
50 50
51void CWaterSurfaceSceneNode::OnAnimate(u32 timeMs) 51void CWaterSurfaceSceneNode::OnAnimate(u32 timeMs)
52{ 52{
53 if (Mesh && IsVisible) 53 if (Mesh && IsVisible)
54 { 54 {
55 const u32 meshBufferCount = Mesh->getMeshBufferCount(); 55 const u32 meshBufferCount = Mesh->getMeshBufferCount();
56 const f32 time = timeMs / WaveSpeed; 56 const f32 time = timeMs / WaveSpeed;
57 57
58 for (u32 b=0; b<meshBufferCount; ++b) 58 for (u32 b=0; b<meshBufferCount; ++b)
59 { 59 {
60 const u32 vtxCnt = Mesh->getMeshBuffer(b)->getVertexCount(); 60 const u32 vtxCnt = Mesh->getMeshBuffer(b)->getVertexCount();
61 61
62 for (u32 i=0; i<vtxCnt; ++i) 62 for (u32 i=0; i<vtxCnt; ++i)
63 Mesh->getMeshBuffer(b)->getPosition(i).Y = addWave( 63 Mesh->getMeshBuffer(b)->getPosition(i).Y = addWave(
64 OriginalMesh->getMeshBuffer(b)->getPosition(i), 64 OriginalMesh->getMeshBuffer(b)->getPosition(i),
65 time); 65 time);
66 }// end for all mesh buffers 66 }// end for all mesh buffers
67 Mesh->setDirty(scene::EBT_VERTEX); 67 Mesh->setDirty(scene::EBT_VERTEX);
68 68
69 SceneManager->getMeshManipulator()->recalculateNormals(Mesh); 69 SceneManager->getMeshManipulator()->recalculateNormals(Mesh);
70 } 70 }
71 CMeshSceneNode::OnAnimate(timeMs); 71 CMeshSceneNode::OnAnimate(timeMs);
72} 72}
73 73
74 74
75void CWaterSurfaceSceneNode::setMesh(IMesh* mesh) 75void CWaterSurfaceSceneNode::setMesh(IMesh* mesh)
76{ 76{
77 CMeshSceneNode::setMesh(mesh); 77 CMeshSceneNode::setMesh(mesh);
78 if (!mesh) 78 if (!mesh)
79 return; 79 return;
80 if (OriginalMesh) 80 if (OriginalMesh)
81 OriginalMesh->drop(); 81 OriginalMesh->drop();
82 IMesh* clone = SceneManager->getMeshManipulator()->createMeshCopy(mesh); 82 IMesh* clone = SceneManager->getMeshManipulator()->createMeshCopy(mesh);
83 OriginalMesh = mesh; 83 OriginalMesh = mesh;
84 Mesh = clone; 84 Mesh = clone;
85 Mesh->setHardwareMappingHint(scene::EHM_STATIC, scene::EBT_INDEX); 85 Mesh->setHardwareMappingHint(scene::EHM_STATIC, scene::EBT_INDEX);
86// Mesh->setHardwareMappingHint(scene::EHM_STREAM, scene::EBT_VERTEX); 86// Mesh->setHardwareMappingHint(scene::EHM_STREAM, scene::EBT_VERTEX);
87} 87}
88 88
89 89
90//! Writes attributes of the scene node. 90//! Writes attributes of the scene node.
91void CWaterSurfaceSceneNode::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const 91void CWaterSurfaceSceneNode::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const
92{ 92{
93 out->addFloat("WaveLength", WaveLength); 93 out->addFloat("WaveLength", WaveLength);
94 out->addFloat("WaveSpeed", WaveSpeed); 94 out->addFloat("WaveSpeed", WaveSpeed);
95 out->addFloat("WaveHeight", WaveHeight); 95 out->addFloat("WaveHeight", WaveHeight);
96 96
97 CMeshSceneNode::serializeAttributes(out, options); 97 CMeshSceneNode::serializeAttributes(out, options);
98 // serialize original mesh 98 // serialize original mesh
99 out->setAttribute("Mesh", SceneManager->getMeshCache()->getMeshName(OriginalMesh).getPath().c_str()); 99 out->setAttribute("Mesh", SceneManager->getMeshCache()->getMeshName(OriginalMesh).getPath().c_str());
100} 100}
101 101
102 102
103//! Reads attributes of the scene node. 103//! Reads attributes of the scene node.
104void CWaterSurfaceSceneNode::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) 104void CWaterSurfaceSceneNode::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options)
105{ 105{
106 WaveLength = in->getAttributeAsFloat("WaveLength"); 106 WaveLength = in->getAttributeAsFloat("WaveLength");
107 WaveSpeed = in->getAttributeAsFloat("WaveSpeed"); 107 WaveSpeed = in->getAttributeAsFloat("WaveSpeed");
108 WaveHeight = in->getAttributeAsFloat("WaveHeight"); 108 WaveHeight = in->getAttributeAsFloat("WaveHeight");
109 109
110 if (Mesh) 110 if (Mesh)
111 { 111 {
112 Mesh->drop(); 112 Mesh->drop();
113 Mesh = OriginalMesh; 113 Mesh = OriginalMesh;
114 OriginalMesh = 0; 114 OriginalMesh = 0;
115 } 115 }
116 // deserialize original mesh 116 // deserialize original mesh
117 CMeshSceneNode::deserializeAttributes(in, options); 117 CMeshSceneNode::deserializeAttributes(in, options);
118 118
119 if (Mesh) 119 if (Mesh)
120 { 120 {
121 IMesh* clone = SceneManager->getMeshManipulator()->createMeshCopy(Mesh); 121 IMesh* clone = SceneManager->getMeshManipulator()->createMeshCopy(Mesh);
122 OriginalMesh = Mesh; 122 OriginalMesh = Mesh;
123 Mesh = clone; 123 Mesh = clone;
124 } 124 }
125} 125}
126 126
127 127
128f32 CWaterSurfaceSceneNode::addWave(const core::vector3df &source, f32 time) const 128f32 CWaterSurfaceSceneNode::addWave(const core::vector3df &source, f32 time) const
129{ 129{
130 return source.Y + 130 return source.Y +
131 (sinf(((source.X/WaveLength) + time)) * WaveHeight) + 131 (sinf(((source.X/WaveLength) + time)) * WaveHeight) +
132 (cosf(((source.Z/WaveLength) + time)) * WaveHeight); 132 (cosf(((source.Z/WaveLength) + time)) * WaveHeight);
133} 133}
134 134
135} // end namespace scene 135} // end namespace scene
136} // end namespace irr 136} // end namespace irr
137 137