float3 rotateVectorAboutX(float angle, float3 vec)
{
angle = radians(angle);
float3x3 rotationMatrix = { float3(1.0,0.0,0.0),
float3(0.0,cos(angle),-sin(angle)),
float3(0.0,sin(angle),cos(angle)) };
return mul(vec, rotationMatrix);
}
float3 rotateVectorAboutY(float angle, float3 vec)
{
angle = radians(angle);
float3x3 rotationMatrix = { float3(cos(angle),0.0,sin(angle)),
float3(0.0,1.0,0.0),
float3(-sin(angle),0.0,cos(angle)) };
return mul(vec, rotationMatrix);
}
float3 rotateVectorAboutZ(float angle, float3 vec)
{
angle = radians(angle);
float3x3 rotationMatrix = { float3(cos(angle),-sin(angle),0.0),
float3(sin(angle),cos(angle),0.0),
float3(0.0,0.0,1.0) };
return mul(vec, rotationMatrix);
}