|
User Documentation |
|
Centre for Vision, Speech & Signal Processing |
Comments:
-------------------------------------------------------------------------
-------------------------------------------------------------------------
This class is used to find the nearest point on a VTRingC triangulated
surface by means of a spatial partioning. It is not intended to be
optimal but is a simple implementation of a fast technique. It is
good when the points are close to the surface but becomes as bad
as an exhaustive search when points are far away.
The search is based on projecting all triangles into a plane
divided into squares. For each square a list holds the (integer)
number of each triangle that projects into it. When it is time to
search the query point is projected into a square and the search
expands to include larger neighbourhoods until it is not possible for
any unsearched squares to contain a closer point.
It is possible to convert the squares to hold lists of pointers
which would mean that the VTRingC could be modified without needing
the lookup table to be reconstructed from scratch
***NB*** The faces on the VTRingC are renumbered.
This code is based on a algorithm first used at Surrey by Adrian Hilton.
The method works well when the point is near the surface, but
can be very poor away from the surface
This should be improved to use planes other than the xy plane!
***NB*** This code uses the already established scheme for converting XY to rc of
the RangeC
The onbound flag is crude in the sense that it uses FaceOnBound; it should be
improved into a rigorous point on boundary test
-------------------------------------------------------------------------
********** VTNearC *****************************************************
-------------------------------------------------------------------------
Variables:
Methods:
- VTNearC()
-
Null Constructor
- VTNearC(VTRingC vtin,int nbins = 50,int tr = 0)
-
Constructor; Uses renumber faces on vt
- VTNearC(const VTNearC & b)
-
Copy Constructor
- VTNearC & operator=(const VTNearC & b)
-
- ~VTNearC()
-
Destructor
- VTNearestPointC ExhaustNearest(Vector3dC query)
-
find the nearest point on surface to query; exhaustive search
- VTNearestPointC Nearest(Vector3dC query)
-
find the nearest point on surface to query
- void MakeMap(char * vecfil,char * mapfil,BooleanT exhaust)
-
given a vectorset produce the mape file
|
Programmer:Andrew Stoddart, Documentation by CxxDoc: Tue Mar 20 10:48:08 2001
|