00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef COORDINATESYSTEM_H
00016 #define COORDINATESYSTEM_H
00017
00018 #include "pandabase.h"
00019
00020 #include "typedef.h"
00021
00022 BEGIN_PUBLISH
00023
00024 enum CoordinateSystem {
00025
00026
00027
00028
00029 CS_default,
00030
00031 CS_zup_right,
00032 CS_yup_right,
00033 CS_zup_left,
00034 CS_yup_left,
00035
00036
00037
00038
00039 CS_invalid,
00040 };
00041
00042 EXPCL_PANDA_LINMATH CoordinateSystem get_default_coordinate_system();
00043 EXPCL_PANDA_LINMATH CoordinateSystem parse_coordinate_system_string(const string &str);
00044 EXPCL_PANDA_LINMATH string format_coordinate_system(CoordinateSystem cs);
00045 EXPCL_PANDA_LINMATH bool is_right_handed(CoordinateSystem cs = CS_default);
00046
00047 END_PUBLISH
00048
00049 #define IS_LEFT_HANDED_COORDSYSTEM(cs) ((cs==CS_zup_left) || (cs==CS_yup_left))
00050
00051 EXPCL_PANDA_LINMATH ostream &operator << (ostream &out, CoordinateSystem cs);
00052 EXPCL_PANDA_LINMATH istream &operator >> (istream &in, CoordinateSystem &cs);
00053
00054
00055 #endif
00056