From: <sv...@ww...> - 2005-02-09 12:58:44
|
Author: delta Date: 2005-02-09 04:58:32 -0800 (Wed, 09 Feb 2005) New Revision: 1469 Modified: trunk/CSP/CSPSim/CHANGES.current trunk/CSP/CSPSim/Include/ObjectModel.h trunk/CSP/CSPSim/Include/Theater/ElevationCorrection.h trunk/CSP/CSPSim/Include/Theater/LayoutTransform.h trunk/CSP/CSPSim/Source/ObjectModel.cpp Log: * Exported a few symbols for the layout loader. * Uncomment the optimizer (I don't get anymore the systematic segfault as before). Changed m_ContactMarkers to be an osg::Switch. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1469 Modified: trunk/CSP/CSPSim/CHANGES.current =================================================================== --- trunk/CSP/CSPSim/CHANGES.current 2005-02-08 23:26:38 UTC (rev 1468) +++ trunk/CSP/CSPSim/CHANGES.current 2005-02-09 12:58:32 UTC (rev 1469) @@ -5,6 +5,12 @@ * Added Include/Export.h * Minor tweak to the vs project file to send _cCSP.lib to Bin/ + + * Exported a few symbols for the layout loader. + + * Uncomment the optimizer in ObjectModel.cpp (I don't get + anymore a systematic segfault like before). Changed + m_ContactMarkers to be an osg::Switch. 2005-02-05: onsight * Disable displaylist/stateset compiler visitor when creating Modified: trunk/CSP/CSPSim/Include/ObjectModel.h =================================================================== --- trunk/CSP/CSPSim/Include/ObjectModel.h 2005-02-08 23:26:38 UTC (rev 1468) +++ trunk/CSP/CSPSim/Include/ObjectModel.h 2005-02-09 12:58:32 UTC (rev 1469) @@ -37,6 +37,8 @@ #include <osg/ref_ptr> +#include <Export.h> + class Animation; class AnimationCallback; class AnimationChannel; @@ -68,13 +70,13 @@ * TODO: add LOD support here. * */ -class ObjectModel: public simdata::Object { +class CSPSIM_EXPORT ObjectModel: public simdata::Object { static const simdata::Enumeration EffectItems; osg::ref_ptr<osg::MatrixTransform> m_Transform; osg::ref_ptr<osg::Node> m_Model; osg::ref_ptr<osg::Switch> m_DebugMarkers; - osg::ref_ptr<osg::Group> m_ContactMarkers; + osg::ref_ptr<osg::Switch> m_ContactMarkers; public: typedef std::vector<simdata::Vector3> ContactList; Modified: trunk/CSP/CSPSim/Include/Theater/ElevationCorrection.h =================================================================== --- trunk/CSP/CSPSim/Include/Theater/ElevationCorrection.h 2005-02-08 23:26:38 UTC (rev 1468) +++ trunk/CSP/CSPSim/Include/Theater/ElevationCorrection.h 2005-02-09 12:58:32 UTC (rev 1469) @@ -40,7 +40,7 @@ * A helper class for correcting the elevation of static objects to match * the local terrain. */ -class ElevationCorrection: public LayoutTransform { +class CSPSIM_EXPORT ElevationCorrection: public LayoutTransform { TerrainObject *m_Terrain; ElevationCorrection() {} public: Modified: trunk/CSP/CSPSim/Include/Theater/LayoutTransform.h =================================================================== --- trunk/CSP/CSPSim/Include/Theater/LayoutTransform.h 2005-02-08 23:26:38 UTC (rev 1468) +++ trunk/CSP/CSPSim/Include/Theater/LayoutTransform.h 2005-02-09 12:58:32 UTC (rev 1469) @@ -28,6 +28,8 @@ #include <osg/Vec3> +#include <Export.h> + namespace simdata { class Vector3; } @@ -38,7 +40,7 @@ * * A helper class for accumulationg and applying 2D displacements and rotations. */ -class LayoutTransform { +class CSPSIM_EXPORT LayoutTransform { float m_X, m_Y, m_Angle; float c, s; public: Modified: trunk/CSP/CSPSim/Source/ObjectModel.cpp =================================================================== --- trunk/CSP/CSPSim/Source/ObjectModel.cpp 2005-02-08 23:26:38 UTC (rev 1468) +++ trunk/CSP/CSPSim/Source/ObjectModel.cpp 2005-02-09 12:58:32 UTC (rev 1469) @@ -442,14 +442,15 @@ // 4) The bug only occurs when CSP is run from command line or clicking CSPSim.py; // it never occurs when running csp in debug mode from the ide. // 5) I'm unable to trace it :) - //CSP_LOG(APP, DEBUG, "LoadModel: Optimizer run"); - //osgUtil::Optimizer opt; - //opt.optimize(m_Model.get()); - //CSP_LOG(APP, DEBUG, "LoadModel: Optimizer done"); + + CSP_LOG(APP, DEBUG, "LoadModel: Optimizer run"); + osgUtil::Optimizer opt; + opt.optimize(m_Model.get()); + CSP_LOG(APP, DEBUG, "LoadModel: Optimizer done"); } void ObjectModel::addContactMarkers() { - m_ContactMarkers = new osg::Group; + m_ContactMarkers = new osg::Switch; osg::CullFace *cf = new osg::CullFace; cf->setMode(osg::CullFace::BACK); m_ContactMarkers->getOrCreateStateSet()->setAttributeAndModes(cf, osg::StateAttribute::ON); @@ -459,15 +460,15 @@ m_ContactMarkers->addChild(diamond); } // set markers not visible by default - m_ContactMarkers->setNodeMask(0x0); + m_ContactMarkers->setAllChildrenOff(); m_DebugMarkers->addChild(m_ContactMarkers.get()); } void ObjectModel::showContactMarkers(bool on) { if (on) - m_ContactMarkers->setNodeMask(0xffffffff); + m_ContactMarkers->setAllChildrenOff(); else - m_ContactMarkers->setNodeMask(0x0); + m_ContactMarkers->setAllChildrenOn(); } bool ObjectModel::getMarkersVisible() const { |