Hi,
I would need to get access to the max/min values of the translation values returned.
I have noticed that those values change if the user change the speed in the configuration panel.
So is there a way of getting access to it? I need to have a normalized translation (-1.0 / 1.0) so I need this range value....
thanks for any help!
Getting translation range
Moderator: Moderators
Hi gjaegy,
It depends on how much work you want to do.
Here are some options:
1) Use HID or DirectInput. That (currently) takes the driver out of the path and anything the user does in the 3Dx control panel is ignored.
2) You could create a config file for your application that has a predefined data range and has sliders that don't do anything. Of course, users can switch to a different config file.
3) You could use the Sync API to undo anything the users do in the GUI. That is likely to frustrate and anger your users.
4) Or, you could just clamp the data values you receive. This is my suggestion. That allows your users to change the slope of the data to their preference but not overrun whatever internal data range you are guarding.
It is important to know that the device is NOT used in a +/- 1 range like a joystick. The data becomes very ragged along the edges from device to device. It is also neither good for the device nor the user's hands to make them use it through its full physical travel. The normal operating range of these devices is in a sweet spot of about 75% of it's physical range. Singularities happen outside that range. For example, if they push fully in one direction rotations are not possible.
Jim
3Dx Software Development
It depends on how much work you want to do.
Here are some options:
1) Use HID or DirectInput. That (currently) takes the driver out of the path and anything the user does in the 3Dx control panel is ignored.
2) You could create a config file for your application that has a predefined data range and has sliders that don't do anything. Of course, users can switch to a different config file.
3) You could use the Sync API to undo anything the users do in the GUI. That is likely to frustrate and anger your users.
4) Or, you could just clamp the data values you receive. This is my suggestion. That allows your users to change the slope of the data to their preference but not overrun whatever internal data range you are guarding.
It is important to know that the device is NOT used in a +/- 1 range like a joystick. The data becomes very ragged along the edges from device to device. It is also neither good for the device nor the user's hands to make them use it through its full physical travel. The normal operating range of these devices is in a sweet spot of about 75% of it's physical range. Singularities happen outside that range. For example, if they push fully in one direction rotations are not possible.
Jim
3Dx Software Development
Hi,
thanks for the answer. Anyway I don't think any of these solutions is appliable.
Would it be a big deal for you to add a "range" member to the sensor object? I guess no, and from what I have seen in the forum, I am not the only one interested in that feature...
Thanks,
Regards,
Gregory Jaegy
thanks for the answer. Anyway I don't think any of these solutions is appliable.
Too much work1) Use HID or DirectInput. That (currently) takes the driver out of the path and anything the user does in the 3Dx control panel is ignored.
I don't want the customer to have to do something special2) You could create a config file for your application that has a predefined data range and has sliders that don't do anything. Of course, users can switch to a different config file.
What is that ?3) You could use the Sync API to undo anything the users do in the GUI. That is likely to frustrate and anger your users.
as the range changes are huge between the "slow" and "fast" settings, clamping the values would require any to define a limit value, which could be 10 when speed is set to slow or 1000 when set to fast.4) Or, you could just clamp the data values you receive. This is my suggestion. That allows your users to change the slope of the data to their preference but not overrun whatever internal data range you are guarding.
Would it be a big deal for you to add a "range" member to the sensor object? I guess no, and from what I have seen in the forum, I am not the only one interested in that feature...
Thanks,
Regards,
Gregory Jaegy
Hmmm. I'm not sure how a range method could work. The user can change the range behind your back at any time. You would have to look up the range constantly.
If you make a config file, you can control the range of the sliders. The config file will get loaded automatically when your application runs.
The Sync API is part of the previous SDK. I see you are using the COM SDK. It doesn't apply.
Jim
If you make a config file, you can control the range of the sliders. The config file will get loaded automatically when your application runs.
The Sync API is part of the previous SDK. I see you are using the COM SDK. It doesn't apply.
Jim
Yes, I am using the new COM interface now.
I don't want the customer to have to create a profile for the application, as it may be a complicated step for some of them (even if it seems very simple for you and me/IT professionals/young people).
As I said, I absolutely need to know the range. Checking this range each frame is not a problem for me, it is what I need to do anyway.
Just get the translation and divide by range -> normalized value.
Actually I need both the normal translation values for the main camera move, and the normalized one for an additional feature which should not depend on any speed settings, so I think the profile is not the solution.
Any hope to have this added in the next version? Is that such a big issue for you to have this range readable by the developer? I am sure you have a floating point value that you scale the sensor translation values with, before sending them to the COM component... so please just give us the ability to read it !
Thanks for your help.
Cheers,
Gregory Jaegy
I don't want the customer to have to create a profile for the application, as it may be a complicated step for some of them (even if it seems very simple for you and me/IT professionals/young people).
As I said, I absolutely need to know the range. Checking this range each frame is not a problem for me, it is what I need to do anyway.
Just get the translation and divide by range -> normalized value.
Actually I need both the normal translation values for the main camera move, and the normalized one for an additional feature which should not depend on any speed settings, so I think the profile is not the solution.
Any hope to have this added in the next version? Is that such a big issue for you to have this range readable by the developer? I am sure you have a floating point value that you scale the sensor translation values with, before sending them to the COM component... so please just give us the ability to read it !
Thanks for your help.
Cheers,
Gregory Jaegy