Hi i have some problems on ray casting, now i have 1 node player and it has +1 geom that gives me direction(basically it fly at face of player node)
Now when i do
CollisionResults results = new CollisionResults();
Vector3f origin=player.getWorldTranslation();
Vector3f dir = new Vector3f( geomDir.getWorldTranslation().getX()-(player.getWorldTranslation().getX()-
geomDir.getWorldTranslation().getX())*2,
geomDir.getWorldTranslation().getY(),geomDir.getWorldTranslation().getZ()-
(player.getWorldTranslation().getZ()- geomDir.getWorldTranslation().getZ())*2);
Ray ray = new Ray(origin, dir);
refer.collideWith(ray, results);
System.out.println("collision NOT"+" origin"+origin + " dir:"+dir+" refer"+refer.getWorldTranslation());
if(results.getClosestCollision()==null){
System.out.println("collision!!!!!!!!!!!!!!!!");
channel.setAnim("Walk");
}else{//push back a bit
System.out.println("collision HERE!!"+" origin"+origin + " dir:"+dir+" refer"+refer.getWorldTranslation());
System.out.println(results.getClosestCollision().getContactPoint());
player.setLocalTranslation(player.getLocalTranslation().getX()-
Math.abs(player.getWorldTranslation().getX()- geomDir.getWorldTranslation().getX())*4,
player.getLocalTranslation().getY(),
player.getLocalTranslation().getZ()-Math.abs(player.getWorldTranslation().getZ()-
geomDir.getWorldTranslation().getZ())*4);
results.clear();
}
and i get this result(its a system.out)
collision NOT origin(495.41574, 0.100001335, 513.5365) dir:(495.4239, 0.100001335, 513.8364) refer(500.0, 1.0, 520.0)
collision HERE!! origin(495.41574, 0.100001335, 513.5365) dir:(495.4239, 0.100001335, 513.8364) refer(500.0, 1.0, 520.0)
(500.68347, 0.10106462, 519.0)
refer its a geom 1.3.1
Box box = new Box(1,1,1);
refer = new Geometry("Item", box);
refer.setLocalScale(1, 3, 1);
how is this possible,it should not collide,even on print out it say it should not.
What am i missing?