예제 #1
0
// 4D
vec4f operator+(const vec4f& v1, const vec4f &v2)
{
	return vec4f(v1.peekx()+v2.peekx(),
                 v1.peeky()+v2.peeky(),
                 v1.peekz()+v2.peekz(),
				 v1.peekw()+v2.peekw());
}
예제 #2
0
vec4f operator*(const vec4f& v1, const float& k){
    return vec4f(v1.peekx()*k,
                 v1.peeky()*k,
                 v1.peekz()*k,
				 v1.peekw()*k);
}
예제 #3
0
void matmultvec4f(const float * matrix, const vec4f& v, vec4f& ssv)
{
	ssv.x() = matrix[0] * v.peekx() + matrix[4] * v.peeky() +  matrix[8] * v.peekz() + matrix[12] * v.peekw();
	ssv.y() = matrix[1] * v.peekx() + matrix[5] * v.peeky() +  matrix[9] * v.peekz() + matrix[13] * v.peekw();
	ssv.z() = matrix[2] * v.peekx() + matrix[6] * v.peeky() + matrix[10] * v.peekz() + matrix[14] * v.peekw();
	ssv.w() = matrix[3] * v.peekx() + matrix[7] * v.peeky() + matrix[11] * v.peekz() + matrix[15] * v.peekw();
}