topical media & game development
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.