comparing object to a growing set of other objects
Hello to all,
In my program I have a set of N vectors (I mean cartesian 3D vectors, represented by C++ vector containers of properly defined structs that I called vectorType). These 3D vectors are ordered according to their length, shortest first.
I start with the shortest, and then go over all of them keeping only those which have an angular separation with each of the already kept ones that is bigger than a certain value. This comparison part is what I do not know how to do.
In pseudocode (V are the 3D vectors, V.at(0) being the shortest:
The part I don't know how to write is the multiple if statements (or whatever is better) for a growing number of elements to compare with.
std::vector< vectorType > W;
W.push_back( V.at(0) );
for ( k=1; k<N; k++)
if ( angle(&V.at(k), &W.at(0)) > theta )
if ( angle(&V.at(k), &W.at(1)) > theta )
if ( angle(&V.at(k), &W.at(L)) > theta ) // L is current W.size()
then W.push_back( V.at(k) )
If anyone could give me a hint of how to do that, it would be most appreciated.