Panda3D
 All Classes Functions Variables Enumerations
config_linmath.cxx
00001 // Filename: config_linmath.cxx
00002 // Created by:  drose (23Feb00)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) Carnegie Mellon University.  All rights reserved.
00008 //
00009 // All use of this software is subject to the terms of the revised BSD
00010 // license.  You should have received a copy of this license along
00011 // with this source code in a file named "LICENSE."
00012 //
00013 ////////////////////////////////////////////////////////////////////
00014 
00015 #include "config_linmath.h"
00016 #include "luse.h"
00017 #include "coordinateSystem.h"
00018 
00019 #include "dconfig.h"
00020 
00021 Configure(config_linmath);
00022 NotifyCategoryDef(linmath, "");
00023 
00024 ConfigureFn(config_linmath) {
00025   init_liblinmath();
00026 }
00027 
00028 ConfigVariableBool paranoid_hpr_quat
00029 ("paranoid-hpr-quat", false,
00030  PRC_DESC("Set this true to doublecheck the quaternion-hpr compose and "
00031           "decompose operations against the quaternion-matrix and matrix-hpr "
00032           "operations.  This only has effect if NDEBUG is not defined."));
00033 
00034 ConfigVariableBool temp_hpr_fix
00035 ("temp-hpr-fix", true,
00036  PRC_DESC("Set this true to compute hpr's correctly.  Historically, Panda has "
00037           "applied these in the wrong order, and roll was backwards relative "
00038           "to the other two.  Set this false if you need compatibility with "
00039           "Panda's old hpr calculations."));
00040 
00041 ConfigVariableBool no_singular_invert
00042 ("no-singular-invert", false,
00043  PRC_DESC("Set this true to make singular-invert warning messages generate an "
00044           "assertion failure instead of just a warning (which can then be "
00045           "trapped with assert-abort)."));
00046 
00047 ////////////////////////////////////////////////////////////////////
00048 //     Function: init_liblinmath
00049 //  Description: Initializes the library.  This must be called at
00050 //               least once before any of the functions or classes in
00051 //               this library can be used.  Normally it will be
00052 //               called by the static initializers and need not be
00053 //               called explicitly, but special cases exist.
00054 ////////////////////////////////////////////////////////////////////
00055 void
00056 init_liblinmath() {
00057   static bool initialized = false;
00058   if (initialized) {
00059     return;
00060   }
00061   initialized = true;
00062 
00063   LVecBase2f::init_type();
00064   LVecBase3f::init_type();
00065   LVecBase4f::init_type();
00066   LVector2f::init_type();
00067   LVector3f::init_type();
00068   LVector4f::init_type();
00069   LPoint2f::init_type();
00070   LPoint3f::init_type();
00071   LPoint4f::init_type();
00072   LMatrix3f::init_type();
00073   LMatrix4f::init_type();
00074   UnalignedLVecBase4f::init_type();
00075   UnalignedLMatrix4f::init_type();
00076 
00077   LVecBase2d::init_type();
00078   LVecBase3d::init_type();
00079   LVecBase4d::init_type();
00080   LVector2d::init_type();
00081   LVector3d::init_type();
00082   LVector4d::init_type();
00083   LPoint2d::init_type();
00084   LPoint3d::init_type();
00085   LPoint4d::init_type();
00086   LMatrix3d::init_type();
00087   LMatrix4d::init_type();
00088   UnalignedLVecBase4d::init_type();
00089   UnalignedLMatrix4d::init_type();
00090 
00091   LQuaternionf::init_type();
00092   LRotationf::init_type();
00093   LOrientationf::init_type();
00094 
00095   LQuaterniond::init_type();
00096   LRotationd::init_type();
00097   LOrientationd::init_type();
00098 }
 All Classes Functions Variables Enumerations