topical media & game development

talk show tell print

lib-of-vs-addons-ofxVectorMath-src-ofxPoint4f.h / h



  
ofxPoint4f.h by stefanix

  
  
  ifndef _OFX_POINT4f
  define _OFX_POINT4f
  
  include <ofxVec4f.h>
  include <ofTypes.h>
  
  class ofxPoint4f : public ofPoint {
  
    public:
  
      float w;
  
      ofxPoint4f( const float _x=0.0f,
                  const float _y=0.0f,
                  const float _z=0.0f,
                  const float _w=0.0f );
  
      // Getters and Setters.
      //
      //
      void set( float _x, float _y, float _z, float _w );
  
      void set( const ofxPoint4f& pnt );
  
      float& operator[]( const int& i );
  
      // Check similarity/equality.
      //
      //
      bool operator==( const ofxPoint4f& pnt );
  
      bool operator!=( const ofxPoint4f& pnt );
  
      bool match( const ofxPoint4f& pnt, float tollerance=0.0001);
  
      // Translate point by vector.
      //
      //
      ofxPoint4f         operator+( const ofxVec4f& vec ) const;
  
      ofxPoint4f& operator+=( const ofxVec4f& vec );
  
          ofxPoint4f         operator+( const float f ) const;
  
      ofxPoint4f& operator+=( const float f );
  
      ofxPoint4f         operator-( const ofxVec4f& vec ) const;
  
      ofxPoint4f& operator-=( const ofxVec4f& vec );
  
          ofxPoint4f         operator-( const float f ) const;
  
      ofxPoint4f& operator-=( const float f );
  
      ofxPoint4f         operator-() const;
  
      // Scale point (by scalar or vector).
      //
      //
      ofxPoint4f         operator*( const float f ) const;
  
      ofxPoint4f& operator*=( const float f );
  
      ofxPoint4f         operator*( const ofxVec4f& vec ) const;
  
      ofxPoint4f& operator*=( const ofxVec4f& vec );
  
      ofxPoint4f         operator/( const float f ) const;
  
      ofxPoint4f& operator/=( const float f );
  
      ofxPoint4f         operator/( const ofxVec4f& vec ) const;
  
      ofxPoint4f& operator/=( const ofxVec4f& vec );
  
      
Return the difference vector between two points.

  
      ofxVec4f         operator-( const ofxPoint4f& pnt ) const;
  
      // Distance between two points.
      //
      //
      float distance( const ofxPoint4f& pnt) const;
  
      float squareDistance( const ofxPoint4f& pnt ) const;
  
      // Linear interpolation.
      //
      //
      
p==0.0 results in this point, p==0.5 results in the midpoint, and p==1.0 results in pnt being returned.

  
  
      ofxPoint4f         getInterpolated( const ofxPoint4f& pnt, float p ) const;
  
      ofxPoint4f& interpolate( const ofxPoint4f& pnt, float p );
  
      ofxPoint4f         getMiddle( const ofxPoint4f& pnt ) const;
  
      ofxPoint4f& middle( const ofxPoint4f& pnt );
  
      // Average (centroid) among points.
      // (Addition is sometimes useful for calculating averages too)
      //
      //
      ofxPoint4f& average( const ofxPoint4f* points, int num );
  
      ofxPoint4f         operator+( const ofxPoint4f& pnt ) const;
  
      ofxPoint4f& operator+=( const ofxPoint4f& pnt );
  
      //----------------------------------------
      // this methods are deprecated in 006 please use:
  
      // use squareDistance
      float                 distanceSquared( const ofxPoint4f& pnt ) const;
  
      // use getInterpolated
      ofxPoint4f         interpolated( const ofxPoint4f& pnt, float p ) const;
  
      // use getMiddle
      ofxPoint4f         middled( const ofxPoint4f& pnt ) const;
  
  };
  
  // Non-Member operators
  //
  //
  ofxPoint4f operator+( float f, const ofxPoint4f& pnt );
  
  ofxPoint4f operator-( float f, const ofxPoint4f& pnt );
  
  ofxPoint4f operator*( float f, const ofxPoint4f& pnt );
  
  ofxPoint4f operator/( float f, const ofxPoint4f& pnt );
  
  endif
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.