Problem with ScreenToWorld Conversion
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 10:11, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.012
Platform: Windows ;
Language(s) : C++ ;---------
Hi,
When using the GeRayCollider Library and I determine a Ray->Edge Detection I am using the current Mouse Position that I got from the &msg BaseContainer in the Mouse Input Method and Convert the Screen Coords into World Coords. But it seems I am doing something wrong, because when I rotate the editor view the point I have set is actually not on my edge but anywhere in the space.
Col = bd->SW(Vector(mx,my,0));
is what I am using to convert the point to world space.
Any idea why it is wrong?
thanks -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 10:14, xxxxxxxx wrote:
I guess I got it. Now I´m using the distance instead of 0 for Col.z.
but if somebody has a better idea? I´m open. -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 10:44, xxxxxxxx wrote:
Hmm, it is still not exact enough Does anybody know how to get the exact ScreenToWorld conversion?
Thanks in advance -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 11:40, xxxxxxxx wrote:
Could you define what you mean by "ScreenToWorld conversion" and describe how BaseView::SW() fails to be exact by this definition?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 12:30, xxxxxxxx wrote:
The problem is that when I am near an edge with the mouse pointer in screen space, then the barycentric coords get close to 0.0. Ok so I am checking if they are smaller than 0.02. If so I store the position of the mouse pointer in i.e. Col = bd->SW(Vector(mx,my,res.distance));
Looking into the editor view I can see that the XORLine is drawn (the way I want it) on the edge. But when I rotate the view I can actually see that the XORLine (or rather the World Coordinates that I got from the conversion) is not drawn on the edge but under the edge or beside it or or or. And it´s not close enough to the edge! That is the problem. If the barrycoords are so close and I am right over the edge with the mouse, why is the world position after conversion not on the edge or at least pretty close to it? With these Coords of Col I can´t do nothing. They are not exact enough. D
That is my problem. Any ideas?
Thanks Samir -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 12/11/2002 at 14:01, xxxxxxxx wrote:
Quote: Originally posted by 3D Designer on 12 November 2002
>
> * * *
>
> Col = bd->SW(Vector(mx,my,res.distance));
Use the real position instead: "obj->GetMg() * res.hitpos". -
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 13/11/2002 at 00:24, xxxxxxxx wrote:
Oh my god, why didn´t that come to MY mind? You´re the man!
Thanks very much Mikael. You saved my a.... further developement.
Best
Samir