00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 class EXPCL_PANDA FLOATNAME(Frustum) {
00024 PUBLISHED:
00025 INLINE_MATHUTIL FLOATNAME(Frustum)();
00026
00027 INLINE_MATHUTIL void make_ortho_2D(void);
00028 INLINE_MATHUTIL void make_ortho_2D(FLOATTYPE l, FLOATTYPE r, FLOATTYPE t, FLOATTYPE b);
00029
00030 INLINE_MATHUTIL void make_ortho(FLOATTYPE fnear, FLOATTYPE ffar);
00031 INLINE_MATHUTIL void make_ortho(FLOATTYPE fnear, FLOATTYPE ffar,
00032 FLOATTYPE l, FLOATTYPE r, FLOATTYPE t, FLOATTYPE b);
00033
00034 INLINE_MATHUTIL void make_perspective_hfov(FLOATTYPE xfov, FLOATTYPE aspect,
00035 FLOATTYPE fnear, FLOATTYPE ffar);
00036 INLINE_MATHUTIL void make_perspective_vfov(FLOATTYPE yfov, FLOATTYPE aspect,
00037 FLOATTYPE fnear, FLOATTYPE ffar);
00038 INLINE_MATHUTIL void make_perspective(FLOATTYPE xfov, FLOATTYPE yfov, FLOATTYPE fnear,
00039 FLOATTYPE ffar);
00040 INLINE_MATHUTIL void get_perspective_params(FLOATTYPE &yfov, FLOATTYPE &aspect,
00041 FLOATTYPE &fnear, FLOATTYPE &ffar) const;
00042 INLINE_MATHUTIL void get_perspective_params(FLOATTYPE &xfov, FLOATTYPE &yfov,
00043 FLOATTYPE &aspect, FLOATTYPE &fnear,
00044 FLOATTYPE &ffar) const;
00045
00046 public:
00047 INLINE_MATHUTIL FLOATNAME(LMatrix4)
00048 get_perspective_projection_mat(CoordinateSystem cs = CS_default) const;
00049
00050 INLINE_MATHUTIL FLOATNAME(LMatrix4)
00051 get_ortho_projection_mat(CoordinateSystem cs = CS_default) const;
00052
00053 public:
00054 FLOATTYPE _l, _r, _b, _t;
00055 FLOATTYPE _fnear, _ffar;
00056 };
00057
00058 #include "frustum_src.I"