How to get gp_Dir orthogonal to two gp_Dirs in OpenCASCADE
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.