Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int i;
- for (i = 0; i < out.numberofpoints; i++)
- {
- Ogre::Vector3 ray_pos = pos; // camera position;
- Ogre::Vector3 ray_dir = (Ogre::Vector3 (out.pointlist[(i*3)], out.pointlist[(3*i)+1], out.pointlist[(3*i)+2]) - pos).normalisedCopy(); // vertex - camea pos ;
- Ogre::Ray ray;
- ray.setOrigin(Ogre::Vector3( ray_pos.x, ray_pos.y, ray_pos.z));
- ray.setDirection(Ogre::Vector3(ray_dir.x, ray_dir.y, ray_dir.z));
- Ogre::Vector3 result;
- unsigned int u1;
- unsigned int u2;
- unsigned int u3;
- bool rayCastResult = RaycastFromPoint(ray.getOrigin(), ray.getDirection(), result, u1, u2, u3);
- if ( rayCastResult )
- {
- Ogre::Vector3 targetVertex(out.pointlist[(i*3)], out.pointlist[(3*i)+1], out.pointlist[(3*i)+2]);
- float distanceTargetFocus = targetVertex.squaredDistance(pos);
- float distanceIntersectionFocus = result.squaredDistance(pos);
- if(abs(distanceTargetFocus) >= abs(distanceIntersectionFocus))
- {
- if ( u1 != -1 && u2 != -1 && u3 != -1)
- {
- std::cout << "Remove index "<< "u1 ==> " <<u1 << "u2 ==>"<<u2<<"u3 ==> "<<u3<< std::endl;
- // remove indices
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement