Now I can see I am not only one having that problem
Sent from my iPhone
On May 4, 2010, at 3:49 AM, devlander <[email protected]> wrote:
=================================================================
Please forget about my previous post (many copy&past mistakes in the
code snippet)
=================================================================
Here is my code (corrected):
private function _pickMesh(mesh:Mesh):PickingResult {
var pr:PickingResult = new PickingResult(); // Store picking
data here
var rayPos:Number3D = view3D.camera.unproject(view3D.mouseX,
view3D.mouseY);
var rayDir:Number3D = new Number3D();
rayDir.x = rayPos.x;
rayDir.y = rayPos.y;
rayDir.z = rayPos.z;
rayDir.normalize();
rayPos.add(rayPos, view3D.camera.position);
var ray:Ray = new Ray();
var pickedPoint:Number3D;
for each (var face:Face in mesh.faces) {
pickedPoint = ray.getIntersect(rayPos , rayDir ,
face.v0.position , face.v1.position , face.v2.position);
if (pickedPoint!=null) {
pr.hasHit = true;
pr.point = pickedPoint;
pr.face = face;
break;
}
}
pr.mesh = mesh;
return pr;
}
The problem is I always get null.
Note: Since my mesh is a child of an Objectcontainer3D element I have
called mesh.applyRotations()
to make sure all the mesh faces are computed relative to the world
coord system.
I suspect there is a problem in the computation of the ray params
(position or direction).
Fabrice can you confirm that the signature of the Ray.getIntersect
method is as follow (no info is given in the class):
p0: ray direction (or is it position ?)
p1: ray position [in world coord system] (or is it direction?)
v0: face.v0.position [in global world coord system]
v1: face.v1.position [in global world coord system]
v2: face.v2.position [in global world coord system]
Thanks for any help on this.
On May 4, 2:33 am, devlander <[email protected]> wrote:
Hello, i am having the exact same problem here.
I am trying to determine the intersection on a 3D object at a given
viewport location (view3D.mouseX, view3D.mouseY):
Here is my code:
private function _pickMesh(mesh:Mesh):PickingResult {
var pr:PickingResult = new PickingResult(); // Store
picking data
here
var rayPos:Number3D = view3D.camera.unproject(view3D.mouseX,
view3D.mouseY);
// info retreived from here
//http://www.mail-archive.com/[email protected]/msg09318.html
var rayDir:Number3D = new Number3D();
rayDir.x = pMouse.x;
rayDir.y = pMouse.y;
rayDir.z = pMouse.z;
rayDir.normalize();
rayPos.add(rayPos, _view3D.camera.position);
var ray:Ray = new Ray();
var pickedPoint:Number3D;
for each (var face:Face in mesh.faces) {
pickedPoint = ray.getIntersect(rayPos , rayDir ,
face.v0.position ,
face.v1.position , face.v2.position);
if (pickedPoint!=null) {
pr.hasHit = true;
pr.point = pickedPoint;
pr.face = face;
break;
}
}
pr.mesh = mesh;
return pr;
}
The problem is I always get null.
Note: Since my mesh is a child of an Objectcontainer3D element I have
called mesh.applyRotations()
to make sure all the mesh faces are computed relative to the world
coord system.
I suspect there is a problem in the computation of the ray params
(position or direction).
Fabrice can you confirm that the signature of the Ray.getIntersect
method is as follow (no info is given in the class):
p0: ray direction (or is it position ?)
p1: ray position [in world coord system] (or is it direction?)
v0: face.v0.position [in global world coord system]
v1: face.v0.position [in global world coord system]
v2: face.v0.position [in global world coord system]
Thanks
On May 4, 12:17 am, Michael Iv <[email protected]> wrote:
Fabrice i am trying it already for 4 hours with Sphere , but it
returns null
most of the time
///// it runs on enter frame////////////////
for(var i:int=0;i<_sf.faces.length;++
i){
trace(_ray.getIntersect(_ray.orig,_ray.dir,_sf.faces
[i].v0.position,_sf.faces[i].v1.position,_sf.faces[i].v2.position));
}
and basi
On Tue, May 4, 2010 at 1:15 AM, Fabrice3D <[email protected]>
wrote:
dir, origin, v0, v1, v2
to check if a ray hits a triangle
Fabrice
On May 3, 2010, at 9:43 PM, Michael Iv wrote:
Someone can tell me what are* v0,v1,v2* in* Ray.getIntersect
(p0:Number3D,
p1:Number3D, v0:Number3D, v1:Number3D, v2:Number3D):Number3D* ???
Just can't find any example explaining these
Thanks!
--
Michael Ivanov ,Programmer
Neurotech Solutions Ltd.
Flex|Air |3D|Unity|
www.neurotechresearch.com
Tel:054-4962254
[email protected]
[email protected]
--
Michael Ivanov ,Programmer
Neurotech Solutions Ltd.
Flex|Air |3D|Unity|www.neurotechresearch.com
Tel:054-4962254
[email protected]
[email protected]