[Bf-committers] 6DOF devices branch -state of affairs
jlp at nerim.net
Tue Jun 12 22:32:00 CEST 2007
I committed working code (crudely) for Os X on the branch :
you will need the plug-in code too. As we cannot host it in svn, you
will find it here : http://jlp.nerim.net/dev/6dof/3Dcnxplug-mac.c
the plug-in goes in the following folder : $ROOT/intern/ghost/intern/
For weak linking to work you need to define the following variable in
shell and export it : MACOSX_DEPLOYMENT_TARGET=10.3
compile from $ROOT with :
cc -flat_namespace -bundle -bundle_loader ../build/darwin/bin/
blender.app/Contents/MacOS/blender intern/ghost/intern/3dcnx/*.c -I/
weak_framework 3DconnexionClient -lc -fpascal-strings -o spaceplug.plug
There is some fundamental changes from the original patch.
First, polling is gone and we use system events to signal blender new
values are available for NDOF.
the plug-in write values to a memory place furnished at init by main
code. (this could be packaged in the system event, but works ok like
This has 2 advantages, the plug-in use no more a callback which could
be seen as linking, and blend nicely with how other events are handled.
The API is so down to 3 functions. It is compatible also with how i
plan to do HID.
As the device returns ints values (as will any HID device), we use
that in GHOST instead of floats.
Floats are still used in ghostwinlay.c
I hope we will be able to do the same on windows and linux, it is
imho much better than polling.
Only non-camera 3Dview transform works now.
We will now have to define the features we want for this device :
* Only view and cameras, or also objects transforms ?
* if the latter, how we link with manipulators (same functionality) ?
* which centering modes make sense ?
* Dominant modes, translation, rotations only ?
* Can we find meaningful uses for the 2D views ?
* settings go in preferences or in a button pane (i would prefer the
More information about the Bf-committers