source: trunk/packages/vizservers/nanovis/vrmath/vrVector4f.cpp @ 2798

Last change on this file since 2798 was 2798, checked in by ldelgass, 12 years ago

Add emacs mode magic line in preparation for indentation cleanup

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1/* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2#include <vrmath/vrVector4f.h>
3#include <vrmath/vrMatrix4x4f.h>
4
5void vrVector4f::mult( const vrMatrix4x4f& mat, const vrVector4f& vector)
6{
7    const float* m = mat.get();
8    x = vector.x*m[0]+vector.y*m[4]+vector.z*m[8]+vector.w*m[12];
9        y = vector.x*m[1]+vector.y*m[5]+vector.z*m[9]+vector.w*m[13];
10        z = vector.x*m[2]+vector.y*m[6]+vector.z*m[10]+vector.w*m[14];
11        w = vector.x*m[3]+vector.y*m[7]+vector.z*m[11]+vector.w*m[15];   
12}
13
14void vrVector4f::mult(const vrMatrix4x4f& mat)
15{
16    vrVector4f vector(x, y, z, w);
17    const float* m = mat.get();
18
19        x = vector.x*m[0]+vector.y*m[4]+vector.z*m[8]+vector.w*m[12];
20        y = vector.x*m[1]+vector.y*m[5]+vector.z*m[9]+vector.w*m[13];
21        z = vector.x*m[2]+vector.y*m[6]+vector.z*m[10]+vector.w*m[14];
22        w = vector.x*m[3]+vector.y*m[7]+vector.z*m[11]+vector.w*m[15];   
23}
24
25void vrVector4f::transform(const vrVector4f& v, const vrMatrix4x4f& mat)
26{
27        vrVector4f vector(x, y, z, w);
28        const float* m = mat.get();
29        x = vector.x * m[0] + vector.y*m[4]+vector.z*m[8]+vector.w*m[12];
30    y = vector.x * m[1] + vector.y*m[5]+vector.z*m[9]+vector.w*m[13];
31    z = vector.x*m[2]+vector.y*m[6]+vector.z*m[10]+vector.w*m[14];
32    w = vector.x*m[3]+vector.y*m[7]+vector.z*m[11]+vector.w*m[15];
33
34}
Note: See TracBrowser for help on using the repository browser.