00001 // Filename: coordinateSystem.h 00002 // Created by: drose (24Sep99) 00003 // 00004 //////////////////////////////////////////////////////////////////// 00005 // 00006 // PANDA 3D SOFTWARE 00007 // Copyright (c) 2001, Disney Enterprises, Inc. All rights reserved 00008 // 00009 // All use of this software is subject to the terms of the Panda 3d 00010 // Software license. You should have received a copy of this license 00011 // along with this source code; you will also find a current copy of 00012 // the license at http://www.panda3d.org/license.txt . 00013 // 00014 // To contact the maintainers of this program write to 00015 // panda3d@yahoogroups.com . 00016 // 00017 //////////////////////////////////////////////////////////////////// 00018 00019 #ifndef COORDINATESYSTEM_H 00020 #define COORDINATESYSTEM_H 00021 00022 #include <pandabase.h> 00023 00024 #include <typedef.h> 00025 00026 #include <string> 00027 00028 BEGIN_PUBLISH 00029 00030 enum CoordinateSystem { 00031 // The CS_default entry does not refer to a particular coordinate 00032 // system, but rather to the value stored in 00033 // default_coordinate_system, which in turn is loaded from the 00034 // Configrc variable "coordinate-system". 00035 CS_default, 00036 00037 CS_zup_right, 00038 CS_yup_right, 00039 CS_zup_left, 00040 CS_yup_left, 00041 00042 // CS_invalid is not a coordinate system at all. It can be used in 00043 // user-input processing code to indicate a contradictory coordinate 00044 // system request. 00045 CS_invalid, 00046 }; 00047 00048 END_PUBLISH 00049 00050 extern CoordinateSystem EXPCL_PANDA default_coordinate_system; 00051 00052 CoordinateSystem EXPCL_PANDA parse_coordinate_system_string(const string &str); 00053 bool EXPCL_PANDA is_right_handed(CoordinateSystem cs = CS_default); 00054 00055 #define IS_LEFT_HANDED_COORDSYSTEM(cs) ((cs==CS_zup_left) || (cs==CS_yup_left)) 00056 00057 ostream EXPCL_PANDA &operator << (ostream &out, CoordinateSystem cs); 00058 00059 00060 #endif 00061