Ogre中的向量Vector3的成员方法 // 常量 static const Vector3 ZERO; // 零向量 static const Vector3 UNIT_X; // X轴单位向量 static const Vector3 UNIT_Y; // Y轴单位向量、 static const Vector3 UNIT_Z; // Z轴单位向量 static const Vector3 UNIT_SCALE; // 单位缩放因子 成员函数 inline Real operator [ ] ( unsigned i ) const // 重载[ ]操作符,通过下标1,2,3可以取x,y,z分量。 inline Real& operator [] ( unsigned i ) // 重载[ ]操作符,返回引用,可以做左值。 inline Vector3& operator = ( const Vector3& rkVector ) // 重载赋值操作符,返回引用,结果可以做左值。 inline bool operator == ( const Vector3& rkVector ) const // 重载等号操作符,判断两个向量是否相等。 inline bool operator != ( const Vector3& rkVector ) const // 重载不等号操作符,判断两个向量是否不相等。 inline Vector3 operator + ( const Vector3& rkVector ) const // 重载加号操作符,完成向量相加。 inline Vector3 operator * ( Real fScalar ) const // 重载乘法操作符,完成向量与一个数的乘法。 inline Vector3 operator * ( const Vector3& rhs) const // 重载乘法操作符,完成两个向量的相乘。 inline Vector3 operator / ( Real fScalar ) const // 重载除法操作符,完成向量除以一个数的运算。 inline Vector3 operator - () const // 重载负号操作符,将原向量的每个分量取负。 inline friend Vector3 operator * ( Real fScalar, const Vector3& rkVector ) // 重载乘法操作符,用友员函数的方式实现,实现一个向量与一个数相乘。 inline Vector3& operator += ( const Vector3& rkVector ) // 重载+=运算符,A+=B。 inline Vector3& operator -= ( const Vector3& rkVector ) // 重载-=运算符,A-=B。 inline Vector3& operator *= ( Real fScalar ) // 重载*=运算符,A*=B。 inline Vector3& operator /= ( Real fScalar ) // 重载/=运算符,A/=B。 inline Real length () const // 求向量长度, inline Real squaredLength () const // 求向量长度的平方 inline Real dotProduct(const Vector3& vec) const // 计算向量点积 inline void normalise(void) // 向量归一化,转变为方向不变的单位向量。归一化的方法是每个分量都除以向量的长度。 inline Vector3 crossProduct( const Vector3& rkVector ) const // 求向量叉积。 // 向量叉积的结果代表这两个向量所在平面的法向量。 // 左右坐标系,食指为第一个向量,大拇指为第二个向量,中指指向即为叉积的结果方向 inline Vector3 midPoint( const Vector3& vec ) const // 向量可以表达点的坐标,本函数的功能是计算两个点之间的中点坐标。 inline bool operator < ( const Vector3& rhs ) const // 重载小于操作符,如果A向量的各分量都小于B向量,则A向量小于B向量。 inline bool operator > ( const Vector3& rhs ) const // 重载大于操作符,如果A向量的各分量都大于B向量,则A向量大于B向量。 inline void makeFloor( const Vector3& cmp ) // 将A、B两向量中的各分量的小值组合成新的向量。 inline void makeCeil( const Vector3& cmp ) // 将A、B两向量中的各分量的大值组合成新的向量。 inline Vector3 randomDeviant(Real angle, const Vector3& up = Vector3::ZERO ) // 得到偏离原向量一定角度的随机向量。 // 本函数要求随机数种子已设定好。当然Math类的构造函数设定了随机数种子。如果在调用本函数之前,初始化了Math类,就可以正常使用本函数。 // 第一个参数是允许偏移的最大角度。 // 第二个参数是向量,有缺省值。要求是原向量的一个垂直向量。 Quaternion getRotationTo(const Vector3& dest) const // 得到能将当前向量用最小路径旋转到目的向量的四元组。 inline _OgreExport friend std::ostream& operator << ( std::ostream& o, const Vector3& v ) // 重载输出流操作符。