diff options
author | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
---|---|---|
committer | David Walter Seikel | 2013-01-13 18:54:10 +1000 |
commit | 959831f4ef5a3e797f576c3de08cd65032c997ad (patch) | |
tree | e7351908be5995f0b325b2ebeaa02d5a34b82583 /libraries/irrlicht-1.8/source/Irrlicht/CWaterSurfaceSceneNode.cpp | |
parent | Add info about changes to Irrlicht. (diff) | |
download | SledjHamr-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.cpp | 274 |
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 | ||
13 | namespace irr | 13 | namespace irr |
14 | { | 14 | { |
15 | namespace scene | 15 | namespace scene |
16 | { | 16 | { |
17 | 17 | ||
18 | //! constructor | 18 | //! constructor |
19 | CWaterSurfaceSceneNode::CWaterSurfaceSceneNode(f32 waveHeight, f32 waveSpeed, f32 waveLength, | 19 | CWaterSurfaceSceneNode::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 |
36 | CWaterSurfaceSceneNode::~CWaterSurfaceSceneNode() | 36 | CWaterSurfaceSceneNode::~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 |
45 | void CWaterSurfaceSceneNode::OnRegisterSceneNode() | 45 | void CWaterSurfaceSceneNode::OnRegisterSceneNode() |
46 | { | 46 | { |
47 | CMeshSceneNode::OnRegisterSceneNode(); | 47 | CMeshSceneNode::OnRegisterSceneNode(); |
48 | } | 48 | } |
49 | 49 | ||
50 | 50 | ||
51 | void CWaterSurfaceSceneNode::OnAnimate(u32 timeMs) | 51 | void 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 | ||
75 | void CWaterSurfaceSceneNode::setMesh(IMesh* mesh) | 75 | void 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. |
91 | void CWaterSurfaceSceneNode::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const | 91 | void 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. |
104 | void CWaterSurfaceSceneNode::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options) | 104 | void 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 | ||
128 | f32 CWaterSurfaceSceneNode::addWave(const core::vector3df &source, f32 time) const | 128 | f32 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 | ||