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

📄 vmath.h

📁 这是一个相当棒的Linux下的台球游戏
💻 H
字号:
/* vmath.h****    includefile: some vector mathematics and structures (float or double)**    Copyright (C) 2001  Florian Berger**    Email:  harpin_floh@yahoo.de,  florian.berger@jk.uni-linz.ac.at****    This program is free software; you can redistribute it and/or modify**    it under the terms of the GNU General Public License Version 2 as**    published by the Free Software Foundation;****    This program is distributed in the hope that it will be useful,**    but WITHOUT ANY WARRANTY; without even the implied warranty of**    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the**    GNU General Public License for more details.****    You should have received a copy of the GNU General Public License**    along with this program; if not, write to the Free Software**    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.***/#ifndef VMATH_H#define VMATH_H#define VMATH_SINGLE_PRECISION   /* this should be in the using code *///#undef VMATH_SINGLE_PRECISION   /* this should be in the using code */#ifdef VMATH_SINGLE_PRECISIONtypedef float VMfloat;#elsetypedef double VMfloat;#endifstruct Vect{          VMfloat x,y,z;       };typedef struct Vect VMvect;struct Matrix4{          VMfloat m[16];       };typedef struct Matrix4 VMmatrix4;struct Shape{          int pnr;          int closed;          struct Vect *p;       };typedef struct Shape VMshape;struct Outline{          int shnr;          struct Shape * sh;       };typedef struct Outline VMoutline;struct Triangle{          struct Vect v1,v2,v3;       };typedef struct Triangle VMtriangle;struct Mesh{          int tnr;          struct Triangle *t;          struct Triangle *n;       };typedef struct Mesh VMmesh;struct Point{    struct Vect pos;    struct Point * next;};typedef struct Point VMpoint;struct PolyPoint{    int pnr;    struct Point pointlist;    struct PolyPoint * next;};typedef struct PolyPoint VMpolypoint;void         shape_copy  ( struct Shape shs, struct Shape *shd );void         shape_flip  ( struct Shape *sh );void         shape_trans ( struct Shape *s, struct Vect t );struct Vect  vec_cross ( struct Vect v1, struct Vect v2 );VMfloat      vec_mul   ( struct Vect v1, struct Vect v2 );struct Vect  vec_diff  ( struct Vect v1, struct Vect v2 );struct Vect  vec_add   ( struct Vect v1, struct Vect v2 );struct Vect  vec_scale( struct Vect v1, VMfloat scale );struct Vect  vec_rotate( struct Vect v1, struct Vect ang );VMfloat      vec_abs   ( struct Vect v );VMfloat      vec_abssq ( struct Vect v );struct Vect  vec_unit  ( struct Vect v );int          vec_equal        ( struct Vect v1, struct Vect v2 );int          vec_nearly_equal ( struct Vect v1, struct Vect v2, VMfloat tolerance );struct Vect  vec_xyz( VMfloat x, VMfloat y, VMfloat z );struct Vect  vec_ex();struct Vect  vec_ey();struct Vect  vec_ez();struct Vect  vec_null();void         rot_ax( struct Vect ax, struct Vect *v, int nr, VMfloat phi );void         shape_rot_ax( struct Vect ax, struct Shape *s, struct Vect m, VMfloat phi,                           struct Vect nax, VMfloat sc_x, VMfloat sc_y, VMfloat sc_z );struct Vect  meshpt_nr( struct Point * plist, int index );int remove_idle_points( struct Shape * sh, struct Shape * shd );VMfloat      vec_angle ( struct Vect v1, struct Vect v2 );struct Vect  vec_proj  ( struct Vect v1, struct Vect v2 );struct Vect  vec_ncomp ( struct Vect v1, struct Vect v2 );VMfloat      vec_ndist ( struct Vect v, struct Vect v1, struct Vect v2 );struct Vect  vec_surf_proj( struct Vect center, struct Vect point, struct Vect n, struct Vect npos );struct Vect    matr4_rdot( struct Matrix4 m,  struct Vect v );struct Matrix4 matr4_mul ( struct Matrix4 m1, struct Matrix4 m2);VMfloat      shape_area( struct Shape sh );struct Vect  tri_center ( struct Vect v1, struct Vect v2, struct Vect v3 );VMfloat      tri_area_xy( struct Vect v1, struct Vect v2, struct Vect v3 );VMfloat      tri_vol_xy ( struct Vect v1, struct Vect v2, struct Vect v3 );#endif  //VMATH_H

⌨️ 快捷键说明

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