I have several positions (say A,B,C,..) and I know their coordinates (3d). From each point, if a certain ray is passing in a way to converge them at a given (known) point (say O). This point O is lie on a known planar surface (dark plane).
Now, my problem is to know, mutual locations and inter-relationship between each point with the plane. For example, I want to know that ray DO come first and then BO, AO, ..etc. Once I know the mutual location of them, then I want to know angle between each adjacent rays as it is my main intention. According to example case, I need to know DOB, BOA, AOC, COE, EOF. Additionally, I need to know angle between first ray and plane and as well as last ray and plane (as these DO & FO are next to plane). (I want to know only adjacent angles and not the all possible angles, therefore, the correct adjacency or point order is needed to avoid unnecessary computations). I guess, you can understand my question.
NOTE: A,B,C,...,O these points are not lie on a single plane.
n is normal vector of the plane
Please, show me a way to do this without computing unnecessary computations as I want to implement this in c++.