[ODE] .NET bindings

Terry L. Triplett c0d3g33k at gmail.com
Wed Sep 20 07:12:57 MST 2006


Thanks, that's helpful information.

On 9/20/06, Jason Perkins <starkos at gmail.com> wrote:
>
> On 9/20/06, Terry L. Triplett <c0d3g33k at gmail.com> wrote:
> > Now that the surprise has worn off, it occurred to me that other than
> the
> > revelation that .NET bindings were in the works, being (for now)
> essentially
> > a one-man show, folks know little or nothing about them.  It would be
> > helpful to have a bit more information to place these bindings into
> context.
>
> -------------------
> README.txt
> -------------------
> Ode.NET - .NET bindings for ODE
> Jason Perkins (starkos at 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.cs` and `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)
>
>
> ---------------------------------------------------------------------
> USAGE
> ---------------------------------------------------------------------
>
> I have tried to keep things as close to original C API as possible,
> 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 TestBoxStack.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 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://q12.org/pipermail/ode/attachments/20060920/d6be3d14/attachment.htm


More information about the ODE mailing list