[Opal-commits] opal SConstruct,NONE,1.1 changelog.txt,NONE,1.1 todo.txt,1.19,1.20
Status: Inactive
Brought to you by:
tylerstreeter
From: tylerstreeter <tyl...@us...> - 2005-02-01 05:55:30
|
Update of /cvsroot/opal/opal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26694 Modified Files: todo.txt Added Files: SConstruct changelog.txt Log Message: added SCons build system --- NEW FILE: SConstruct --- import os def printOptions(mode, engine, XML): print 'Building OPAL with the following options: ' if mode == True: print 'mode = true' else: print 'mode = false' print 'engine = ' + engine if XML == True: print 'Use XML functions = true' else: print 'Use XML functions = false' # Make at least one target (physics engine) required. Default(None) # Setup options opts = Options() opts.AddOptions( BoolOption('debug', 'Build in debug mode', False), BoolOption('XML', 'Build with XML saving/loading functions (TinyXML headers required)', True), PathOption('extra_include_path', 'Additional include directory', '.'), PathOption('extra_lib_path', 'Additional lib directory', '.'), PathOption('prefix', 'Install directory', '.')) physicsEngine = '' if 'ODE' in COMMAND_LINE_TARGETS: physicsEngine = 'ODE' else: print 'Invalid physics engine. Specify one of the following targets: ODE' # Setup the base environment env = Environment(ENV = os.environ, options = opts, LINKFLAGS = []) env.Append(CPPDEFINES = ['TIXML_USE_STL'], CPPPATH = env['extra_include_path'], LIBPATH = env['extra_lib_path']) # Setup the buildDir (where compiled binary files are placed) buildDir = '' if env['debug'] == True: buildDir = 'debug' else: buildDir = 'release' # Add XML support if desired if env['XML'] == True: env.Append(CPPDEFINES = ['OPAL_USE_XML']) printOptions(env['debug'], physicsEngine, env['XML']) # Generate command line help text Help(opts.GenerateHelpText(env)) # Add platform-specific stuff if env['PLATFORM'] == 'win32': env.Append( CPPDEFINES = ['WIN32', '_WIN32', '/W3', 'OPAL_DLL_EXPORTING'], CPPPATH = [], LIBPATH = []) if env['debug'] == True: env.Append(CXXFLAGS = ['/MD', '/Od'], CPPDEFINES = ['_DEBUG']) else: env.Append(CXXFLAGS = ['/MD', '/O2', '/Og', '/Ob2', '/Oi', '/Ot'], CPPDEFINES = ['NDEBUG']) elif env['PLATFORM'] == 'irix': env.Replace(CXX = 'CC') env.Append( CXXFLAGS = ['-ansi', '-LANG:std', '-n32'], CPPPATH = string.split(os.environ['CPLUS_INCLUDE_PATH'], ':'), LIBPATH = string.split(os.environ['LIBRARY_PATH'], ':')) if env['debug'] == True: env.Append(CXXFLAGS = ['/O0']) else: env.Append(CXXFLAGS = ['/O2']) else: env.Replace(CXX = 'g++') if env['debug'] == True: env.Append(CXXFLAGS = ['/O0']) else: env.Append(CXXFLAGS = ['/O2']) # Export the environment we just created for the SConscripts Export('env') # Call the base OPAL src SConscript objects = SConscript(dirs = ['src'], build_dir = buildDir, duplicate = 0) opalLib = '' # Setup ODE version if physicsEngine == 'ODE': # Add ODE objects ODEBuildDir = buildDir + '/ODE' objects += SConscript(dirs = ['src/ODE'], build_dir = ODEBuildDir, duplicate = 0) if env['debug'] == True: env.Append(LIBS = 'ode_d') opalLib = env.SharedLibrary('lib/' + env['PLATFORM'] + '/opal-ode_d', objects) else: env.Append(LIBS = 'ode') opalLib = env.SharedLibrary('lib/' + env['PLATFORM'] + '/opal-ode', objects) env.Alias('ODE', opalLib) # Add more physics engines here... # Setup 'install' alias #env.Alias('install', env.Install(os.path.join(prefix, 'lib'), opalLib)) #env.Alias('install', env.Install(os.path.join(prefix, 'include'), includeDir)) #TODO: above - fix include dir stuff # TODO: add gather scripts here... --- NEW FILE: changelog.txt --- Version 0.2.0 ------------- * Changed build systems from make to SCons * Changed build systems to produce a shared library on all platforms * Added Blueprint classes for XML loading * Fixed crashes from destroying objects at the wrong time; garbage collector now allows objects to be destroyed at any time * Added trimesh object to ODE version * Numerous API changes Version 0.1.0 ------------- * Initial version Index: todo.txt =================================================================== RCS file: /cvsroot/opal/opal/todo.txt,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** todo.txt 26 Jan 2005 23:10:46 -0000 1.19 --- todo.txt 1 Feb 2005 05:55:19 -0000 1.20 *************** *** 5,9 **** - src - build systems ! - unix configure script - samples - src --- 5,9 ---- - src - build systems ! - unix configure script? /scons file - samples - src *************** *** 26,33 **** ===== * build everything as dynamic libs ! - windows dll problem: derived event handlers need to use OPAL_CALL; and... the event handler ! system is kinda ugly, too ! - Unix makefiles (ld -shared; use -rpath when linking sample apps to specify .so search path) * fix scripts --- 26,39 ---- ===== + * use stable ODE releases (0.5) + + * use scons + - one script for all platforms + - additionally, vs and xcode project files + * build everything as dynamic libs ! - windows dll problem: derived event handlers need to use OPAL_CALL; and... the event handler system is kinda ugly, too ! ! * Unix build for sample apps: use -rpath when linking to specify .so search path * fix scripts *************** *** 43,48 **** --- 49,66 ---- - gather Win32 binary release (just used by us, the developers) + * fix vc6 project to create a dll + * make tinyxml optional + * add "sensors"; could the event handler be replaced with these? + - ray casting/rangefinder + - contact + - gyro + - velocimeter + + * shape class + - solution: yes + - user-created (not requested from simulator or solid) + * calculate actual kd and ks for joints from erp/cfm *************** *** 58,70 **** * Combine DesiredPosMotor with ServoMotor since they do almost the same thing * small objects rotate weirdly - due to small mass not causing deep enough penetrations, thus they have little friction and just slide around? * remove huge parameter lists from constructors / simulator construction methods; use init functions ! - solution: empty constructors; separate set functions for all parameters; the object becomes enabled ! automatically once the required parameters are set * remove address accessor to matrix (too dangerous for new users?) ! - solution: keep and document? * make an 'enable acceleration calculations' function so they don't get calculated unnecessarily --- 76,92 ---- * Combine DesiredPosMotor with ServoMotor since they do almost the same thing + * Rename ConstForceMotor to something else (e.g. ThrusterMotor)? + * small objects rotate weirdly - due to small mass not causing deep enough penetrations, thus they have little friction and just slide around? * remove huge parameter lists from constructors / simulator construction methods; use init functions ! - solution: empty constructors; separate set functions for all parameters; the object becomes enabled automatically once the required parameters are set ! - OR... have init functions that take only the necessary params; this enables the object ! ! * each object's functions should check if (enabled) first * remove address accessor to matrix (too dangerous for new users?) ! - solution: keep and document, or remove? * make an 'enable acceleration calculations' function so they don't get calculated unnecessarily *************** *** 77,80 **** --- 99,107 ---- * make sure everything is stepsize independent + * memory allocation + - event handlers: created and destroyed by users + - custom motors: created and destroyed by users? (must be alloc'd and dealloc'd on the same side of + the DLL interface + * Add a boolean to Solid that determines if it generates contacts at all (the docking volume shouldn't collide with anything but should generate collision events still). *************** *** 85,89 **** * Buoyancy ideas ! - look at ODE mailing list for Tyler's post * Convex hulls --- 112,116 ---- * Buoyancy ideas ! - look at ODE mailing list for Tyler's post and responses * Convex hulls *************** *** 91,97 **** * Automatic collision mesh generation (allows "concave hulls") ! - load in model, generate octree - create a primitive shape for each leaf in the octree using the leaf's extents as the dimensions of the shape - the primitive shapes can be boxes, spheres, or convex hulls * Sample apps using OGRE --- 118,126 ---- * Automatic collision mesh generation (allows "concave hulls") ! - load in model (include OBJ loader?), generate octree - create a primitive shape for each leaf in the octree using the leaf's extents as the dimensions of the shape - the primitive shapes can be boxes, spheres, or convex hulls + - for XML file spec, add auto shape generation option + - opal file exporters could calculate precached collision mesh data (i.e. not using the auto feature) * Sample apps using OGRE *************** *** 105,115 **** ================ * cool logo ! * downloads (just links to sf project page) * docs - overview/"about" page - purpose ! - platforms - major features - license info - tutorials - doxygen source docs --- 134,149 ---- ================ * cool logo ! * downloads ! - description of different downloads ! - links to sf project page for actual downloads * docs - overview/"about" page - purpose ! - current physics engine support per platform ! - platforms supported - major features - license info + - manual + - general description of main objects - tutorials - doxygen source docs |