Changeset 10695 in orxonox.OLD for trunk/src/lib
- Timestamp:
- Jun 14, 2007, 4:46:18 PM (18 years ago)
- Location:
- trunk/src/lib
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/lib/math/quaternion.cc
r9656 r10695 79 79 * @param yaw: the yaw in radians 80 80 */ 81 Quaternion::Quaternion (float roll, float pitch, float yaw) 82 { 81 Quaternion::Quaternion (float attitude, float heading, float bank) 82 { 83 /* 83 84 float cr, cp, cy, sr, sp, sy, cpcy, spsy; 84 85 … … 99 100 v.y = cr * sp * cy + sr * cp * sy; 100 101 v.z = cr * cp * sy - sr * sp * cy; 101 } 102 */ 103 float c1, c2, c3, s1, s2, s3; 104 105 c1 = cos(heading / 2); 106 c2 = cos(attitude / 2); 107 c3 = cos(bank / 2); 108 109 s1 = sin(heading / 2); 110 s2 = sin(attitude / 2); 111 s3 = sin(bank / 2); 112 113 w = c1 * c2 * c3 - s1 * s2 * s3; 114 v.x = s1 * s2 * c3 +c1 * c2 * s3; 115 v.y = s1 * c2 * c3 + c1 * s2 * s3; 116 v.z = c1 * s2 * c3 - s1 * c2 * s3; 117 } 118 102 119 103 120 /** … … 271 288 } 272 289 290 /** 291 * @returns Bank, Attitude, Heading 292 */ 293 Vector Quaternion::getRotation() const 294 { 295 return Vector(getAttitude(), getHeading(), getBank()); 296 } 273 297 274 298 -
trunk/src/lib/math/quaternion.h
r9656 r10695 109 109 float getBank() const; 110 110 Quaternion getBankQuat() const; 111 112 Vector getRotation() const; 113 111 114 /** @returns the rotational axis of this Quaternion */ 112 115 inline Vector getSpacialAxis() const { return this->v / sin(acos(w));/*sqrt(v.x*v.x + v.y*v.y + v.z+v.z);*/ }; -
trunk/src/lib/sound/sound_engine.cc
r10618 r10695 317 317 alSourcef (source, AL_PITCH, 1.0 ); 318 318 alSourcef (source, AL_GAIN, this->getEffectsVolume() ); 319 alSourcef (source, AL_ROLLOFF_FACTOR, 0.0 ); 319 320 alSourcei (source, AL_LOOPING, AL_FALSE ); 320 321 this->ALSources.push(source); -
trunk/src/lib/sound/sound_source.cc
r9869 r10695 126 126 alSourcei (this->sourceID, AL_BUFFER, this->buffer.getID()); 127 127 alSourcei (this->sourceID, AL_LOOPING, AL_FALSE); 128 alSourcef (this->sourceID, AL_GAIN, 1); 128 // alSourcef (this->sourceID, AL_ROLLOFF_FACTOR, 0.0); 129 alSourcef (this->sourceID, AL_GAIN, SoundEngine::getInstance()->getEffectsVolume()); 129 130 alSourcePlay(this->sourceID); 130 131 … … 151 152 alSourcei (this->sourceID, AL_BUFFER, buffer.getID()); 152 153 alSourcei (this->sourceID, AL_LOOPING, AL_FALSE); 153 alSourcef (this->sourceID, AL_GAIN, 1); 154 // alSourcef (this->sourceID, AL_ROLLOFF_FACTOR, 0.0); 155 alSourcef (this->sourceID, AL_GAIN, SoundEngine::getInstance()->getEffectsVolume()); 154 156 155 157 alSourcePlay(this->sourceID); … … 168 170 * @param buffer the buffer to play back on this Source 169 171 * @param gain the gain of the sound buffer 170 */ 171 void SoundSource::play(const SoundBuffer& buffer, float gain) 172 * @param rolloff the rolloff of the sound buffer 173 */ 174 void SoundSource::play(const SoundBuffer& buffer, float gain, float rolloff) 172 175 { 173 176 if (!this->retrieveSource()) … … 180 183 alSourcei (this->sourceID, AL_BUFFER, buffer.getID()); 181 184 alSourcei (this->sourceID, AL_LOOPING, AL_FALSE); 185 alSourcef (this->sourceID, AL_ROLLOFF_FACTOR, rolloff); 182 186 alSourcef (this->sourceID, AL_GAIN, gain); 183 187 … … 193 197 194 198 /** 195 * @brief Plays back buffer on this Source with gain and looping possibility199 * @brief Plays back buffer on this Source with gain, rolloff and looping possibility 196 200 * @param buffer the buffer to play back on this Source 197 * @param gain the gain of the sound buffer 201 * @param gain the gain of the sound buffer 202 * @param rolloff the rolloff of the sound buffer 198 203 * @param loop if true, sound gets looped 199 204 */ 200 void SoundSource::play(const SoundBuffer& buffer, float gain, bool loop)205 void SoundSource::play(const SoundBuffer& buffer, float gain, float rolloff, bool loop) 201 206 { 202 207 if (!this->retrieveSource()) … … 215 220 216 221 alSourcef (this->sourceID, AL_GAIN, gain); 222 alSourcef (this->sourceID, AL_ROLLOFF_FACTOR, rolloff); 217 223 218 224 alSourcePlay(this->sourceID); … … 226 232 } 227 233 234 /** 235 * @brief Plays back buffer on this Source with looping possibility 236 * @param buffer the buffer to play back on this Source 237 * @param loop if true, sound gets looped 238 */ 239 void SoundSource::play(const SoundBuffer& buffer, bool loop) 240 { 241 if (!this->retrieveSource()) 242 { 243 PRINTF(3)("No more Free sources (You might consider raising the Source-Count).\n"); 244 return; 245 } 246 247 alSourceStop(this->sourceID); 248 alSourcei (this->sourceID, AL_BUFFER, buffer.getID()); 249 250 if (loop) 251 alSourcei (this->sourceID, AL_LOOPING, AL_TRUE); 252 else 253 alSourcei (this->sourceID, AL_LOOPING, AL_FALSE); 254 255 alSourcef (this->sourceID, AL_GAIN, SoundEngine::getInstance()->getEffectsVolume()); 256 257 alSourcePlay(this->sourceID); 258 259 if (unlikely(this->buffer.getID() != 0)) 260 alSourcei (this->sourceID, AL_BUFFER, this->buffer.getID()); 261 this->bPlay = true; 262 263 if (DEBUG_LEVEL >= 3) 264 SoundEngine::checkError("Play Source", __LINE__); 265 } 266 228 267 /** 229 268 * @brief Changes the volume of an (active) buffer -
trunk/src/lib/sound/sound_source.h
r9869 r10695 30 30 void play(); 31 31 void play(const SoundBuffer& buffer); 32 void play(const SoundBuffer& buffer, float gain); 33 void play(const SoundBuffer& buffer, float gain, bool loop); 32 void play(const SoundBuffer& buffer, float gain, float rolloff); 33 void play(const SoundBuffer& buffer, float gain, float rolloff, bool loop); 34 void play(const SoundBuffer& buffer, bool loop); 34 35 35 36 void gain(const SoundBuffer& buffer, float gain);
Note: See TracChangeset
for help on using the changeset viewer.