aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/irrlicht-1.8/source/Irrlicht/CMetaTriangleSelector.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/CMetaTriangleSelector.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/CMetaTriangleSelector.cpp376
1 files changed, 188 insertions, 188 deletions
diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CMetaTriangleSelector.cpp b/libraries/irrlicht-1.8/source/Irrlicht/CMetaTriangleSelector.cpp
index 843fa79..cb3c393 100644
--- a/libraries/irrlicht-1.8/source/Irrlicht/CMetaTriangleSelector.cpp
+++ b/libraries/irrlicht-1.8/source/Irrlicht/CMetaTriangleSelector.cpp
@@ -1,188 +1,188 @@
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 "CMetaTriangleSelector.h" 5#include "CMetaTriangleSelector.h"
6 6
7namespace irr 7namespace irr
8{ 8{
9namespace scene 9namespace scene
10{ 10{
11 11
12//! constructor 12//! constructor
13CMetaTriangleSelector::CMetaTriangleSelector() 13CMetaTriangleSelector::CMetaTriangleSelector()
14{ 14{
15 #ifdef _DEBUG 15 #ifdef _DEBUG
16 setDebugName("CMetaTriangleSelector"); 16 setDebugName("CMetaTriangleSelector");
17 #endif 17 #endif
18} 18}
19 19
20 20
21//! destructor 21//! destructor
22CMetaTriangleSelector::~CMetaTriangleSelector() 22CMetaTriangleSelector::~CMetaTriangleSelector()
23{ 23{
24 removeAllTriangleSelectors(); 24 removeAllTriangleSelectors();
25} 25}
26 26
27 27
28//! Returns amount of all available triangles in this selector 28//! Returns amount of all available triangles in this selector
29s32 CMetaTriangleSelector::getTriangleCount() const 29s32 CMetaTriangleSelector::getTriangleCount() const
30{ 30{
31 s32 count = 0; 31 s32 count = 0;
32 for (u32 i=0; i<TriangleSelectors.size(); ++i) 32 for (u32 i=0; i<TriangleSelectors.size(); ++i)
33 count += TriangleSelectors[i]->getTriangleCount(); 33 count += TriangleSelectors[i]->getTriangleCount();
34 34
35 return count; 35 return count;
36} 36}
37 37
38 38
39//! Gets all triangles. 39//! Gets all triangles.
40void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize, 40void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize,
41 s32& outTriangleCount, const core::matrix4* transform) const 41 s32& outTriangleCount, const core::matrix4* transform) const
42{ 42{
43 s32 outWritten = 0; 43 s32 outWritten = 0;
44 for (u32 i=0; i<TriangleSelectors.size(); ++i) 44 for (u32 i=0; i<TriangleSelectors.size(); ++i)
45 { 45 {
46 s32 t = 0; 46 s32 t = 0;
47 TriangleSelectors[i]->getTriangles(triangles + outWritten, 47 TriangleSelectors[i]->getTriangles(triangles + outWritten,
48 arraySize - outWritten, t, transform); 48 arraySize - outWritten, t, transform);
49 outWritten += t; 49 outWritten += t;
50 if (outWritten==arraySize) 50 if (outWritten==arraySize)
51 break; 51 break;
52 } 52 }
53 53
54 outTriangleCount = outWritten; 54 outTriangleCount = outWritten;
55} 55}
56 56
57 57
58//! Gets all triangles which lie within a specific bounding box. 58//! Gets all triangles which lie within a specific bounding box.
59void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize, 59void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize,
60 s32& outTriangleCount, const core::aabbox3d<f32>& box, 60 s32& outTriangleCount, const core::aabbox3d<f32>& box,
61 const core::matrix4* transform) const 61 const core::matrix4* transform) const
62{ 62{
63 s32 outWritten = 0; 63 s32 outWritten = 0;
64 for (u32 i=0; i<TriangleSelectors.size(); ++i) 64 for (u32 i=0; i<TriangleSelectors.size(); ++i)
65 { 65 {
66 s32 t = 0; 66 s32 t = 0;
67 TriangleSelectors[i]->getTriangles(triangles + outWritten, 67 TriangleSelectors[i]->getTriangles(triangles + outWritten,
68 arraySize - outWritten, t, box, transform); 68 arraySize - outWritten, t, box, transform);
69 outWritten += t; 69 outWritten += t;
70 if (outWritten==arraySize) 70 if (outWritten==arraySize)
71 break; 71 break;
72 } 72 }
73 73
74 outTriangleCount = outWritten; 74 outTriangleCount = outWritten;
75} 75}
76 76
77 77
78//! Gets all triangles which have or may have contact with a 3d line. 78//! Gets all triangles which have or may have contact with a 3d line.
79void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize, 79void CMetaTriangleSelector::getTriangles(core::triangle3df* triangles, s32 arraySize,
80 s32& outTriangleCount, const core::line3d<f32>& line, 80 s32& outTriangleCount, const core::line3d<f32>& line,
81 const core::matrix4* transform) const 81 const core::matrix4* transform) const
82{ 82{
83 s32 outWritten = 0; 83 s32 outWritten = 0;
84 for (u32 i=0; i<TriangleSelectors.size(); ++i) 84 for (u32 i=0; i<TriangleSelectors.size(); ++i)
85 { 85 {
86 s32 t = 0; 86 s32 t = 0;
87 TriangleSelectors[i]->getTriangles(triangles + outWritten, 87 TriangleSelectors[i]->getTriangles(triangles + outWritten,
88 arraySize - outWritten, t, line, transform); 88 arraySize - outWritten, t, line, transform);
89 outWritten += t; 89 outWritten += t;
90 if (outWritten==arraySize) 90 if (outWritten==arraySize)
91 break; 91 break;
92 } 92 }
93 93
94 outTriangleCount = outWritten; 94 outTriangleCount = outWritten;
95} 95}
96 96
97 97
98//! Adds a triangle selector to the collection of triangle selectors 98//! Adds a triangle selector to the collection of triangle selectors
99//! in this metaTriangleSelector. 99//! in this metaTriangleSelector.
100void CMetaTriangleSelector::addTriangleSelector(ITriangleSelector* toAdd) 100void CMetaTriangleSelector::addTriangleSelector(ITriangleSelector* toAdd)
101{ 101{
102 if (!toAdd) 102 if (!toAdd)
103 return; 103 return;
104 104
105 TriangleSelectors.push_back(toAdd); 105 TriangleSelectors.push_back(toAdd);
106 toAdd->grab(); 106 toAdd->grab();
107} 107}
108 108
109 109
110//! Removes a specific triangle selector which was added before from the collection. 110//! Removes a specific triangle selector which was added before from the collection.
111bool CMetaTriangleSelector::removeTriangleSelector(ITriangleSelector* toRemove) 111bool CMetaTriangleSelector::removeTriangleSelector(ITriangleSelector* toRemove)
112{ 112{
113 for (u32 i=0; i<TriangleSelectors.size(); ++i) 113 for (u32 i=0; i<TriangleSelectors.size(); ++i)
114 { 114 {
115 if (toRemove == TriangleSelectors[i]) 115 if (toRemove == TriangleSelectors[i])
116 { 116 {
117 TriangleSelectors[i]->drop(); 117 TriangleSelectors[i]->drop();
118 TriangleSelectors.erase(i); 118 TriangleSelectors.erase(i);
119 return true; 119 return true;
120 } 120 }
121 } 121 }
122 122
123 return false; 123 return false;
124} 124}
125 125
126 126
127//! Removes all triangle selectors from the collection. 127//! Removes all triangle selectors from the collection.
128void CMetaTriangleSelector::removeAllTriangleSelectors() 128void CMetaTriangleSelector::removeAllTriangleSelectors()
129{ 129{
130 for (u32 i=0; i<TriangleSelectors.size(); ++i) 130 for (u32 i=0; i<TriangleSelectors.size(); ++i)
131 TriangleSelectors[i]->drop(); 131 TriangleSelectors[i]->drop();
132 132
133 TriangleSelectors.clear(); 133 TriangleSelectors.clear();
134} 134}
135 135
136 136
137//! Return the scene node associated with a given triangle. 137//! Return the scene node associated with a given triangle.
138ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleIndex) const 138ISceneNode* CMetaTriangleSelector::getSceneNodeForTriangle(u32 triangleIndex) const
139{ 139{
140 u32 totalTriangles = 0; 140 u32 totalTriangles = 0;
141 141
142 for (u32 i=0; i<TriangleSelectors.size(); ++i) 142 for (u32 i=0; i<TriangleSelectors.size(); ++i)
143 { 143 {
144 totalTriangles += TriangleSelectors[i]->getTriangleCount(); 144 totalTriangles += TriangleSelectors[i]->getTriangleCount();
145 145
146 if(totalTriangles > triangleIndex) 146 if(totalTriangles > triangleIndex)
147 return TriangleSelectors[i]->getSceneNodeForTriangle(0); 147 return TriangleSelectors[i]->getSceneNodeForTriangle(0);
148 } 148 }
149 149
150 // For lack of anything more sensible, return the first selector. 150 // For lack of anything more sensible, return the first selector.
151 return TriangleSelectors[0]->getSceneNodeForTriangle(0); 151 return TriangleSelectors[0]->getSceneNodeForTriangle(0);
152} 152}
153 153
154 154
155/* Return the number of TriangleSelectors that are inside this one, 155/* Return the number of TriangleSelectors that are inside this one,
156Only useful for MetaTriangleSelector others return 1 156Only useful for MetaTriangleSelector others return 1
157*/ 157*/
158u32 CMetaTriangleSelector::getSelectorCount() const 158u32 CMetaTriangleSelector::getSelectorCount() const
159{ 159{
160 return TriangleSelectors.size(); 160 return TriangleSelectors.size();
161} 161}
162 162
163 163
164/* Returns the TriangleSelector based on index based on getSelectorCount 164/* Returns the TriangleSelector based on index based on getSelectorCount
165Only useful for MetaTriangleSelector others return 'this' 165Only useful for MetaTriangleSelector others return 'this'
166*/ 166*/
167ITriangleSelector* CMetaTriangleSelector::getSelector(u32 index) 167ITriangleSelector* CMetaTriangleSelector::getSelector(u32 index)
168{ 168{
169 if (index >= TriangleSelectors.size()) 169 if (index >= TriangleSelectors.size())
170 return 0; 170 return 0;
171 return TriangleSelectors[index]; 171 return TriangleSelectors[index];
172} 172}
173 173
174 174
175/* Returns the TriangleSelector based on index based on getSelectorCount 175/* Returns the TriangleSelector based on index based on getSelectorCount
176Only useful for MetaTriangleSelector others return 'this' 176Only useful for MetaTriangleSelector others return 'this'
177*/ 177*/
178const ITriangleSelector* CMetaTriangleSelector::getSelector(u32 index) const 178const ITriangleSelector* CMetaTriangleSelector::getSelector(u32 index) const
179{ 179{
180 if (index >= TriangleSelectors.size()) 180 if (index >= TriangleSelectors.size())
181 return 0; 181 return 0;
182 return TriangleSelectors[index]; 182 return TriangleSelectors[index];
183} 183}
184 184
185 185
186} // end namespace scene 186} // end namespace scene
187} // end namespace irr 187} // end namespace irr
188 188