Does anyone know a handy way to take vectorA and split it into vectorAper and vectorApar, based on vectorB? vectorApar would represent the portion of vectorA on an axis parallel to vectorB, and vectorAper would be the portion on the plane perpendicular to vectorB.
You mean like this?
Should work:
/**
* VectorToSplit = vectorA
* RefernceVector = vectorB
* Out_Parallel = vectorApar
* Out_Perpendicular = vectorAper
*/
void SplitVectorIntoParallelAndPerpendicularComponents(FVector VectorToSplit, FVector ReferenceVector, FVector & Out_Parallel, FVector & Out_Perpendicular)
{
Out_Parallel = VectorToSplit.ProjectOnTo(ReferenceVector);
//vectorApar + vectorAper = vectorA
Out_Perpendicular = VectorToSplit - Out_Parallel;
}
Thanks. I never knew about ProjectOnTo.