Hi,
thank you both for your replies.
Gerrit Voss wrote:
>>> I'm now switching to OpenSG 2.0 and the ComplexSceneManager. What would be
>>> a good strategy to use a custom device to move around in a scene? Should I
>>> use the glut functions again? Or is there a better way? If so, where would
>>> I find the documentation?
>> Unfortunately, I don't understand the details of CSM myself, perhaps
>> Gerrit (cc'ed) can give you some hints on how to extend or configure it
>> so that it works with your device.
>
> I have an idea, give me a second to get a sample implementation. Short
> question, what kind of data are you receiving ?
I'm using two optical mouse infrared sensors which are attached to a
programmable I/O board (Arduino). The Arduino board is attached to the
USB bus. I'm receiving information from four coordinates (x and y from
each sensor), but I'm only using two of them (x from sensor 1 and y from
sensor 2). Thus, the two sensors combine to a single "virtual mouse".
I'm using libserial to read out the USB bus. In brief, here is the
relevant code snippet:
void read_arduino(boost::shared_ptr<SerialPort> dev_file,
std::valarray<int>& x1, std::valarray<int>& y1,
std::valarray<int>& x2, std::valarray<int>& y2)
{
std::string l = dev_file->ReadLine();
/* assert that the string contains 6 bytes (X1, Y1, X2, Y2, '\r',
'\n') */
if (l.length() == 6) {
/* Read 4 bytes, convert to integers */
x1[1] = int(l[0]); /* X Sensor 1 */
y1[1] = int(l[1]); /* Y Sensor 1 */
x2[1] = int(l[2]); /* X Sensor 2 */
y2[1] = int(l[3]); /* Y Sensor 2 */
/* store coordinates for next plot */
x1[0]=x1[1];
y1[0]=y1[1];
x2[0]=x2[1];
y2[0]=y2[1];
}
}
I could easily change the output of the I/O board if that would make
integration into OpenSG easier. I've started to modify the
OSGCSMTrackball class so that it reads the custom device rather than the
regular mouse in OSGCSMTrackball::changed. However, the problem is that
OSGCSMTrackball::changed is only called upon events from the regular
mouse, but not when the custom device is active.
I greatly appreciate your help,
Christoph
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users