diff -urN VER0_9_1/delta3d/SConstruct 2005-07-29/delta3d/SConstruct --- VER0_9_1/delta3d/SConstruct 2005-07-25 13:24:37.000000000 -0700 +++ 2005-07-29/delta3d/SConstruct 2005-07-27 10:28:10.000000000 -0700 @@ -612,10 +612,10 @@ CXXFLAGS = ['/EHsc', '/GR', '/MDd' ], #synchronous exception handling (c-?), run-time type info, multi-threaded debug dll LINKFLAGS = ['/NODEFAULTLIB:LIBCMTD', '/NODEFAULTLIB:LIBCD'] ) elif OS == 'linux': - env.Append( CXXFLAGS=['-g', '-O0', '-pipe', '-fvisibility-inlines-hidden'], #deubg info, no optimizations, pipe object data + env.Append( CXXFLAGS=['-g', '-O0', '-pipe'], #deubg info, no optimizations, pipe object data CXXDEFINES=['DEBUG', '_DEBUG'] ) elif OS == 'darwin': - env.Append(CXXFLAGS=['-g', '-O0', '-pipe', '-fvisibility-inlines-hidden'], CPPDEFINES=['DEBUG', '_DEBUG', '__USE_OSX_AGL_IMPLEMENTATION__' ]) + env.Append(CXXFLAGS=['-g', '-O0', '-pipe'], CPPDEFINES=['DEBUG', '_DEBUG', '__USE_OSX_AGL_IMPLEMENTATION__' ]) else: print 'Build Configuration: Release' errorLog.write('Build Configuration: Release\n\n') @@ -625,13 +625,13 @@ CXXFLAGS = ['/EHsc', '/GR', '/MD' ], #synchronous exception handling (c-?), run-time type info, multi-threaded dll LINKFLAGS = ['/NODEFAULTLIB:LIBCMT', '/NODEFAULTLIB:LIBC'] ) elif OS == 'linux': - env.Append( CXXFLAGS=['-O2', '-pipe', '-march=i686', '-fvisibility-inlines-hidden'], #optimizations, pipe object data + env.Append( CXXFLAGS=['-O2', '-pipe'], #optimizations, pipe object data CPPDEFINES=['NDEBUG'], LINKFLAGS=['-s'] ) # LINKFLAGS=['-Wl,-rpath-link=' + env['ENV']['DELTA_ROOT'] + '/lib,-rpath-link=' + env['ENV']['DELTA_ROOT'] + '/ext/lib'] ) elif OS == 'darwin': - env.Append(CXXFLAGS=['-Os', '-pipe', '-mtune=G4', '-fvisibility-inlines-hidden', '-ftree-vectorize'], CPPDEFINES=['NDEBUG', '__USE_OSX_AGL_IMPLEMENTATION__' ]) + env.Append(CXXFLAGS=['-Os', '-pipe', '-mtune=G4'], CPPDEFINES=['NDEBUG', '__USE_OSX_AGL_IMPLEMENTATION__' ]) if env.get('no_warnings'): if OS == 'windows': @@ -983,8 +983,6 @@ Default( None ) -print env['TOOLS'] -print env['ENV']['PATH'] if 'qt' in env['TOOLS'] and OS != 'windows' : Default( [ 'lib', 'bin' ] ) else : diff -urN VER0_9_1/delta3d/changes.txt 2005-07-29/delta3d/changes.txt --- VER0_9_1/delta3d/changes.txt 2005-07-22 13:43:26.000000000 -0700 +++ 2005-07-29/delta3d/changes.txt 2005-07-27 10:38:18.000000000 -0700 @@ -5,6 +5,15 @@ ############################## --------- +| 0.9.2 | +--------- +Bug fixes: +-Start Menu icon for editor now loads the app correctly +-Can now add Camera's as children of other Transformables +-Fixed error in sigslot.h on linux causing apps to hang +-Build works with gcc3 again + +--------- | 0.9.1 | --------- New Features: diff -urN VER0_9_1/delta3d/examples/testApp/testapp.cpp 2005-07-29/delta3d/examples/testApp/testapp.cpp --- VER0_9_1/delta3d/examples/testApp/testapp.cpp 2005-07-15 20:26:17.000000000 -0700 +++ 2005-07-29/delta3d/examples/testApp/testapp.cpp 2005-07-28 09:16:01.000000000 -0700 @@ -4,25 +4,6 @@ using namespace dtCore; using namespace dtABC; -typedef dtCore::RefPtr ObjectPtr; - -struct ObjectPtrCompare : std::binary_function -{ - /** StatePtrCompare will make sure the State being added is - * unique to the set based on its name AND based on the fact - * that the State has a unique place in memory. - * This makes sure that no one tried to submit a State that - * had the same name as another State, or someone tried to - * resubmit a State already in the set by changing its name. - */ - bool operator()(const ObjectPtr& lhs,const ObjectPtr& rhs) const - { - return lhs.get() != rhs.get() && lhs->GetName() < rhs->GetName(); - } -}; - -typedef std::set ObjectPtrSet; - int main() { @@ -51,17 +32,6 @@ camPos.SetLookAt( camXYZ, lookAtXYZ, upVec ); app->GetCamera()->SetTransform( &camPos ); - ObjectPtrCompare compare_them; - compare_them(brdm,terrain); - - ObjectPtrSet objectSet; - objectSet.insert(terrain); - objectSet.insert(brdm); - - for( ObjectPtrSet::iterator iter = objectSet.begin(); iter != objectSet.end(); iter++ ) - { - std::cout << (*iter)->GetName() << std::endl; - } app->Config(); app->Run(); diff -urN VER0_9_1/delta3d/inc/dtCore/sigslot.h 2005-07-29/delta3d/inc/dtCore/sigslot.h --- VER0_9_1/delta3d/inc/dtCore/sigslot.h 2005-07-06 17:26:21.000000000 -0700 +++ 2005-07-29/delta3d/inc/dtCore/sigslot.h 2005-07-26 19:12:09.000000000 -0700 @@ -81,7 +81,7 @@ #include #include -#if defined(_LINUX) +#if defined(__linux__) # ifndef SIGSLOT_PURE_ISO # define SIGSLOT_PURE_ISO # endif diff -urN VER0_9_1/delta3d/license.txt 2005-07-29/delta3d/license.txt --- VER0_9_1/delta3d/license.txt 2004-10-27 19:56:29.000000000 -0700 +++ 2005-07-29/delta3d/license.txt 2005-07-28 14:08:09.000000000 -0700 @@ -1,4 +1,4 @@ -Delta3D Open Source Game and Simulation Engine Copyright (C) 2004 MOVES Institute +Delta3D Open Source Game and Simulation Engine Copyright (C) 2005 MOVES Institute This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. diff -urN VER0_9_1/delta3d/src/dtCore/camera.cpp 2005-07-29/delta3d/src/dtCore/camera.cpp --- VER0_9_1/delta3d/src/dtCore/camera.cpp 2005-07-15 20:26:19.000000000 -0700 +++ 2005-07-29/delta3d/src/dtCore/camera.cpp 2005-07-26 18:08:21.000000000 -0700 @@ -7,10 +7,12 @@ #include "dtCore/camera.h" #include "dtCore/notify.h" #include "dtCore/scene.h" +#include + #include using namespace dtCore; - +using namespace dtUtil; IMPLEMENT_MANAGEMENT_LAYER(Camera) using namespace std; @@ -146,30 +148,32 @@ */ void Camera::Frame() { - if (mScene != NULL) { GetSceneHandler()->GetSceneView()->update(); //osgUtil::SceneView update } - //Get our Camera's position, up vector, and look-at vector and pass them //to the Producer Camera osg::Matrix mat = GetMatrixNode()->getMatrix(); Transform absXform; - //GetTransform(&absXform, ABS_CS); - //absXform.Get(mat); - - osg::Vec3 eyePoint(mat(3,0), mat(3,1), mat(3,2)); - osg::Vec3 upVec(mat(2,0), mat(2,1), mat(2,2)); - osg::Vec3 lookVec = upVec ^ osg::Vec3(mat(0,0), mat(0,1), mat(0,2)); + osg::Matrix absMat; + GetAbsoluteMatrix( GetMatrixNode(), absMat ); + + osg::Vec3 eyePoint(absMat(3,0), absMat(3,1), absMat(3,2)); + + //choose Z as the up vector + osg::Vec3 upVec(absMat(2,0), absMat(2,1), absMat(2,2)); + + osg::Vec3 lookVec = upVec ^ osg::Vec3(absMat(0,0), absMat(0,1), absMat(0,2)); osg::Vec3 centerPoint = eyePoint + lookVec * 10.f; + //sync up Producer's camera with the world matrix for this node mCamera->setViewByLookat( eyePoint[0], eyePoint[1], eyePoint[2], centerPoint[0], centerPoint[1], centerPoint[2], upVec[0], upVec[1], upVec[2] ); - + //TODO should only call frame(true) if this camera is the last camera assigned to this RenderSurface //Might cause a problem with multi camera's sharing one RenderSurface mCamera->frame(true);