Position3D

Description

Represents three-dimensional position. This type is most commonly used with camera calibration functions.

The rotation convention assumes three intrinsic rotations, in the following order:

  1. Rotate clockwise around X-axis by φ (phi, a.k.a. yaw, heading or azimuth).
  2. Rotate upwards around Y-axis by θ (theta, a.k.a. pitch or elevation).
  3. Rotate clockwise around Z-axis by ψ (psi, a.k.a. roll or bank).

	struct Position3D
	{
		float x;
		float y;
		float z;
		float phi;
		float theta;
		float psi;
	};

Structure fields and default values (if defined) are described below:

  • Real X
  • Real Y
  • Real Z
  • Real Phi - Rotation around X axis
  • Real Theta - Rotation around Y axis
  • Real Psi - Rotation around Z axis
struct Position3D
{
	Real	X;
	Real	Y;
	Real	Z;
	Real	Phi;
	Real	Theta;
	Real	Psi;


	Real X() const		{ return X;		};
	Real Y() const		{ return Y;		};
	Real Z() const		{ return Z;		};
	Real Phi() const	{ return Phi;	};
	Real Theta() const	{ return Theta;	};
	Real Psi() const	{ return Psi;	};

	bool operator == ( const avl::Position3D& rhs ) const
	{
		return X == rhs.X && 
			Y == rhs.Y && 
			Z == rhs.Z && 
			Phi == rhs.Phi && 
			Theta == rhs.Theta && 
			Psi == rhs.Psi;
	}

	bool operator != ( const avl::Position3D& rhs ) const
	{
		return !(operator==(rhs));
	}

};

See also

CalibrateCamera