Wrecked Games

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're just that awesome.

Author Topic: 3DxWare support  (Read 5211 times)

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
3DxWare support
« on: April 18, 2007, 12:01:58 PM »

Hello,

I am trying to develop an extra (at this moment only for Win32) for 3Dconnexion/3DxWare Sensors. More info about these devices can be found at http://www.3dconnexion.com.

I do have a choice here however for which  would like to have some advice. Since March this year a COM interface is provided for developing software for 3D space sensors. I am not really acquainted with COM (this is the first time I encounter this actually) and there might be some issues for building an extra (I read one will need to have the driver installed or use regsv32 with a specific .dll) although this might be caught by #defines, as is done with the WiiMote and LIRC.
There is also still the possibilty to use the old C interface, though I don't know how long support for this will last.

Writing this I feel COM is prefered, since future releases by 3Dconnexion might be supporting only this. Still I would like to ask some advice, especially if there is some reason against using COM. So if you know any reason...

Cheers!
Jorrit

NB.
There are SDK's for Linux as well a MacOS, so this could be developed cross-platform in the end.
Logged

KungFooMasta

  • Regular
  • *
  • Karma: +0/-0
  • Posts: 47
    • View Profile
3DxWare support
« Reply #1 on: April 18, 2007, 12:21:59 PM »

Wow, those are pretty cool devices!  I guess I like the space explorer the best, as far as looking at it goes, haha.

Curious, are you planning on using this for a tool or game?

KungFooMasta
Logged

OvermindDL1

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 288
    • View Profile
    • http://www.overminddl1.com/forum/
3DxWare support
« Reply #2 on: April 18, 2007, 05:22:35 PM »

COM is not cross platform, C-interfaces are.  COM is also one of the most horrible things to program for.  Good luck if you plan to do it that way...  Even Microsoft dropped it in their new things (in favour of .NET interfaces irritatingly).
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
3DxWare support
« Reply #3 on: April 18, 2007, 07:10:32 PM »

Yeah, I agree that COM is horible  :x

If possible, at all costs, use the most portable C interface :) Though, I don't understand why they would drop support for C API in favor of COM. Anyway, device does look cool, and I'd definitly accept a patch to the main OIS branch that added a define for the device (like WiMote & LIRC) ;)
Logged

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
3DxWare support
« Reply #4 on: April 19, 2007, 01:49:23 AM »

I understood the COM interface would replace the old C interface. The old C SDK is not available anymore for download. I have started with COM yesterday evening and although it went suprisingly well I encountered some compile error (about events, won't bother you with details). I have asked some questions regarding this (COM/C and compiler errors).

The C interface I mentioned is Windows only, both Linux and MacOS have other C interfaces for (afaik, although my research has been very superficial on this matter) the same functionality, so concrete implementations would be needed anyway for each platform. Would this influence any choice or is COM still horrible anyway ;)?

I would like to use this interface to mimic a 3D input device used in my application I am developing using OGRE. And I thought, after a discussion with another OGRE user, that it would be benificial if more people could use this.
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
3DxWare support
« Reply #5 on: April 19, 2007, 07:32:12 AM »

Well, if they have a separate API for Linux and Mac that is C, and the prefferred Window's one is COM, than COM is probably your best bet.
Logged

OvermindDL1

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 288
    • View Profile
    • http://www.overminddl1.com/forum/
3DxWare support
« Reply #6 on: April 22, 2007, 11:29:47 PM »

Why would there be different ones for each platform though?  That is just odd...
Logged

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
3DxWare support
« Reply #7 on: April 23, 2007, 10:24:36 AM »

I believe so too...For Linux the SDK seems quite old, for MacOS, I can't open .dmg files (tried some solutions) since I don't have access to this.

Maybe someone is willing to download this and convert it to something readable for Win32?
Logged

OvermindDL1

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 288
    • View Profile
    • http://www.overminddl1.com/forum/
3DxWare support
« Reply #8 on: April 23, 2007, 10:42:36 AM »

Kind of sounds like they fired their real programmers and hired a few college idiots who do not know real code...
Logged

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
3DxWare support
« Reply #9 on: April 24, 2007, 10:04:30 AM »

No offence taken (though still in 'college' ;))... I don't have such a strong opinion though, but maybe that is my lack of experience  :oops:  I have asked for the reasons of the rather old Linux SDK, am waiting for response.

I have managed to read the MacOS code and it seems to be up-to-date... using Carbon or Cocoa, of which I have absolutely no knowledge.
Is it advisable to define an abstract base class for device and FactoryCreator, which I can test by creating a concrete Win32 implementation?

And is it better to use the COM event system for buffered input or should I use the same idea used for the WiiMote (polling the device using a seperate thread)?
Logged

OvermindDL1

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 288
    • View Profile
    • http://www.overminddl1.com/forum/
3DxWare support
« Reply #10 on: April 24, 2007, 02:10:53 PM »

No offence. :)
Just my experience with programmers, there are those who have done it their whole lives and know it better then they know their primary speaking language.  Then there are those who came out of college,  which may know the language, don't seem to ever know how to debug, how to optimise, etc... etc...  Just horror to work with...

Wiimote has to be polled due to how it works; generally though buffering is better, I've yet to see a case it is not.
Logged

gjaegy

  • Regular
  • *
  • Karma: +0/-0
  • Posts: 29
    • View Profile
3DxWare support
« Reply #11 on: April 27, 2007, 07:13:11 AM »

I had a similar with some people some time ago. Have a look at:

http://www.3dconnexion.com/forum/viewtopic.php?t=676

and

http://www.3dconnexion.com/forum/viewtopic.php?t=739

it may help you.

cheers,
Gregory
Logged

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
3DxWare support
« Reply #12 on: May 01, 2007, 10:37:08 AM »

:) Thnx!
Logged

robagar

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 5
    • View Profile
Re: 3DxWare support
« Reply #13 on: October 26, 2007, 04:39:05 PM »

apologies for bumping an old thread - jorrit, did you get this working on windows?
Logged

jorrit5477

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 11
    • View Profile
Re: 3DxWare support
« Reply #14 on: October 28, 2007, 05:49:23 AM »

No apologies needed... I had a very good start, but forgot I was working in my local CVS version of OIS, and unfortunately deleted the code I had when cleaning my old PC... :'(
I have plans for an Ogre application for which I want to use a 3Dconnexion device for world navigation, so probably I start all over again... I remember development was quite easy (though win32 only for me), fitting it in into OIS was the biggest part...
Logged