opal-commits Mailing List for Open Physics Abstraction Layer (Page 15)
Status: Inactive
Brought to you by:
tylerstreeter
You can subscribe to this list here.
| 2005 |
Jan
|
Feb
(162) |
Mar
(134) |
Apr
(113) |
May
(13) |
Jun
(60) |
Jul
(18) |
Aug
(25) |
Sep
|
Oct
(2) |
Nov
(35) |
Dec
(76) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(3) |
Apr
(8) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
(1) |
Mar
(12) |
Apr
(16) |
May
(2) |
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
(3) |
Oct
|
Nov
|
Dec
(3) |
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(15) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: tylerstreeter <tyl...@us...> - 2005-04-18 22:21:19
|
Update of /cvsroot/opal/opal/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32731/samples Added Files: readme.txt todo.txt Log Message: made destructor protected for objects instantiated by OPAL; cleaned up a lot of things to prepare for 0.3.0 release --- NEW FILE: todo.txt --- For Version 0.3.0 ================= * add license to all source files * fix Ogre problems where graphics look ugly when not running from within Visual Studio - maybe exporting normals with model files would help * test Playpen on linux --- NEW FILE: readme.txt --- OPAL Sample Applications These applications demonstrate some of OPAL's features. They use the Ogre rendering engine (www.ogre3d.org) for all the graphics. Each application comes with a vc71 project for win32 and an SConstruct for all platforms. To build these samples, you will need Ogre 1.0.1 or later installed. A template OPAL-Ogre application has been provided in the TemplateApp.cpp file. ------------------------------------ Available applications: ------------------------------------ Playpen - An arena where objects can be created and manipulated. Uses a Raycast Sensor and Spring Motor to allow the user to pick and move any dynamic object in the scene. Use arrow keys to move the camera, 1-9 to create objects, 'r' to reset the scene, and 'h' to toggle shadows. |
|
From: tylerstreeter <tyl...@us...> - 2005-04-18 22:21:17
|
Update of /cvsroot/opal/opal/vc71 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32731/vc71 Added Files: opal-ode.vcproj opal.sln Log Message: made destructor protected for objects instantiated by OPAL; cleaned up a lot of things to prepare for 0.3.0 release --- NEW FILE: opal-ode.vcproj --- <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" Version="7.10" Name="opal-ode" ProjectGUID="{312196D4-105B-4444-A33A-2ECE3C7D6D64}" RootNamespace="opal-ode" Keyword="Win32Proj"> <Platforms> <Platform Name="Win32"/> </Platforms> <Configurations> <Configuration Name="Debug|Win32" OutputDirectory="..\build\win32\Debug" IntermediateDirectory="$(OutDir)" ConfigurationType="2" CharacterSet="2"> <Tool Name="VCCLCompilerTool" Optimization="0" GlobalOptimizations="FALSE" InlineFunctionExpansion="0" EnableIntrinsicFunctions="FALSE" FavorSizeOrSpeed="0" AdditionalIncludeDirectories="" PreprocessorDefinitions="WIN32;_DEBUG;_LIB;OPAL_DLL_EXPORTING;OPAL_USE_XML;OPAL_USE_MESH" MinimalRebuild="TRUE" BasicRuntimeChecks="0" RuntimeLibrary="3" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="TRUE" DebugInformationFormat="3"/> <Tool Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" AdditionalDependencies="ode_d.lib" OutputFile="$(OutDir)/opal-ode_d.dll" GenerateDebugInformation="TRUE"/> <Tool Name="VCMIDLTool"/> <Tool Name="VCPostBuildEventTool"/> <Tool Name="VCPreBuildEventTool"/> <Tool Name="VCPreLinkEventTool"/> <Tool Name="VCResourceCompilerTool"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> <Tool Name="VCXMLDataGeneratorTool"/> <Tool Name="VCWebDeploymentTool"/> <Tool Name="VCManagedWrapperGeneratorTool"/> <Tool Name="VCAuxiliaryManagedWrapperGeneratorTool"/> </Configuration> <Configuration Name="Release|Win32" OutputDirectory="..\build\win32\Release" IntermediateDirectory="$(OutDir)" ConfigurationType="2" CharacterSet="2"> <Tool Name="VCCLCompilerTool" GlobalOptimizations="TRUE" InlineFunctionExpansion="2" EnableIntrinsicFunctions="TRUE" FavorSizeOrSpeed="1" AdditionalIncludeDirectories="" PreprocessorDefinitions="WIN32;NDEBUG;_LIB;OPAL_DLL_EXPORTING;OPAL_USE_XML;OPAL_USE_MESH" RuntimeLibrary="2" UsePrecompiledHeader="0" WarningLevel="3" Detect64BitPortabilityProblems="TRUE" DebugInformationFormat="0"/> <Tool Name="VCCustomBuildTool"/> <Tool Name="VCLinkerTool" AdditionalDependencies="ode.lib" OutputFile="$(OutDir)/opal-ode.dll"/> <Tool Name="VCMIDLTool"/> <Tool Name="VCPostBuildEventTool"/> <Tool Name="VCPreBuildEventTool"/> <Tool Name="VCPreLinkEventTool"/> <Tool Name="VCResourceCompilerTool"/> <Tool Name="VCWebServiceProxyGeneratorTool"/> <Tool Name="VCXMLDataGeneratorTool"/> <Tool Name="VCWebDeploymentTool"/> <Tool Name="VCManagedWrapperGeneratorTool"/> <Tool Name="VCAuxiliaryManagedWrapperGeneratorTool"/> </Configuration> </Configurations> <References> </References> <Files> <Filter Name="Source Files" Filter=""> <File RelativePath="..\src\AccelerationSensor.cpp"> </File> <File RelativePath="..\src\AttractorMotor.cpp"> </File> <File RelativePath="..\src\Blueprint.cpp"> </File> <File RelativePath="..\src\BlueprintInstance.cpp"> </File> <File RelativePath="..\src\BlueprintManager.cpp"> </File> <File RelativePath="..\src\CollisionEventHandler.cpp"> </File> <File RelativePath="..\src\GearedMotor.cpp"> </File> <File RelativePath="..\src\InclineSensor.cpp"> </File> <File RelativePath="..\src\Joint.cpp"> </File> <File RelativePath="..\src\Logger.cpp"> </File> <File RelativePath="..\src\Motor.cpp"> </File> <File RelativePath="..\src\RaycastSensor.cpp"> </File> <File RelativePath="..\src\Sensor.cpp"> </File> <File RelativePath="..\src\ServoMotor.cpp"> </File> <File RelativePath="..\src\Simulator.cpp"> </File> <File RelativePath="..\src\Solid.cpp"> </File> <File RelativePath="..\src\SolidData.cpp"> </File> <File RelativePath="..\src\Space.cpp"> </File> <File RelativePath="..\src\SpringMotor.cpp"> </File> <File RelativePath="..\src\ThrusterMotor.cpp"> </File> <File RelativePath="..\src\VolumeSensor.cpp"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\src\AccelerationSensor.h"> </File> <File RelativePath="..\src\AccelerationSensorData.h"> </File> <File RelativePath="..\src\AttractorMotor.h"> </File> <File RelativePath="..\src\AttractorMotorData.h"> </File> <File RelativePath="..\src\Blueprint.h"> </File> <File RelativePath="..\src\BlueprintInstance.h"> </File> <File RelativePath="..\src\BlueprintManager.h"> </File> <File RelativePath="..\src\BoxShapeData.h"> </File> <File RelativePath="..\src\CapsuleShapeData.h"> </File> <File RelativePath="..\src\CollisionEventHandler.h"> </File> <File RelativePath="..\src\Defines.h"> </File> <File RelativePath="..\src\EventHandler.h"> </File> <File RelativePath="..\src\GearedMotor.h"> </File> <File RelativePath="..\src\GearedMotorData.h"> </File> <File RelativePath="..\src\InclineSensor.h"> </File> <File RelativePath="..\src\InclineSensorData.h"> </File> <File RelativePath="..\src\Joint.h"> </File> <File RelativePath="..\src\JointBreakEventHandler.h"> </File> <File RelativePath="..\src\JointData.h"> </File> <File RelativePath="..\src\Logger.h"> </File> <File RelativePath="..\src\MeshShapeData.h"> </File> <File RelativePath="..\src\Motor.h"> </File> <File RelativePath="..\src\MotorData.h"> </File> <File RelativePath="..\src\opal.h"> </File> <File RelativePath="..\src\PlaneShapeData.h"> </File> <File RelativePath="..\src\Portability.h"> </File> <File RelativePath="..\src\PostStepEventHandler.h"> </File> <File RelativePath="..\src\RaycastSensor.h"> </File> <File RelativePath="..\src\RaycastSensorData.h"> </File> <File RelativePath="..\src\Sensor.h"> </File> <File RelativePath="..\src\SensorData.h"> </File> <File RelativePath="..\src\ServoMotor.h"> </File> <File RelativePath="..\src\ServoMotorData.h"> </File> <File RelativePath="..\src\ShapeData.h"> </File> <File RelativePath="..\src\Simulator.h"> </File> <File RelativePath="..\src\Singleton.h"> </File> <File RelativePath="..\src\Solid.h"> </File> <File RelativePath="..\src\SolidData.h"> </File> <File RelativePath="..\src\Space.h"> </File> <File RelativePath="..\src\SphereShapeData.h"> </File> <File RelativePath="..\src\SpringMotor.h"> </File> <File RelativePath="..\src\SpringMotorData.h"> </File> <File RelativePath="..\src\ThrusterMotor.h"> </File> <File RelativePath="..\src\ThrusterMotorData.h"> </File> <File RelativePath="..\src\VolumeSensor.h"> </File> <File RelativePath="..\src\VolumeSensorData.h"> </File> </Filter> <Filter Name="ODE-Specific" Filter=""> <Filter Name="Source Files" Filter=""> <File RelativePath="..\src\Ode\ODEJoint.cpp"> </File> <File RelativePath="..\src\Ode\ODESimulator.cpp"> </File> <File RelativePath="..\src\Ode\ODESolid.cpp"> </File> <File RelativePath="..\src\Ode\ODESpace.cpp"> </File> </Filter> <Filter Name="Header Files" Filter=""> <File RelativePath="..\src\Ode\ODEJoint.h"> </File> <File RelativePath="..\src\Ode\ODESimulator.h"> </File> <File RelativePath="..\src\Ode\ODESolid.h"> </File> <File RelativePath="..\src\Ode\ODESpace.h"> </File> </Filter> </Filter> <Filter Name="Math" Filter=""> <File RelativePath="..\src\Matrix44r.h"> </File> <File RelativePath="..\src\OpalMath.h"> </File> <File RelativePath="..\src\Point3r.h"> </File> <File RelativePath="..\src\Quaternion.h"> </File> <File RelativePath="..\src\Rayr.h"> </File> <File RelativePath="..\src\Vec3r.h"> </File> </Filter> </Files> <Globals> </Globals> </VisualStudioProject> --- NEW FILE: opal.sln --- Microsoft Visual Studio Solution File, Format Version 8.00 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opal-ode", "opal-ode.vcproj", "{312196D4-105B-4444-A33A-2ECE3C7D6D64}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {312196D4-105B-4444-A33A-2ECE3C7D6D64}.Debug.ActiveCfg = Debug|Win32 {312196D4-105B-4444-A33A-2ECE3C7D6D64}.Debug.Build.0 = Debug|Win32 {312196D4-105B-4444-A33A-2ECE3C7D6D64}.Release.ActiveCfg = Release|Win32 {312196D4-105B-4444-A33A-2ECE3C7D6D64}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal |
|
From: tylerstreeter <tyl...@us...> - 2005-04-18 22:21:16
|
Update of /cvsroot/opal/opal/samples/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32731/samples/bin Added Files: plugins.cfg readme.txt resources.cfg Log Message: made destructor protected for objects instantiated by OPAL; cleaned up a lot of things to prepare for 0.3.0 release --- NEW FILE: resources.cfg --- # Resource locations to be added to the 'boostrap' path # This also contains the minimum you need to use the Ogre example framework [Bootstrap] Zip=../../data/packs/OgreCore.zip # Resource locations to be added to the default path [General] FileSystem=../../data/models FileSystem=../../data/textures FileSystem=../../data/materials FileSystem=../../data/overlays --- NEW FILE: plugins.cfg --- # Defines plugins to load # Define plugin folder PluginFolder=. # Define plugins Plugin=RenderSystem_Direct3D7 Plugin=RenderSystem_Direct3D9 Plugin=RenderSystem_GL --- NEW FILE: readme.txt --- For OPAL-Ogre applications, make sure that the plugins.cfg and resources.cfg files are copied to to the same directory as the executables. Also, check resources.cfg to make sure its paths point to the correct resource directories. |
|
From: tylerstreeter <tyl...@us...> - 2005-04-18 21:35:43
|
Update of /cvsroot/opal/opal/samples/bin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8008/bin Log Message: Directory /cvsroot/opal/opal/samples/bin added to the repository |
|
From: tylerstreeter <tyl...@us...> - 2005-04-18 18:10:18
|
Update of /cvsroot/opal/opal/vc71 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26745/vc71 Log Message: Directory /cvsroot/opal/opal/vc71 added to the repository |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:51:21
|
Update of /cvsroot/opal/opal/samples/data/overlays In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/overlays Modified Files: general.overlay Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool Index: general.overlay =================================================================== RCS file: /cvsroot/opal/opal/samples/data/overlays/general.overlay,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** general.overlay 6 Apr 2005 04:48:45 -0000 1.1 --- general.overlay 15 Apr 2005 08:50:40 -0000 1.2 *************** *** 7,14 **** { // Center it horzontally, put it at the top ! left 0.493 ! top 0.495 width 0.01 ! height 0.014 material Special/Crosshair } --- 7,14 ---- { // Center it horzontally, put it at the top ! left 0.495 ! top 0.494 width 0.01 ! height 0.012 material Special/Crosshair } |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:51:21
|
Update of /cvsroot/opal/opal/samples/data/textures In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/textures Modified Files: crosshair.png Added Files: wood.jpg Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool --- NEW FILE: wood.jpg --- (This appears to be a binary file; contents omitted.) Index: crosshair.png =================================================================== RCS file: /cvsroot/opal/opal/samples/data/textures/crosshair.png,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsuAFyOx and /tmp/cvsi5esoC differ |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:51:21
|
Update of /cvsroot/opal/opal/samples/data/packs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/packs Modified Files: OgreCore.zip Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool Index: OgreCore.zip =================================================================== RCS file: /cvsroot/opal/opal/samples/data/packs/OgreCore.zip,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsKxX8Lz and /tmp/cvs8TummE differ |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:51:19
|
Update of /cvsroot/opal/opal/samples/data/materials In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/materials Modified Files: basic.material Added Files: textured.material Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool --- NEW FILE: textured.material --- material Textured/Wood { receive_shadows on technique { pass { texture_unit { scale 1 1 texture wood.jpg } } } } Index: basic.material =================================================================== RCS file: /cvsroot/opal/opal/samples/data/materials/basic.material,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** basic.material 6 Apr 2005 04:48:43 -0000 1.4 --- basic.material 15 Apr 2005 08:50:40 -0000 1.5 *************** *** 15,18 **** --- 15,34 ---- } + material Plastic/Green + { + receive_shadows on + + technique + { + pass + { + ambient 0 1 0 + diffuse 0 1 0 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + material Plastic/Blue { *************** *** 31,34 **** --- 47,66 ---- } + material Plastic/LightBlue + { + receive_shadows on + + technique + { + pass + { + ambient 0.5 0.5 1 + diffuse 0.5 0.5 1 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + material Plastic/Orange { *************** *** 47,50 **** --- 79,114 ---- } + material Plastic/Yellow + { + receive_shadows on + + technique + { + pass + { + ambient 1 1 0 + diffuse 1 1 0 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + + material Plastic/Purple + { + receive_shadows on + + technique + { + pass + { + ambient 0.5 0 1 + diffuse 0.5 0 1 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + material Plastic/Gray { *************** *** 63,66 **** --- 127,198 ---- } + material Plastic/LightGray + { + receive_shadows on + + technique + { + pass + { + ambient 0.8 0.8 0.8 + diffuse 0.8 0.8 0.8 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + + material Plastic/DarkGray + { + receive_shadows on + + technique + { + pass + { + ambient 0.3 0.3 0.3 + diffuse 0.3 0.3 0.3 + specular 0.2 0.2 0.2 50 + emissive 0 0 0 + } + } + } + + material Unlit/Yellow + { + receive_shadows off + + technique + { + pass + { + lighting on + + ambient 0 0 0 + diffuse 0 0 0 + specular 0 0 0 0 + emissive 1 1 0 + } + } + } + + material Unlit/White + { + receive_shadows off + + technique + { + pass + { + lighting on + + ambient 0 0 0 + diffuse 0 0 0 + specular 0 0 0 0 + emissive 1 1 1 + } + } + } + material Special/Crosshair { |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:50:52
|
Update of /cvsroot/opal/opal/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/src Modified Files: Matrix44r.h Portability.h Simulator.cpp Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool Index: Simulator.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/Simulator.cpp,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** Simulator.cpp 14 Apr 2005 09:15:06 -0000 1.61 --- Simulator.cpp 15 Apr 2005 08:50:42 -0000 1.62 *************** *** 260,269 **** SolidData sd = *bp.getSolidData(i); - if (useOffset) - { - // Offset the Solid's transform. - sd.transform = offset * sd.transform; - } - if (useScale) { --- 260,263 ---- *************** *** 339,342 **** --- 333,342 ---- } + if (useOffset) + { + // Offset the Solid's transform. + sd.transform = offset * sd.transform; + } + s->init(sd); solidList.push_back(s); *************** *** 358,361 **** --- 358,367 ---- jd.solid1 = solidList.at(jd.internal_solid1Index); + if (useScale) + { + // Scale the Joint's anchor. + jd.anchor = scale * jd.anchor; + } + if (useOffset) { *************** *** 367,376 **** } - if (useScale) - { - // Scale the Joint's anchor. - jd.anchor = scale * jd.anchor; - } - j->init(jd); jointList.push_back(j); --- 373,376 ---- *************** *** 481,490 **** } - if (useOffset) - { - // Offset the Sensor's transform. - transform = offset * transform; - } - if (useScale) { --- 481,484 ---- *************** *** 495,498 **** --- 489,498 ---- } + if (useOffset) + { + // Offset the Sensor's transform. + transform = offset * transform; + } + // Allocate the right type of Sensor. switch(sensorData->getType()) Index: Matrix44r.h =================================================================== RCS file: /cvsroot/opal/opal/src/Matrix44r.h,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** Matrix44r.h 12 Apr 2005 06:46:43 -0000 1.31 --- Matrix44r.h 15 Apr 2005 08:50:42 -0000 1.32 *************** *** 621,629 **** m(1,0) * p[0] + m(1,1) * p[1] + m(1,2) * p[2] + m(1,3), m(2,0) * p[0] + m(2,1) * p[1] + m(2,2) * p[2] + m(2,3)); - /* wtf mate? - m(0,0) * p[0] + m(0,1) * p[1] + m(0,2) * p[2] + m(3,0), - m(1,0) * p[0] + m(1,1) * p[1] + m(1,2) * p[2] + m(3,1), - m(2,0) * p[0] + m(2,1) * p[1] + m(2,2) * p[2] + m(3,2)); - */ } --- 621,624 ---- Index: Portability.h =================================================================== RCS file: /cvsroot/opal/opal/src/Portability.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Portability.h 18 Feb 2005 23:59:37 -0000 1.5 --- Portability.h 15 Apr 2005 08:50:42 -0000 1.6 *************** *** 52,55 **** --- 52,56 ---- // Macro for keeping function names from being mangled. + // TODO: change all OPAL_DECL to use OPAL_EXPORT to prevent name mangling. //#define OPAL_EXPORT(rtype) extern "C" OPAL_DECL rtype OPAL_CALL #define OPAL_EXPORT extern "C" OPAL_DECL |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:50:52
|
Update of /cvsroot/opal/opal/samples/data/models In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/models Added Files: log.mesh Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool --- NEW FILE: log.mesh --- (This appears to be a binary file; contents omitted.) |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:50:52
|
Update of /cvsroot/opal/opal/samples/playpen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/playpen Modified Files: main.cpp Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool Index: main.cpp =================================================================== RCS file: /cvsroot/opal/opal/samples/playpen/main.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** main.cpp 12 Apr 2005 21:23:44 -0000 1.9 --- main.cpp 15 Apr 2005 08:50:42 -0000 1.10 *************** *** 45,49 **** /// A visual line that represents the PhysicalCamera's grasping /// spring. ! opalSamples::OgreLine* mGraspingSpringLine; }; --- 45,49 ---- /// A visual line that represents the PhysicalCamera's grasping /// spring. ! //opalSamples::OgreLine* mGraspingSpringLine; }; *************** *** 52,81 **** { mUseShadows = true; ! mCreationPoint.set(0, 30, 0); ! mGraspingSpringLine = NULL; } PlaypenApp::~PlaypenApp() { ! if (mGraspingSpringLine) ! { ! // Destroy the grasping line and its SceneNode. ! Ogre::SceneNode* sn = mGraspingSpringLine->getParentSceneNode(); ! // Detach and destroy all objects from the SceneNode. The ! // scene node should only have the OgreLine attached which ! // we must delete explicitly. ! while(sn->numAttachedObjects() > 0) ! { ! MovableObject* thisObject = ! sn->detachObject(static_cast<unsigned short>(0)); ! delete thisObject; ! } ! // Destroy the SceneNodes all of its children. ! sn->removeAndDestroyAllChildren(); ! mSceneMgr->getRootSceneNode()->removeAndDestroyChild( ! sn->getName()); ! } } --- 52,81 ---- { mUseShadows = true; ! mCreationPoint.set(-55, 60, -55); ! //mGraspingSpringLine = NULL; } PlaypenApp::~PlaypenApp() { ! //if (mGraspingSpringLine) ! //{ ! // // Destroy the grasping line and its SceneNode. ! // Ogre::SceneNode* sn = mGraspingSpringLine->getParentSceneNode(); ! // // Detach and destroy all objects from the SceneNode. The ! // // scene node should only have the OgreLine attached which ! // // we must delete explicitly. ! // while(sn->numAttachedObjects() > 0) ! // { ! // MovableObject* thisObject = ! // sn->detachObject(static_cast<unsigned short>(0)); ! // delete thisObject; ! // } ! // // Destroy the SceneNodes all of its children. ! // sn->removeAndDestroyAllChildren(); ! // mSceneMgr->getRootSceneNode()->removeAndDestroyChild( ! // sn->getName()); ! //} } *************** *** 93,97 **** //mSceneMgr->showBoundingBoxes(true); ! //mSimulator->setStepSize(0.001); // Set the ambient light level. --- 93,98 ---- //mSceneMgr->showBoundingBoxes(true); ! mSimulator->setStepSize(0.02); ! mSimulator->setGravity(opal::Vec3r(0, -30, 0)); // Set the ambient light level. *************** *** 106,110 **** // Setup the initial camera position. ! mPhysicalCamera->setPosition(opal::Point3r(0, 30, 50)); mPhysicalCamera->lookAt(opal::Point3r(0, 0, 0)); --- 107,111 ---- // Setup the initial camera position. ! mPhysicalCamera->setPosition(opal::Point3r(0, 20, 30)); mPhysicalCamera->lookAt(opal::Point3r(0, 0, 0)); *************** *** 112,127 **** mSceneMgr->setSkyBox(true, "Skyboxes/Gray", 5000); ! // Create the visual line used to represent the PhysicalCamera's // grasping spring. Just create two points for now that will // be updated later. ! mGraspingSpringLine = ! new opalSamples::OgreLine(); ! mGraspingSpringLine->addPoint(0, 0, 0); ! mGraspingSpringLine->addPoint(0, 0, 0); ! mGraspingSpringLine->update(); ! SceneNode* lineNode = ! mSceneMgr->getRootSceneNode()->createChildSceneNode("graspLine"); ! lineNode->attachObject(mGraspingSpringLine); ! mGraspingSpringLine->setVisible(false); // Make a crosshairs for picking. --- 113,150 ---- mSceneMgr->setSkyBox(true, "Skyboxes/Gray", 5000); ! // Create the visual line used to represent the PhysicalCamera's // grasping spring. Just create two points for now that will // be updated later. ! //mGraspingSpringLine = ! // new opalSamples::OgreLine(); ! //mGraspingSpringLine->addPoint(0, 0, 0); ! //mGraspingSpringLine->addPoint(0, 0, 0); ! //mGraspingSpringLine->update(); ! //SceneNode* lineNode = ! // mSceneMgr->getRootSceneNode()->createChildSceneNode("graspLine"); ! //lineNode->attachObject(mGraspingSpringLine); ! //mGraspingSpringLine->setCastShadows(false); ! //mGraspingSpringLine->setVisible(false); ! ! // Make a sphere used to show the grasp position. ! Ogre::SceneNode* sphereNode = mSceneMgr->getRootSceneNode()-> ! createChildSceneNode("pickingSphere0"); ! sphereNode->scale(0.3, 0.3, 0.3); ! Entity* sphereEntity = mSceneMgr->createEntity("pickingSphere", ! "sphere.mesh"); ! sphereEntity->setMaterialName("Unlit/Yellow"); ! sphereEntity->setCastShadows(false); ! sphereEntity->setVisible(false); ! sphereNode->attachObject(sphereEntity); ! ! // Make a "line" (scaled cylinder) to show the grasping spring. ! Ogre::SceneNode* lineNode = mSceneMgr->getRootSceneNode()-> ! createChildSceneNode("springLine"); ! Entity* lineEntity = mSceneMgr->createEntity("springLine", ! "cylinder.mesh"); ! lineEntity->setMaterialName("Unlit/White"); ! lineEntity->setCastShadows(false); ! lineEntity->setVisible(false); ! lineNode->attachObject(lineEntity); // Make a crosshairs for picking. *************** *** 142,170 **** if (mPhysicalCamera->isGrasping()) { ! // Update the first point using the desired position. ! opal::Point3r graspPos = mPhysicalCamera->getGraspGlobalPos(); ! Ogre::Vector3 point(graspPos[0], graspPos[1], graspPos[2]); ! mGraspingSpringLine->setPoint(0, point); - // Update the second point using the spring's attach point. opal::Point3r attachPos = mPhysicalCamera->getAttachGlobalPos(); ! point[0] = attachPos[0]; ! point[1] = attachPos[1]; ! point[2] = attachPos[2]; ! mGraspingSpringLine->setPoint(1, point); ! mGraspingSpringLine->update(); ! if (mGraspingSpringLine->isVisible() == false) { ! mGraspingSpringLine->setVisible(true); } } else { ! if (mGraspingSpringLine->isVisible() == true) { ! mGraspingSpringLine->setVisible(false); } } --- 165,234 ---- if (mPhysicalCamera->isGrasping()) { ! Ogre::Entity* pickingSphere = ! mSceneMgr->getEntity("pickingSphere"); ! if (!pickingSphere->isVisible()) ! { ! pickingSphere->setVisible(true); ! } ! ! Ogre::Entity* springLine = ! mSceneMgr->getEntity("springLine"); ! if (!springLine->isVisible()) ! { ! springLine->setVisible(true); ! } ! ! //if (!mGraspingSpringLine->isVisible()) ! //{ ! // mGraspingSpringLine->setVisible(true); ! //} ! ! opal::Point3r desiredPos = mPhysicalCamera->getGraspGlobalPos(); ! Ogre::Vector3 point0(desiredPos[0], desiredPos[1], desiredPos[2]); ! //mGraspingSpringLine->setPoint(0, point); opal::Point3r attachPos = mPhysicalCamera->getAttachGlobalPos(); ! Ogre::Vector3 point1(attachPos[0], attachPos[1], attachPos[2]); ! //mGraspingSpringLine->setPoint(1, point); ! //mGraspingSpringLine->update(); ! pickingSphere->getParentSceneNode()->setPosition(point1); ! ! Ogre::Vector3 lineVec = point0 - point1; ! if (!lineVec.isZeroLength()) { ! Ogre::SceneNode* springLineNode = ! springLine->getParentSceneNode(); ! springLineNode->setPosition(0.5 * (point0 + point1)); ! ! springLineNode->setDirection(lineVec); ! springLineNode->setScale(0.1, 0.1, lineVec.length()); ! } ! else ! { ! springLine->setVisible(false); } } else { ! Ogre::Entity* pickingSphere = ! mSceneMgr->getEntity("pickingSphere"); ! if (pickingSphere->isVisible()) { ! pickingSphere->setVisible(false); ! } ! ! Ogre::Entity* springLine = ! mSceneMgr->getEntity("springLine"); ! if (springLine->isVisible()) ! { ! springLine->setVisible(false); } + + //if (mGraspingSpringLine->isVisible()) + //{ + // mGraspingSpringLine->setVisible(false); + //} } *************** *** 206,210 **** if(mInputDevice->isKeyDown(KC_1) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(1, 1, 1); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); --- 270,274 ---- if(mInputDevice->isKeyDown(KC_1) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(2, 2, 2); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); *************** *** 212,216 **** data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); s->addShape(data); ! createPhysicalEntityBox("", "Plastic/Red", boxDim, s); // Reset the timer for toggle keys. --- 276,280 ---- data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); s->addShape(data); ! createPhysicalEntityBox("", "Plastic/Yellow", boxDim, s); // Reset the timer for toggle keys. *************** *** 221,225 **** if(mInputDevice->isKeyDown(KC_2) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 0.5; opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); --- 285,289 ---- if(mInputDevice->isKeyDown(KC_2) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 1; opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); *************** *** 227,231 **** data.radius = radius; s->addShape(data); ! createPhysicalEntitySphere("", "Plastic/Blue", radius, s); // Reset the timer for toggle keys. --- 291,295 ---- data.radius = radius; s->addShape(data); ! createPhysicalEntitySphere("", "Plastic/Purple", radius, s); // Reset the timer for toggle keys. *************** *** 236,240 **** if(mInputDevice->isKeyDown(KC_3) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(2, 2, 8); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); --- 300,304 ---- if(mInputDevice->isKeyDown(KC_3) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(5, 5, 5); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); *************** *** 251,255 **** if(mInputDevice->isKeyDown(KC_4) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 1.68; // testing opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); --- 315,319 ---- if(mInputDevice->isKeyDown(KC_4) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 3; // testing opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); *************** *** 264,277 **** } ! // Create a large box. if(mInputDevice->isKeyDown(KC_5) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(16, 16, 16); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); opal::BoxShapeData data; data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); s->addShape(data); ! createPhysicalEntityBox("", "Plastic/Red", boxDim, s); // Reset the timer for toggle keys. --- 328,342 ---- } ! // Create a long box. if(mInputDevice->isKeyDown(KC_5) && mTimeUntilNextToggle <= 0) { ! Ogre::Vector3 boxDim(3, 10, 5); opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); opal::BoxShapeData data; data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); + data.material.density = 10; s->addShape(data); ! createPhysicalEntityBox("", "Plastic/Green", boxDim, s); // Reset the timer for toggle keys. *************** *** 279,292 **** } ! // Create a large sphere. if(mInputDevice->isKeyDown(KC_6) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 8; opal::Solid* s = mSimulator->createSolid(); s->setPosition(mCreationPoint); ! opal::SphereShapeData data; ! data.radius = radius; s->addShape(data); ! createPhysicalEntitySphere("", "Plastic/Blue", radius, s); // Reset the timer for toggle keys. --- 344,370 ---- } ! // Create a log. if(mInputDevice->isKeyDown(KC_6) && mTimeUntilNextToggle <= 0) { ! Ogre::Real logScale = 9; ! Ogre::Vector3 boxDim(0.4243, 0.4243, 2); ! boxDim *= logScale; opal::Solid* s = mSimulator->createSolid(); + opal::Matrix44r m; + m.rotate(90, 1, 0, 0); + s->setTransform(m); s->setPosition(mCreationPoint); ! opal::BoxShapeData data; ! data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); s->addShape(data); ! ! std::string name = generateUniqueName(); ! Ogre::SceneNode* sn = mSceneMgr->getRootSceneNode()-> ! createChildSceneNode(name); ! sn->scale(logScale, logScale, logScale); ! Entity* e = mSceneMgr->createEntity(name, "log.mesh"); ! e->setMaterialName("Textured/Wood"); ! sn->attachObject(e); ! createPhysicalEntity(name, sn, s); // Reset the timer for toggle keys. *************** *** 297,301 **** if(mInputDevice->isKeyDown(KC_7) && mTimeUntilNextToggle <= 0) { ! createWall(6, 8, opal::Vec3r(2, 1, 1)); // Reset the timer for toggle keys. --- 375,382 ---- if(mInputDevice->isKeyDown(KC_7) && mTimeUntilNextToggle <= 0) { ! opal::Matrix44r m; ! m.rotate(45, 0, 1, 0); ! m.translate(0, 0, -20); ! createWall(6, 8, opal::Vec3r(3, 1.5, 1.5), m); // Reset the timer for toggle keys. *************** *** 306,310 **** if(mInputDevice->isKeyDown(KC_8) && mTimeUntilNextToggle <= 0) { ! createTower(2, 2, 20, opal::Vec3r(2, 1, 1)); // Reset the timer for toggle keys. --- 387,391 ---- if(mInputDevice->isKeyDown(KC_8) && mTimeUntilNextToggle <= 0) { ! createTower(2, 2, 15, opal::Vec3r(3, 1.5, 1.5)); // Reset the timer for toggle keys. *************** *** 312,380 **** } ! // Create a medium capsule. if(mInputDevice->isKeyDown(KC_9) && mTimeUntilNextToggle <= 0) { ! Ogre::Real radius = 0.6; ! Ogre::Real length = 4; ! opal::Solid* s = mSimulator->createSolid(); ! s->setPosition(mCreationPoint); ! opal::CapsuleShapeData data; ! data.radius = radius; ! data.length = length; ! s->addShape(data); ! createPhysicalEntityCapsule("", "Plastic/Blue", radius, length, ! s); ! ! // Reset the timer for toggle keys. ! mTimeUntilNextToggle = 0.3; ! } ! ! //// testing ! //if(mInputDevice->isKeyDown(KC_0) && mTimeUntilNextToggle <= 0) ! //{ ! // opal::Blueprint ragdollBP; ! // opal::loadFile(ragdollBP, "SwitcherSceneOpal.xml"); ! // opal::Matrix44r offset; ! // offset.translate(0, 2, 0); ! // offset.rotate(-90, 1, 0, 0); ! // // Instantiate the Blueprint. ! // opal::BlueprintInstance instance; ! // mSimulator->instantiateBlueprint(instance, ragdollBP, offset, 10); ! // unsigned int i=0; ! // for (i=0; i<instance.getNumSolids(); ++i) ! // { ! // opal::Solid* s = instance.getSolid(i); ! // const opal::SolidData& data = s->getData(); ! // unsigned int j=0; ! // for (j=0; j<data.getNumShapes(); ++j) ! // { ! // opal::ShapeData* shapeData = data.getShapeData(j); ! // switch(shapeData->getType()) ! // { ! // case opal::BOX_SHAPE: ! // { ! // opal::Vec3r dim = ((opal::BoxShapeData*)shapeData)->dimensions; ! // Ogre::Vector3 boxDim(dim[0], dim[1], dim[2]); ! // createPhysicalEntityBox("", "Plastic/Gray", boxDim, s); ! // break; ! // } ! // case opal::SPHERE_SHAPE: ! // { ! // opal::real r = ((opal::SphereShapeData*)shapeData)->radius; ! // createPhysicalEntitySphere("", "Plastic/Gray", r, s); ! // break; ! // } ! // default: ! // assert(false); ! // } ! // } ! // } ! // // Reset the timer for toggle keys. ! // mTimeUntilNextToggle = 0.5; ! //} // The following code updates the camera's position. --- 393,450 ---- } ! // Create a ragdoll. if(mInputDevice->isKeyDown(KC_9) && mTimeUntilNextToggle <= 0) { ! opal::Blueprint ragdollBP; ! opal::loadFile(ragdollBP, "../../data/blueprints/ragdoll.xml"); ! opal::Matrix44r transform; ! transform.translate(mCreationPoint[0], mCreationPoint[1] - 5, ! mCreationPoint[2]); ! // Instantiate the Blueprint. ! opal::BlueprintInstance instance; ! mSimulator->instantiateBlueprint(instance, ragdollBP, transform, 12); ! unsigned int i=0; ! for (i=0; i<instance.getNumSolids(); ++i) ! { ! opal::Solid* s = instance.getSolid(i); ! const opal::SolidData& data = s->getData(); ! unsigned int j=0; ! for (j=0; j<data.getNumShapes(); ++j) ! { ! opal::ShapeData* shapeData = data.getShapeData(j); ! switch(shapeData->getType()) ! { ! case opal::BOX_SHAPE: ! { ! opal::Vec3r dim = ((opal::BoxShapeData*)shapeData)->dimensions; ! Ogre::Vector3 boxDim(dim[0], dim[1], dim[2]); ! createPhysicalEntityBox("", "Plastic/LightBlue", boxDim, s); ! break; ! } ! case opal::SPHERE_SHAPE: ! { ! opal::real r = ((opal::SphereShapeData*)shapeData)->radius; ! createPhysicalEntitySphere("", "Plastic/LightBlue", r, s); ! break; ! } ! case opal::CAPSULE_SHAPE: ! { ! opal::real r = ((opal::CapsuleShapeData*)shapeData)->radius; ! opal::real l = ((opal::CapsuleShapeData*)shapeData)->length; ! createPhysicalEntityCapsule("", "Plastic/LightBlue", r, l, s); ! break; ! } ! default: ! assert(false); ! } ! } ! } ! // Reset the timer for toggle keys. ! mTimeUntilNextToggle = 0.5; ! } // The following code updates the camera's position. *************** *** 511,523 **** //sn->rotate(Ogre::Vector3(1, 0, 0), angle); // Create a static box for a ground plane. ! Ogre::Vector3 groundDim(100, 8, 100); opal::Solid* s = mSimulator->createSolid(); s->setStatic(true); s->setPosition(0, -4, 0); opal::BoxShapeData data; ! data.dimensions.set(groundDim[0], groundDim[1], groundDim[2]); s->addShape(data); ! createPhysicalEntityBox("ground", "Plastic/Gray", groundDim, s); } --- 581,652 ---- //sn->rotate(Ogre::Vector3(1, 0, 0), angle); + opal::Matrix44r m; + // Create a static box for a ground plane. ! Ogre::Vector3 boxDim(70, 8, 70); opal::Solid* s = mSimulator->createSolid(); s->setStatic(true); s->setPosition(0, -4, 0); opal::BoxShapeData data; ! data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); s->addShape(data); ! createPhysicalEntityBox("ground", "Plastic/Gray", boxDim, s); ! ! // Setup the "object creation tube". ! boxDim.x = 1; ! boxDim.y = 20; ! boxDim.z = 8; ! data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); ! ! s = mSimulator->createSolid(); ! s->setStatic(true); ! m.makeTranslation(mCreationPoint[0] + 0.5 * boxDim.z, ! mCreationPoint[1], mCreationPoint[2] + 0.5 * boxDim.x); ! s->setTransform(m); ! s->addShape(data); ! createPhysicalEntityBox("tube0", "Plastic/LightGray", boxDim, s); ! ! s = mSimulator->createSolid(); ! s->setStatic(true); ! m.makeTranslation(mCreationPoint[0] - 0.5 * boxDim.z, ! mCreationPoint[1], mCreationPoint[2] - 0.5 * boxDim.x); ! s->setTransform(m); ! s->addShape(data); ! createPhysicalEntityBox("tube1", "Plastic/LightGray", boxDim, s); ! ! s = mSimulator->createSolid(); ! s->setStatic(true); ! m.makeRotation(90, 0, 1, 0); ! m.translate(-mCreationPoint[2] + 0.5 * boxDim.z, mCreationPoint[1], ! mCreationPoint[0] + 0.5 * boxDim.x); ! s->setTransform(m); ! s->addShape(data); ! createPhysicalEntityBox("tube2", "Plastic/LightGray", boxDim, s); ! ! s = mSimulator->createSolid(); ! s->setStatic(true); ! m.makeRotation(90, 0, 1, 0); ! m.translate(-mCreationPoint[2] - 0.5 * boxDim.z, mCreationPoint[1], ! mCreationPoint[0] - 0.5 * boxDim.x); ! s->setTransform(m); ! s->addShape(data); ! createPhysicalEntityBox("tube3", "Plastic/LightGray", boxDim, s); ! ! // Make a slide under the object creation tube. ! boxDim.x = 60; ! boxDim.y = 1; ! boxDim.z = 15; ! data.dimensions.set(boxDim[0], boxDim[1], boxDim[2]); ! data.material.friction = 0.00001; ! s = mSimulator->createSolid(); ! s->setStatic(true); ! m.makeTranslation(mCreationPoint[0], mCreationPoint[1] - 33, ! mCreationPoint[2]); ! m.rotate(-45, 0, 1, 0); ! m.translate(0.3 * boxDim.x, 0, 0); ! m.rotate(-30, 0, 0, 1); ! s->setTransform(m); ! s->addShape(data); ! createPhysicalEntityBox("slide", "Plastic/DarkGray", boxDim, s); } *************** *** 545,549 **** opal::BoxShapeData boxData; boxData.dimensions = boxDim; ! boxData.material.density = 500; s->addShape(boxData); Ogre::Vector3 boxDimensions(boxDim[0], boxDim[1], boxDim[2]); --- 674,678 ---- opal::BoxShapeData boxData; boxData.dimensions = boxDim; ! boxData.material.density = 20; s->addShape(boxData); Ogre::Vector3 boxDimensions(boxDim[0], boxDim[1], boxDim[2]); *************** *** 599,628 **** createWall(length, height, boxDim, wallBaseTransform); - - //for (unsigned int l=0; l<length; ++l) - //{ - // for (unsigned int h=0; h<height; ++h) - // { - // opal::real offset = 0; - // if (h % 2 == 0) - // { - // offset = (opal::real)0.5 * boxDim[0]; - // } - - // opal::Matrix44r blockTransform = wallBaseTransform; - // blockTransform.translate(l * boxDim[0] + - // 0.5 * boxDim[0] - 0.5 * length * boxDim[0] + - // offset, h * boxDim[1] + 0.5 * boxDim[1], 0); - - // opal::Solid* s = mSimulator->createSolid(); - // s->setTransform(blockTransform); - // s->setSleeping(true); - // opal::BoxShapeData boxData; - // boxData.dimensions = boxDim; - // s->addShape(boxData); - // Ogre::Vector3 boxDimensions(boxDim[0], boxDim[1], boxDim[2]); - // createPhysicalEntityBox("", "Plastic/Red", boxDimensions, s); - // } - //} } } --- 728,731 ---- |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:50:52
|
Update of /cvsroot/opal/opal/samples/data/blueprints In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/data/blueprints Added Files: ragdoll.xml Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool --- NEW FILE: ragdoll.xml --- <?xml version="1.0" ?> <OpalBlueprint> <Solid> <Name value="head"/> <Offset> <Transform type="translate" x="0.0" y="1.02" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.065" length="0.02"/> </Shape> </Solid> <Joint> <Name value="neck"/> <Type value="hinge"/> <References solid0="upper torso" solid1="head"/> <Anchor x="0.0" y="0.95" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-45.0"/> <LimitHigh value="45.0"/> </Axis> </Joint> <Solid> <Name value="upper torso"/> <Offset> <Transform type="translate" x="0.0" y="0.9" z="0.0"/> <Transform type="rotate" angle="90.0" x="0.0" y="1.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.045" length="0.25"/> </Shape> </Solid> <Joint> <Name value="left shoulder"/> <Type value="universal"/> <BreakMode value="threshold"/> <BreakThresh value="5000.0"/> <References solid0="upper left arm" solid1="upper torso"/> <Anchor x="0.16" y="0.9" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-160.0"/> <LimitHigh value="80.0"/> </Axis> <Axis> <AxisNum value="1"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-45.0"/> <LimitHigh value="170.0"/> </Axis> </Joint> <Solid> <Name value="upper left arm"/> <Offset> <Transform type="translate" x="0.16" y="0.8" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.03" length="0.2"/> </Shape> </Solid> <Joint> <Name value="left elbow"/> <Type value="hinge"/> <References solid0="lower left arm" solid1="upper left arm"/> <Anchor x="0.16" y="0.7" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-120.0"/> <LimitHigh value="0.0"/> </Axis> </Joint> <Solid> <Name value="lower left arm"/> <Offset> <Transform type="translate" x="0.16" y="0.6" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.027" length="0.2"/> </Shape> </Solid> <Joint> <Name value="left wrist"/> <Type value="hinge"/> <References solid0="left hand" solid1="lower left arm"/> <Anchor x="0.16" y="0.5" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-85.0"/> <LimitHigh value="85.0"/> </Axis> </Joint> <Solid> <Name value="left hand"/> <Offset> <Transform type="translate" x="0.16" y="0.45" z="0.0"/> </Offset> <Shape type="box"> <Dimensions x="0.02" y="0.09" z="0.06"/> </Shape> </Solid> <Joint> <Name value="right shoulder"/> <Type value="universal"/> <BreakMode value="threshold"/> <BreakThresh value="5000.0"/> <References solid0="upper right arm" solid1="upper torso"/> <Anchor x="-0.16" y="0.9" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-160.0"/> <LimitHigh value="80.0"/> </Axis> <Axis> <AxisNum value="1"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-170.0"/> <LimitHigh value="45.0"/> </Axis> </Joint> <Solid> <Name value="upper right arm"/> <Offset> <Transform type="translate" x="-0.16" y="0.8" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.03" length="0.2"/> </Shape> </Solid> <Joint> <Name value="right elbow"/> <Type value="hinge"/> <References solid0="lower right arm" solid1="upper right arm"/> <Anchor x="-0.16" y="0.7" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-120.0"/> <LimitHigh value="0.0"/> </Axis> </Joint> <Solid> <Name value="lower right arm"/> <Offset> <Transform type="translate" x="-0.16" y="0.6" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.027" length="0.2"/> </Shape> </Solid> <Joint> <Name value="right wrist"/> <Type value="hinge"/> <References solid0="right hand" solid1="lower right arm"/> <Anchor x="-0.16" y="0.5" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-85.0"/> <LimitHigh value="85.0"/> </Axis> </Joint> <Solid> <Name value="right hand"/> <Offset> <Transform type="translate" x="-0.16" y="0.45" z="0.0"/> </Offset> <Shape type="box"> <Dimensions x="0.02" y="0.09" z="0.06"/> </Shape> </Solid> <Joint> <Name value="chest joint"/> <Type value="universal"/> <References solid0="lower torso" solid1="upper torso"/> <Anchor x="0.0" y="0.86" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-15.0"/> <LimitHigh value="15.0"/> </Axis> <Axis> <AxisNum value="1"/> <Direction x="0.0" y="1.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-15.0"/> <LimitHigh value="15.0"/> </Axis> </Joint> <Solid> <Name value="lower torso"/> <Offset> <Transform type="translate" x="0.0" y="0.75" z="0.0"/> </Offset> <Shape type="box"> <Dimensions x="0.18" y="0.27" z="0.04"/> </Shape> </Solid> <Joint> <Name value="waist joint"/> <Type value="hinge"/> <References solid0="pelvis" solid1="lower torso"/> <Anchor x="0.0" y="0.58" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="0.0" y="1.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-20.0"/> <LimitHigh value="20.0"/> </Axis> </Joint> <Solid> <Name value="pelvis"/> <Offset> <Transform type="translate" x="0.0" y="0.58" z="0.0"/> <Transform type="rotate" angle="90.0" x="0.0" y="1.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.05" length="0.15"/> </Shape> </Solid> <Joint> <Name value="left hip"/> <Type value="universal"/> <BreakMode value="threshold"/> <BreakThresh value="10000.0"/> <References solid0="upper left leg" solid1="pelvis"/> <Anchor x="0.08" y="0.58" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-135.0"/> <LimitHigh value="45.0"/> </Axis> <Axis> <AxisNum value="1"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-30.0"/> <LimitHigh value="30.0"/> </Axis> </Joint> <Solid> <Name value="upper left leg"/> <Offset> <Transform type="translate" x="0.08" y="0.43" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.04" length="0.26"/> </Shape> </Solid> <Joint> <Name value="right hip"/> <Type value="universal"/> <BreakMode value="threshold"/> <BreakThresh value="10000.0"/> <References solid0="upper right leg" solid1="pelvis"/> <Anchor x="-0.08" y="0.58" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-135.0"/> <LimitHigh value="45.0"/> </Axis> <Axis> <AxisNum value="1"/> <Direction x="0.0" y="0.0" z="1.0"/> <LimitsEnabled value="true"/> <LimitLow value="-30.0"/> <LimitHigh value="30.0"/> </Axis> </Joint> <Solid> <Name value="upper right leg"/> <Offset> <Transform type="translate" x="-0.08" y="0.43" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.04" length="0.26"/> </Shape> </Solid> <Joint> <Name value="left knee"/> <Type value="hinge"/> <References solid0="lower left leg" solid1="upper left leg"/> <Anchor x="0.08" y="0.3" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="0.0"/> <LimitHigh value="165.0"/> </Axis> </Joint> <Solid> <Name value="lower left leg"/> <Offset> <Transform type="translate" x="0.08" y="0.17" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.03" length="0.26"/> </Shape> </Solid> <Joint> <Name value="right knee"/> <Type value="hinge"/> <References solid0="lower right leg" solid1="upper right leg"/> <Anchor x="-0.08" y="0.3" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="0.0"/> <LimitHigh value="165.0"/> </Axis> </Joint> <Solid> <Name value="lower right leg"/> <Offset> <Transform type="translate" x="-0.08" y="0.17" z="0.0"/> <Transform type="rotate" angle="90.0" x="1.0" y="0.0" z="0.0"/> </Offset> <Shape type="capsule"> <Dimensions radius="0.03" length="0.26"/> </Shape> </Solid> <Joint> <Name value="left ankle"/> <Type value="hinge"/> <References solid0="left foot" solid1="lower left leg"/> <Anchor x="0.08" y="0.04" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-45.0"/> <LimitHigh value="60.0"/> </Axis> </Joint> <Solid> <Name value="left foot"/> <Offset> <Transform type="translate" x="0.08" y="0.02" z="0.045"/> </Offset> <Shape type="box"> <Dimensions x="0.075" y="0.04" z="0.15"/> </Shape> </Solid> <Joint> <Name value="right ankle"/> <Type value="hinge"/> <References solid0="right foot" solid1="lower right leg"/> <Anchor x="-0.08" y="0.04" z="0.0"/> <Axis> <AxisNum value="0"/> <Direction x="1.0" y="0.0" z="0.0"/> <LimitsEnabled value="true"/> <LimitLow value="-45.0"/> <LimitHigh value="60.0"/> </Axis> </Joint> <Solid> <Name value="right foot"/> <Offset> <Transform type="translate" x="-0.08" y="0.02" z="0.045"/> </Offset> <Shape type="box"> <Dimensions x="0.075" y="0.04" z="0.15"/> </Shape> </Solid> </OpalBlueprint> |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 08:50:51
|
Update of /cvsroot/opal/opal/samples/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10352/samples/src Modified Files: PhysicalCamera.h Log Message: changed Simulator::instantiateBlueprint to apply scaling (of Shape dimensions and Solid transforms) before applying the additional Blueprint transform; made the playpen sample app cool Index: PhysicalCamera.h =================================================================== RCS file: /cvsroot/opal/opal/samples/src/PhysicalCamera.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PhysicalCamera.h 12 Apr 2005 06:46:42 -0000 1.5 --- PhysicalCamera.h 15 Apr 2005 08:50:42 -0000 1.6 *************** *** 297,306 **** data.mode = opal::LINEAR_MODE; //data.mode = opal::LINEAR_AND_ANGULAR_MODE; ! data.linearKd = 1.5; ! data.linearKs = 15; //data.angularKd = 0.3; //data.angularKs = 5; ! // Desired position/orientation will be updated in the ! // "update" function. mGraspingMotor->init(data); mGraspingMotor->setGlobalAttachPoint(result.intersection); --- 297,310 ---- data.mode = opal::LINEAR_MODE; //data.mode = opal::LINEAR_AND_ANGULAR_MODE; ! data.linearKd = 2.5; ! data.linearKs = 25; //data.angularKd = 0.3; //data.angularKs = 5; ! opal::Matrix44r solidTransform = result.solid->getTransform(); ! //data.desiredUp = solidTransform.getUp(); ! //data.desiredForward = solidTransform.getForward(); ! //data.desiredRight = solidTransform.getRight(); ! // Desired position will be updated in the "update" ! // function. mGraspingMotor->init(data); mGraspingMotor->setGlobalAttachPoint(result.intersection); *************** *** 310,313 **** --- 314,319 ---- mGraspOffset.set(0, 0, -result.distance); } + + result.solid->setAngularDamping(3); } } *************** *** 321,324 **** --- 327,332 ---- // Make sure the object is awake before releasing it so it // doesn't float in midair. + mGraspedObject->setAngularDamping( + opal::defaults::solid::angularDamping); mGraspedObject->setSleeping(false); mGraspedObject = NULL; |
|
From: tylerstreeter <tyl...@us...> - 2005-04-15 07:59:59
|
Update of /cvsroot/opal/opal/samples/data/blueprints In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19179/blueprints Log Message: Directory /cvsroot/opal/opal/samples/data/blueprints added to the repository |
|
From: tylerstreeter <tyl...@us...> - 2005-04-14 09:15:33
|
Update of /cvsroot/opal/opal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1968 Modified Files: SConstruct Log Message: added a Simulator option to set the max physical contacts generated Index: SConstruct =================================================================== RCS file: /cvsroot/opal/opal/SConstruct,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** SConstruct 13 Apr 2005 17:31:39 -0000 1.8 --- SConstruct 14 Apr 2005 09:15:06 -0000 1.9 *************** *** 34,43 **** env = Environment( ENV = os.environ, ! options = opts, ! tools = ['gcc', 'gnulink', 'g++']) env.Append( ! #CXXFLAGS = ['-ansi', '-LANG:std', '-n32']) ! CXXFLAGS = ['-ansi', '-LANG:std', '-mabi=n32']) #CPPPATH = string.split(os.environ['CPLUS_INCLUDE_PATH'], ':'), #LIBPATH = string.split(os.environ['LIBRARY_PATH'], ':')) --- 34,43 ---- env = Environment( ENV = os.environ, ! options = opts) ! #tools = ['gcc', 'gnulink', 'g++']) env.Append( ! CXXFLAGS = ['-ansi', '-LANG:std', '-n32']) ! #CXXFLAGS = ['-ansi', '-LANG:std', '-mabi=n32']) #CPPPATH = string.split(os.environ['CPLUS_INCLUDE_PATH'], ':'), #LIBPATH = string.split(os.environ['LIBRARY_PATH'], ':')) |
|
From: tylerstreeter <tyl...@us...> - 2005-04-14 09:15:33
|
Update of /cvsroot/opal/opal/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1968/src Modified Files: Defines.h Simulator.cpp Simulator.h Log Message: added a Simulator option to set the max physical contacts generated Index: Simulator.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/Simulator.cpp,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** Simulator.cpp 12 Apr 2005 21:23:45 -0000 1.60 --- Simulator.cpp 14 Apr 2005 09:15:06 -0000 1.61 *************** *** 52,55 **** --- 52,56 ---- //setMaxAngularVel(defaults::maxAngularVel); setMaxCorrectingVel(defaults::maxCorrectingVel); + setMaxContacts(defaults::maxContacts); setUserData(NULL); setPostStepEventHandler(NULL); *************** *** 876,879 **** --- 877,891 ---- } + void Simulator::setMaxContacts(unsigned int mc) + { + assert(mc <= globals::maxMaxContacts); + mMaxContacts = mc; + } + + unsigned int Simulator::getMaxContacts()const + { + return mMaxContacts; + } + void Simulator::addSolid(Solid* s) { Index: Defines.h =================================================================== RCS file: /cvsroot/opal/opal/src/Defines.h,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** Defines.h 12 Apr 2005 21:23:44 -0000 1.75 --- Defines.h 14 Apr 2005 09:15:06 -0000 1.76 *************** *** 239,242 **** --- 239,246 ---- namespace globals { + /// The highest value that can be used for the Simulator's + /// max contacts parameter. + const int maxMaxContacts=(int)128; + // Pre-defined material settings const real metalHardness = (real)1.0; *************** *** 285,288 **** --- 289,293 ---- const bool staticSleepingContactsEnabled = false; const real maxCorrectingVel=(real)40.0; + const int maxContacts=(int)24; /// All groups make contacts with all other groups by default. *************** *** 395,399 **** const real autoDisableTimeMin=0; const real autoDisableTimeMax=(real)0.4; - const int maxContactPoints=(int)24; const real minMassRatio=(real)0.001; --- 400,403 ---- Index: Simulator.h =================================================================== RCS file: /cvsroot/opal/opal/src/Simulator.h,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** Simulator.h 12 Apr 2005 21:23:45 -0000 1.98 --- Simulator.h 14 Apr 2005 09:15:07 -0000 1.99 *************** *** 139,142 **** --- 139,151 ---- virtual real OPAL_CALL getMaxCorrectingVel()const; + /// Sets the maximum number of physical contacts generated when + /// two Solids collide. This number cannot be larger than the + /// global "max max contacts" parameter. + virtual void OPAL_CALL setMaxContacts(unsigned int mc); + + /// Returns the maximum number of physical contacts generated + /// when two Solids collide. + virtual unsigned int OPAL_CALL getMaxContacts()const; + /// Sets the maximum linear velocity for any Solid. This limits /// Solid motion to prevent explosions from numerical innacuracy. *************** *** 409,412 **** --- 418,425 ---- real mMaxCorrectingVel; + /// The maximum number of physical contacts generated when two + /// Solids collide. + unsigned int mMaxContacts; + private: }; |
|
From: tylerstreeter <tyl...@us...> - 2005-04-14 09:15:33
|
Update of /cvsroot/opal/opal/src/ODE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1968/src/ODE Modified Files: ODESimulator.cpp Log Message: added a Simulator option to set the max physical contacts generated Index: ODESimulator.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODESimulator.cpp,v retrieving revision 1.99 retrieving revision 1.100 diff -C2 -d -r1.99 -r1.100 *** ODESimulator.cpp 12 Apr 2005 21:23:45 -0000 1.99 --- ODESimulator.cpp 14 Apr 2005 09:15:07 -0000 1.100 *************** *** 430,437 **** dJointGroupID theJointGroupID = sim->internal_getJointGroupID(); ! dContactGeom contactArray[defaults::ode::maxContactPoints]; ! int numContacts = dCollide(o0, o1, ! defaults::ode::maxContactPoints, contactArray, ! sizeof(dContactGeom)); // If the two objects didn't make any contacts, they weren't --- 430,436 ---- dJointGroupID theJointGroupID = sim->internal_getJointGroupID(); ! dContactGeom contactArray[globals::maxMaxContacts]; ! int numContacts = dCollide(o0, o1, sim->getMaxContacts(), ! contactArray, sizeof(dContactGeom)); // If the two objects didn't make any contacts, they weren't |
|
From: tylerstreeter <tyl...@us...> - 2005-04-13 17:31:49
|
Update of /cvsroot/opal/opal/tools/tinyxml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11518/tools/tinyxml Modified Files: SConstruct Log Message: changed SConstruct to uses g++ on IRIX Index: SConstruct =================================================================== RCS file: /cvsroot/opal/opal/tools/tinyxml/SConstruct,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SConstruct 11 Feb 2005 21:40:02 -0000 1.1 --- SConstruct 13 Apr 2005 17:31:40 -0000 1.2 *************** *** 6,16 **** ! env = Environment( ENV = os.environ, ! CCFLAGS = [''], ! CXXFLAGS = [''], ! CPPPATH = [''], ! LIBPATH = [''], ! SHLIBSUFFIX='.so', ! LIBS = [''] ) ! env.StaticLibrary('tinyxml',sources) --- 6,23 ---- ! env = Environment( ! ENV = os.environ, ! CXX = ['g++'], ! CCFLAGS = [''], ! CXXFLAGS = [''], ! CPPPATH = [''], ! LINK = [''], ! LINKFLAGS = [''], ! AR = ['ar'], ! ARFLAGS = ['rc'], ! LIBPATH = [''], ! SHLIBSUFFIX='.so', ! LIBS = [''] ! ) ! env.StaticLibrary('tinyxml', sources) |
|
From: tylerstreeter <tyl...@us...> - 2005-04-13 17:31:47
|
Update of /cvsroot/opal/opal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11518 Modified Files: SConstruct Log Message: changed SConstruct to uses g++ on IRIX Index: SConstruct =================================================================== RCS file: /cvsroot/opal/opal/SConstruct,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SConstruct 4 Mar 2005 23:26:53 -0000 1.7 --- SConstruct 13 Apr 2005 17:31:39 -0000 1.8 *************** *** 14,24 **** def setupBaseEnvironment(): ! env = Environment(ENV = os.environ, ! options = opts, ! LINKFLAGS = []) return env def setupGenericUNIXEnvironment(env): ! env.Replace(CXX = 'g++') if env['debug'] == True: env.Append(CXXFLAGS = ['-O0']) --- 14,28 ---- def setupBaseEnvironment(): ! env = Environment( ! ENV = os.environ, ! options = opts) return env def setupGenericUNIXEnvironment(env): ! env = Environment( ! ENV = os.environ, ! options = opts, ! tools = ['gcc', 'gnulink', 'g++']) ! if env['debug'] == True: env.Append(CXXFLAGS = ['-O0']) *************** *** 28,34 **** def setupIrixEnvironment(env): ! 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'], ':')) --- 32,43 ---- def setupIrixEnvironment(env): ! env = Environment( ! ENV = os.environ, ! options = opts, ! tools = ['gcc', 'gnulink', 'g++']) ! env.Append( ! #CXXFLAGS = ['-ansi', '-LANG:std', '-n32']) ! CXXFLAGS = ['-ansi', '-LANG:std', '-mabi=n32']) #CPPPATH = string.split(os.environ['CPLUS_INCLUDE_PATH'], ':'), #LIBPATH = string.split(os.environ['LIBRARY_PATH'], ':')) *************** *** 40,43 **** --- 49,56 ---- def setupWin32Environment(env): + env = Environment( + ENV = os.environ, + options = opts) + env.Append( CPPDEFINES = ['/DWIN32', '/D_WIN32', '/W3', '/DOPAL_DLL_EXPORTING'], *************** *** 72,78 **** env = setupBaseEnvironment() - env.Append(CPPPATH = env['extra_include_path'], - LIBPATH = env['extra_lib_path']) - # Add platform-specific stuff if env['PLATFORM'] == 'win32': --- 85,88 ---- *************** *** 83,86 **** --- 93,99 ---- env = setupGenericUNIXEnvironment(env) + env.Append(CPPPATH = env['extra_include_path'], + LIBPATH = env['extra_lib_path']) + # Setup the buildDir where intermediate and library files will be placed buildDir = '' |
|
From: tylerstreeter <tyl...@us...> - 2005-04-12 21:23:56
|
Update of /cvsroot/opal/opal/src/ODE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4002/src/ODE Modified Files: ODESimulator.cpp ODESimulator.h Log Message: added a Simulator option to change the "max correcting velocity" for penetrating objects Index: ODESimulator.h =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODESimulator.h,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** ODESimulator.h 12 Apr 2005 06:46:44 -0000 1.70 --- ODESimulator.h 12 Apr 2005 21:23:46 -0000 1.71 *************** *** 64,67 **** --- 64,69 ---- virtual void OPAL_CALL destroy(); + virtual void OPAL_CALL setMaxCorrectingVel(real vel); + // SOLIDS Index: ODESimulator.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/ODE/ODESimulator.cpp,v retrieving revision 1.98 retrieving revision 1.99 diff -C2 -d -r1.98 -r1.99 *** ODESimulator.cpp 12 Apr 2005 06:46:44 -0000 1.98 --- ODESimulator.cpp 12 Apr 2005 21:23:45 -0000 1.99 *************** *** 70,75 **** defaults::ode::minERP)); - dWorldSetContactMaxCorrectingVel(mWorldID, - defaults::ode::maxCorrectingVel); dWorldSetContactSurfaceLayer(mWorldID, defaults::ode::surfaceLayer); --- 70,73 ---- *************** *** 85,88 **** --- 83,92 ---- } + void ODESimulator::setMaxCorrectingVel(real vel) + { + Simulator::setMaxCorrectingVel(vel); + dWorldSetContactMaxCorrectingVel(mWorldID, vel); + } + Solid* ODESimulator::createSolid() { |
|
From: tylerstreeter <tyl...@us...> - 2005-04-12 21:23:55
|
Update of /cvsroot/opal/opal/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4002/src Modified Files: Defines.h Simulator.cpp Simulator.h Log Message: added a Simulator option to change the "max correcting velocity" for penetrating objects Index: Simulator.cpp =================================================================== RCS file: /cvsroot/opal/opal/src/Simulator.cpp,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** Simulator.cpp 12 Apr 2005 06:46:43 -0000 1.59 --- Simulator.cpp 12 Apr 2005 21:23:45 -0000 1.60 *************** *** 51,54 **** --- 51,55 ---- //setMaxLinearVel(defaults::maxLinearVel); //setMaxAngularVel(defaults::maxAngularVel); + setMaxCorrectingVel(defaults::maxCorrectingVel); setUserData(NULL); setPostStepEventHandler(NULL); *************** *** 864,867 **** --- 865,879 ---- } + void Simulator::setMaxCorrectingVel(real vel) + { + assert(vel > 0); + mMaxCorrectingVel = vel; + } + + real Simulator::getMaxCorrectingVel()const + { + return mMaxCorrectingVel; + } + void Simulator::addSolid(Solid* s) { Index: Defines.h =================================================================== RCS file: /cvsroot/opal/opal/src/Defines.h,v retrieving revision 1.74 retrieving revision 1.75 diff -C2 -d -r1.74 -r1.75 *** Defines.h 12 Apr 2005 06:46:43 -0000 1.74 --- Defines.h 12 Apr 2005 21:23:44 -0000 1.75 *************** *** 284,287 **** --- 284,288 ---- //const real maxAngularVel = (real)1000.0; const bool staticSleepingContactsEnabled = false; + const real maxCorrectingVel=(real)40.0; /// All groups make contacts with all other groups by default. *************** *** 398,402 **** //note: max and min mass ratios must be the inverse of each other ! const real maxMassRatio=(real)1000.0; const real minERP=(real)0.1; const real maxERP=(real)0.9; --- 399,403 ---- //note: max and min mass ratios must be the inverse of each other ! //const real maxMassRatio=(real)1000.0; const real minERP=(real)0.1; const real maxERP=(real)0.9; *************** *** 404,408 **** const real jointFudgeFactor=(real)0.1; const real maxFriction=(real)1000.0; - const real maxCorrectingVel=(real)40.0; const real surfaceLayer=(real)0.001; } --- 405,408 ---- Index: Simulator.h =================================================================== RCS file: /cvsroot/opal/opal/src/Simulator.h,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** Simulator.h 12 Apr 2005 06:46:43 -0000 1.97 --- Simulator.h 12 Apr 2005 21:23:45 -0000 1.98 *************** *** 131,134 **** --- 131,142 ---- virtual SolverAccuracyLevel OPAL_CALL getSolverAccuracy()const; + /// Sets the maximum correcting velocity for interpenetrating + /// objects. The given velocity must be positive. + virtual void OPAL_CALL setMaxCorrectingVel(real vel); + + /// Returns the maximum correcting velocity for interpenetrating + /// objects. + virtual real OPAL_CALL getMaxCorrectingVel()const; + /// Sets the maximum linear velocity for any Solid. This limits /// Solid motion to prevent explosions from numerical innacuracy. *************** *** 397,400 **** --- 405,412 ---- PostStepEventHandler* mPostStepEventHandler; + /// The maximum correcting velocity used when forcing apart + /// interpenetrating objects. + real mMaxCorrectingVel; + private: }; |
|
From: tylerstreeter <tyl...@us...> - 2005-04-12 21:23:53
|
Update of /cvsroot/opal/opal/samples/playpen In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4002/samples/playpen Modified Files: main.cpp Log Message: added a Simulator option to change the "max correcting velocity" for penetrating objects Index: main.cpp =================================================================== RCS file: /cvsroot/opal/opal/samples/playpen/main.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** main.cpp 12 Apr 2005 06:46:42 -0000 1.8 --- main.cpp 12 Apr 2005 21:23:44 -0000 1.9 *************** *** 200,213 **** } - if(mInputDevice->isKeyDown(KC_F)) - { - opal::Solid* s = getPhysicalEntity("object0")->getSolid(); - opal::Force f; - f.singleStep = true; - f.type = opal::GLOBAL_TORQUE; - f.vec.set(100, 0, 0); - s->addForce(f); - } - // Create various types of objects when the number keys are // pressed. --- 200,203 ---- |
|
From: tylerstreeter <tyl...@us...> - 2005-04-12 06:47:23
|
Update of /cvsroot/opal/opal/samples/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4177/samples/src Modified Files: PhysicalCamera.h Log Message: added a rotational stability fix for ODESolids Index: PhysicalCamera.h =================================================================== RCS file: /cvsroot/opal/opal/samples/src/PhysicalCamera.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PhysicalCamera.h 6 Apr 2005 04:48:44 -0000 1.4 --- PhysicalCamera.h 12 Apr 2005 06:46:42 -0000 1.5 *************** *** 47,51 **** mGraspedObject = NULL; mGraspOffset.set(0, 0, -5); ! mMaxReach = 100; mEyeHeight = eyeHeight; --- 47,51 ---- mGraspedObject = NULL; mGraspOffset.set(0, 0, -5); ! mMaxReach = 500; mEyeHeight = eyeHeight; *************** *** 297,302 **** data.mode = opal::LINEAR_MODE; //data.mode = opal::LINEAR_AND_ANGULAR_MODE; ! data.linearKd = 3; ! data.linearKs = 50; //data.angularKd = 0.3; //data.angularKs = 5; --- 297,302 ---- data.mode = opal::LINEAR_MODE; //data.mode = opal::LINEAR_AND_ANGULAR_MODE; ! data.linearKd = 1.5; ! data.linearKs = 15; //data.angularKd = 0.3; //data.angularKs = 5; |
|
From: tylerstreeter <tyl...@us...> - 2005-04-12 06:47:23
|
Update of /cvsroot/opal/opal In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4177 Modified Files: changelog.txt todo.txt Log Message: added a rotational stability fix for ODESolids Index: changelog.txt =================================================================== RCS file: /cvsroot/opal/opal/changelog.txt,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** changelog.txt 30 Mar 2005 23:26:21 -0000 1.14 --- changelog.txt 12 Apr 2005 06:46:41 -0000 1.15 *************** *** 9,12 **** --- 9,13 ---- * Overhauled XML loading system; now all Solid, Shape, Joint, Motor, and Sensor data can be loaded from OPAL XML files * Joints have a parameter to allow contacts between connected Solids or not + * Increased stability for freely-spinning objects with non-symmetric inertia tensors * Numerous API changes * Various bug fixes Index: todo.txt =================================================================== RCS file: /cvsroot/opal/opal/todo.txt,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** todo.txt 8 Apr 2005 20:46:01 -0000 1.71 --- todo.txt 12 Apr 2005 06:46:42 -0000 1.72 *************** *** 46,55 **** * add ogre plugins.cfg and resources.cfg files to samples for non-win32 For Version 0.4.0 ================= - * implement fast rotation instability fix idea for ode, posted on ode message board; remove max velocity caps? (note that novodex uses only max angular velocity) - - alternate solution: just use an aggressive max angular vel and/or angular damping, like novodex does - * private constructors for opal-managed objects? --- 46,55 ---- * add ogre plugins.cfg and resources.cfg files to samples for non-win32 + * announce opal 0.3.0 to ode community + - mention freely-spinning stability fix to ode community after initial announcement + For Version 0.4.0 ================= * private constructors for opal-managed objects? |