Code Search for Developers
 
 
  

Vector3f.h from palisma2d at Krugle


Show Vector3f.h syntax highlighted

#ifndef _VECTOR_H
#define _VECTOR_H
#include <math.h>
/**
===========================
Vector
3-tuple
===========================
*/
class Vector3f
{
public:
    Vector3f(void) { ZeroOut(); };
    Vector3f( float x, float y, float z ) { Set(x,y,z); };
    Vector3f( float* data ) { Set( data ); };
    Vector3f( const Vector3f &v ) { Set( v ); };

    /*---------------------------------------
        Operator overloads
    ----------------------------------------*/
    Vector3f operator+( Vector3f &v)  const { return Add( v ); };
    Vector3f operator-( Vector3f &v)  const { return Subtract( v ); };
    Vector3f operator*( float scalar) const { return Multiply( scalar ); };
    Vector3f operator/( float scalar) const { return Divide( scalar ); };
    float    operator[]( int index )      { return m_data[index]; };


    float GetX() const { return m_data[0]; };
    float GetY() const { return m_data[1]; };
    float GetZ() const { return m_data[2]; };

    /** Zero out the vector */
    void ZeroOut();
    /** Length/magnatude of the vector */
    float Length() const;
    /** Normalize the vector */
    void Normalize();
    /** Multiply two vectors */
    void Multiply( const Vector3f &v ); // TODO

    /** Multiply by a scalar */
    Vector3f Multiply( float scalar ) const;
    /** Divide by a scalar */
    Vector3f Divide( float scalar ) const;
    /** Add */
    Vector3f Add( Vector3f &v ) const;
    /** Subtract */
    Vector3f Subtract( Vector3f &v ) const;

    /** Dot Product of two vectors */
    float DotProduct( Vector3f &v );

    /** Cross Product of two vectors */
    Vector3f CrossProduct( Vector3f &v ) const;

    /** Angle between two vectors */
    float Angle( Vector3f &v );

    /** Set the vector */
    void Set( float x, float y, float z );
    void Set( float* v );
    void Set( const Vector3f &v );

    /** Get the vector data */
    float* GetData() { return m_data; };

private:
    float   m_data[3];
public:
    virtual ~Vector3f(void) { ZeroOut(); };
};

#endif



See more files for this project here

palisma2d

The University of Wisconsin-Parkside Developers Union first product. More info to come. Code name Palisma.

Project homepage: http://code.google.com/p/palisma2d/
Programming language(s): C,C++
License: gpl2

  EntDict.cpp
  EntDict.h
  Error.cpp
  Error.h
  MFile.cpp
  MFile.h
  Parser.cpp
  Parser.h
  QuadTree.cpp
  QuadTree.h
  ReadMe.txt
  StringUtil.cpp
  StringUtil.h
  Vector3f.cpp
  Vector3f.h
  color.h
  geom.h
  stdafx.cpp
  stdafx.h
  vector.h