CodeForge.comFree Open Source Codes Forge and Sharing |
#ifndef _OGL_ZOOMPERESPECTIVE_
#define _OGL_ZOOMPERESPECTIVE_
//
class Vector3F
{
public:
Vector3F(float x=0.0f,float y=0.0f,float z=0.0f) { Set(x,y,z); }
Vector3F(const Vector3F& point) { Set(point.m_v[0],point.m_v[1],point.m_v[2]); }
//
void Set(float x,float y,float z) { m_v[0]=x; m_v[1]=y; m_v[2]=z; }
//
float operator []( int i) const { return m_v[i]; }
float& operator []( int i) { return m_v[i]; }
//
Vector3F& operator +=(const Vector3F& v) { m_v[0]+=v.m_v[0]; m_v[1]+=v.m_v[1]; m_v[2]+=v.m_v[2]; return *this; }
Vector3F& operator -=(const Vector3F& v) { m_v[0]-=v.m_v[0]; m_v[1]-=v.m_v[1]; m_v[2]-=v.m_v[2]; return *this; }
Vector3F& operator *=(const float d) { m_v[0]*=d; m_v[1]*=d; m_v[2]*=d; return *this; }
//
float Dot(const Vector3F& v) const { return (m_v[0]*v.m_v[0]+m_v[1]*v.m_v[1]+m_v[2]*v.m_v[2]); }
void Vector(const Vector3F& b,
Vector3F &c) const { c.m_v[0]= m_v[1] * b.m_v[2] - m_v[2] * b.m_v[1];
c.m_v[1]= m_v[2] * b.m_v[0] - m_v[0] * b.m_v[2];
c.m_v[2]= m_v[0] * b.m_v[1] - m_v[1] * b.m_v[0]; }
float SquaredLenght() const { return Dot(*this); }
float Lenght() const { return (float)sqrt(Dot(*this)); }
float Distance(const Vector3F& v)
{
Vector3F d(v); d-=(*this); return d.Lenght();
}
bool Normalize()
{
float L=Lenght();
if( (-FLT_EPSILON) < L && L < FLT_EPSILON ) return false;
(*this)*=1.0f/L;
retu
...
...
... to be continued.
This is a preview. To get the complete source file,
please click here to download the whole source code package.
| Name | Size | Date |
| 2.00 B | ||
| 1.51 kB | 02-11-02 10:25 | |
| 1.36 kB | 02-11-02 10:25 | |
| 1.46 kB | 02-12-02 13:05 | |
| 1.38 kB | 02-12-02 13:05 | |
| 2.34 kB | 02-11-02 12:33 | |
| 1.37 kB | 02-11-02 12:32 | |
| 9.34 kB | 02-12-02 14:09 | |
| 6.83 kB | 02-12-02 13:18 | |
| 4.86 kB | 02-11-02 10:25 | |
| 2.00 B | ||
| 2.00 B | ||
| 1.22 kB | 02-12-02 13:14 | |
| 192.05 kB | 02-12-02 14:06 | |
| 1.29 kB | 02-12-02 13:14 | |
| 1.05 kB | 02-11-02 10:25 | |
| 407.00 B | 02-11-02 10:25 | |
| 1.05 kB | 02-11-02 10:25 | |
| 217.00 B | 02-11-02 10:25 | |
| 1.15 kB | 02-11-02 11:30 | |
| 28.64 kB | 02-11-02 19:30 | |
| 2.96 kB | 02-11-02 19:29 | |
| 11.23 kB | 02-12-02 13:49 | |
| 2.60 kB | 02-12-02 13:06 | |
| 38.22 kB | 02-11-02 19:45 | |
| 4.43 kB | 02-11-02 10:25 | |
| 802.00 B | 02-11-02 10:25 | |
| 5.39 kB | 02-12-02 13:53 | |
| 553.00 B | 02-11-02 10:25 | |
| 1.42 kB | 02-11-02 10:25 | |
| 7.10 kB | 02-12-02 13:53 | |
| 15.94 kB | 02-12-02 13:14 | |
| 114.00 B | 02-12-02 14:09 | |
| 1.88 kB | 02-11-02 10:25 | |
| 1.54 kB | 02-11-02 10:25 | |
| 3.11 kB | 04-19-04 10:52 | |
| 126.00 B | 04-03-04 17:45 | |
| 3.84 kB | 11-05-03 18:50 |