00001 // Filename: config_egg.cxx 00002 // Created by: drose (19Mar00) 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 #include "config_egg.h" 00020 #include "eggRenderMode.h" 00021 #include "eggAnimData.h" 00022 #include "eggAttributes.h" 00023 #include "eggBin.h" 00024 #include "eggBinMaker.h" 00025 #include "eggComment.h" 00026 #include "eggCoordinateSystem.h" 00027 #include "eggCurve.h" 00028 #include "eggExternalReference.h" 00029 #include "eggFilenameNode.h" 00030 #include "eggGroup.h" 00031 #include "eggGroupNode.h" 00032 #include "eggMaterial.h" 00033 #include "eggNameUniquifier.h" 00034 #include "eggNamedObject.h" 00035 #include "eggNode.h" 00036 #include "eggNurbsCurve.h" 00037 #include "eggNurbsSurface.h" 00038 #include "eggObject.h" 00039 #include "eggPoint.h" 00040 #include "eggPolygon.h" 00041 #include "eggPoolUniquifier.h" 00042 #include "eggPrimitive.h" 00043 #include "eggSAnimData.h" 00044 #include "eggSurface.h" 00045 #include "eggSwitchCondition.h" 00046 #include "eggTable.h" 00047 #include "eggTexture.h" 00048 #include "eggVertex.h" 00049 #include "eggVertexPool.h" 00050 #include "eggXfmAnimData.h" 00051 #include "eggXfmSAnim.h" 00052 00053 #include <dconfig.h> 00054 #include <get_config_path.h> 00055 00056 Configure(config_egg); 00057 NotifyCategoryDef(egg, ""); 00058 00059 ConfigureFn(config_egg) { 00060 init_libegg(); 00061 } 00062 00063 const DSearchPath & 00064 get_egg_path() { 00065 static DSearchPath *egg_path = NULL; 00066 return get_config_path("egg-path", egg_path); 00067 } 00068 00069 // Set this true to support loading of old character animation files, which 00070 // had the convention that the order "phr" implied a reversed roll. 00071 bool egg_support_old_anims = config_egg.GetBool("egg-support-old-anims", true); 00072 00073 //////////////////////////////////////////////////////////////////// 00074 // Function: init_libegg 00075 // Description: Initializes the library. This must be called at 00076 // least once before any of the functions or classes in 00077 // this library can be used. Normally it will be 00078 // called by the static initializers and need not be 00079 // called explicitly, but special cases exist. 00080 //////////////////////////////////////////////////////////////////// 00081 void 00082 init_libegg() { 00083 static bool initialized = false; 00084 if (initialized) { 00085 return; 00086 } 00087 initialized = true; 00088 00089 EggRenderMode::init_type(); 00090 EggAnimData::init_type(); 00091 EggAttributes::init_type(); 00092 EggBin::init_type(); 00093 EggBinMaker::init_type(); 00094 EggComment::init_type(); 00095 EggCoordinateSystem::init_type(); 00096 EggCurve::init_type(); 00097 EggData::init_type(); 00098 EggExternalReference::init_type(); 00099 EggFilenameNode::init_type(); 00100 EggGroup::init_type(); 00101 EggGroupNode::init_type(); 00102 EggMaterial::init_type(); 00103 EggNameUniquifier::init_type(); 00104 EggNamedObject::init_type(); 00105 EggNode::init_type(); 00106 EggNurbsCurve::init_type(); 00107 EggNurbsSurface::init_type(); 00108 EggObject::init_type(); 00109 EggPoint::init_type(); 00110 EggPolygon::init_type(); 00111 EggPoolUniquifier::init_type(); 00112 EggPrimitive::init_type(); 00113 EggSAnimData::init_type(); 00114 EggSurface::init_type(); 00115 EggSwitchCondition::init_type(); 00116 EggSwitchConditionDistance::init_type(); 00117 EggTable::init_type(); 00118 EggTexture::init_type(); 00119 EggVertex::init_type(); 00120 EggVertexPool::init_type(); 00121 EggXfmAnimData::init_type(); 00122 EggXfmSAnim::init_type(); 00123 }