I need a routine that handles picking of a triangle surface with a ray. The routine should build a kd tree for optimized performance. The raycast function should look like this:
RayCast:Int(p0:Float Ptr,p1:Float Ptr,position:Float Ptr,normal:Float Ptr,radius:Float=0.0,closestPoint:Int=True)
p0 - Pointer to 3 floats indicating the first ray point
p1 - second ray point
position - float pointer for writing picked position to
normal - float pointer for writing picked normal to
radius - option radius parameter
closestPoint - If True the closest point is returned. If False, the routine aborts as soon as the first hit is encountered.
This can be written in CPP or BMX, as long as I can import the source code into a BMX program. I know there is some code in MiniB3D to do this, but it is all tied in with the rest of the source code, and I don't have time to investigate it.
Please email me or post an estimate of how long it will take you to complete and how much you will charge. Thank you.
RayCast:Int(p0:Float Ptr,p1:Float Ptr,position:Float Ptr,normal:Float Ptr,radius:Float=0.0,closestPoint:Int=True)
p0 - Pointer to 3 floats indicating the first ray point
p1 - second ray point
position - float pointer for writing picked position to
normal - float pointer for writing picked normal to
radius - option radius parameter
closestPoint - If True the closest point is returned. If False, the routine aborts as soon as the first hit is encountered.
This can be written in CPP or BMX, as long as I can import the source code into a BMX program. I know there is some code in MiniB3D to do this, but it is all tied in with the rest of the source code, and I don't have time to investigate it.
Please email me or post an estimate of how long it will take you to complete and how much you will charge. Thank you.