Panda3D

linearRandomForce.I

00001 // Filename: linearRandomForce.I
00002 // Created by:  charles (19Jun00)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) Carnegie Mellon University.  All rights reserved.
00008 //
00009 // All use of this software is subject to the terms of the revised BSD
00010 // license.  You should have received a copy of this license along
00011 // with this source code in a file named "LICENSE."
00012 //
00013 ////////////////////////////////////////////////////////////////////
00014 
00015 ////////////////////////////////////////////////////////////////////
00016 //     Function : random_unit_vector
00017 //       Access : Protected
00018 //  Description : generates a random unit vector
00019 ////////////////////////////////////////////////////////////////////
00020 INLINE LVector3 LinearRandomForce::
00021 random_unit_vector() {
00022   PN_stdfloat z, r, theta;
00023 
00024   z = 1.0 - (2.0 * bounded_rand());
00025   r = csqrt(1.0 - (z * z));
00026   theta = 2.0 * MathNumbers::pi * bounded_rand();
00027 
00028   return LVector3(r * ccos(theta), r * csin(theta), z);
00029 }
00030 
 All Classes Functions Variables Enumerations