OpenSimMirror/libraries/ode-0.9/contrib/Ode.NET
dan miller d92d17ef7f windows: ODE binaries and build patches 2007-10-19 05:57:03 +00:00
..
Drawstuff
Ode
Tests
Ode.NET.sln windows: ODE binaries and build patches 2007-10-19 05:57:03 +00:00
README.TXT
premake.lua

README.TXT

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

Ode.NET - .NET bindings for ODE
Jason Perkins (starkos@gmail.com)

 THIS IS A WORK IN PROGRESS! I'm not done yet!
 

--------------------------------------------------------------------- 
 INSTALLATION
--------------------------------------------------------------------- 

 Note that this binding uses a C# 2.0 feature (the
 UnmanagedFunctionPointer attribute). You will need to use
 Visual Studio 2005 (C# Express is fine) or Mono's gmcs
 compiler.
 
 Start by getting or building ODE as a shared library (DLL).
 
 The simplest way to build the bindings is probably to create a 
 new library assembly in your tool of choice and drop in the files
 Ode/Ode.cs and Ode/AssemblyInfo.cs. Define the symbol`dDOUBLE` if 
 you used double-precision math in your ode.dll. Build, done.
 
 For testing purposes, I have also created bindings for the 
 Drawstuff library and a C# version of the BoxStack demo. You can
 throw all of these files into a console executable and run it to
 see the demo.
 
 If you happen to have Premake installed (http://premake.sf.net/),
 you can generate build scripts for the library with:
 
  premake --target (toolset)                 # for single precision
  premake --with-doubles --target (toolset)  # for double precision

 To build the test application too, use:
 
  premake --with-tests --target (toolset)
  
 To build with Mono, you must add the --dotnet parameter to enable
 support .NET 2.0:
 
   premake --dotnet mono2 --target gnu
   

--------------------------------------------------------------------- 
 USAGE
--------------------------------------------------------------------- 

 I have tried to keep things as close to the original C API as I can,
 rather than forcing a class structure on everyone. Everything is
 contained within the `Ode.NET` namespace inside a static class
 named `d`. All ODE IDs are replaced with IntPtrs. A quick example:
 
   using Ode.NET;
   
   IntPtr world = d.WorldCreate();
   IntPtr body = d.BodyCreate(world);
 
 Take a look at Tests/BoxStack.cs for a more complete example.
 
 
--------------------------------------------------------------------- 
 KNOWN ISSUES
--------------------------------------------------------------------- 

 I'm not done yet, so many functions are still missing.

 It is not possible to implement dBodyGetPosition(), dBodyGetRotation(),
 etc. without resorting to unsafe code, which I was trying to avoid.
 This binding uses the .NET friendly dBodyCopyPosition(), 
 dBodyCopyRotation(), etc. instead. 
  
 Collision response (contact joints) do not work when built under 
 Mono as double-precision. I have not tried to track down why.