⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vector.h

📁 [Game.Programming].Academic - Graphics Gems (6 books source code)
💻 H
字号:
// -*- C++ -*-// vector.h by George Vanecek Jr. June 1994#ifndef _VECTOR_H_#define _VECTOR_H_#ifndef _POINT_H_#include "point.h"#endifclass Vector : public Point {public:  Vector( const Point&  p ) : Point(p) {}  Vector( double a, double b, double c ) : Point(a, b, c) {}  inline double operator * ( const Vector& v ) const;  inline Vector operator ^ ( const Vector& v ) const;  void          normalize  ( );};inline Vector operator + ( const Point& p, const Point& q ){ return Point(p.x()+q.x(), p.y()+q.y(), p.z()+q.z()); }inline Vector operator - ( const Point& p, const Point& q ){ return Point(p.x()-q.x(), p.y()-q.y(), p.z()-q.z()); }inline Vector operator * ( const double s, const Vector& v ){ return Vector( s*v.x(), s*v.y(), s*v.z() ); }// Vector Dot Product.inline double Vector::operator * (  const Vector& v ) const{ return x() * v.x() + y() * v.y() + z() * v.z(); }// Vector Cross product.inline Vector Vector::operator ^ ( const Vector& v ) const{ return Vector(y() * v.z() - z() * v.y(),		z() * v.x() - x() * v.z(),		x() * v.y() - y() * v.x());}inline void Vector::normalize(){   const double n = *this * *this;  assert( n != 0.0 );  x() /= n;  y() /= n;  z() /= n;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -