OCCUtils provides convenience functions for computing the orthogonal direction to two directions:
#include <occutils/Direction.hxx> using namespace OCCUtils; gp_Dir dir1 = /* ... */; gp_Dir dir2 = /* ... */; gp_Dir orthogonalDirection = Direction::Orthogonal(dir1, dir2);
In case you can’t use OCCUtils, here’s the code to do it manually:
gp_Dir orthogonalDirection = dir1.Crossed(dir2);
The function used is called Crossed()
since the mathematical operation being used is the cross product between the two direction vectors.