Wednesday, December 06, 2006

The small grey children, who stand by your bed and watch you while you're sleeping.

Sometimes we need pointers to pointers. Today was one of those days, it's used to pass back information. If you want to pass back info and just pass in a normal pointer, then a copy is made and the pointer outside of the function is never changed.

This is my *arghh* how does it work code.


#include "stdafx.h"
#include

using namespace std;

int b = 3;

void func(int ** i){
*i = &b;
}

int _tmain(int argc, _TCHAR* argv[])
{
int * p;
func(&p);
std::cout << (*p) << std::endl;
char a;
cin >> a;
return 0;
}


My second sweet snippet is cheap cheap openGL matrices.

This takes in an openGL matrix array, like you'd get from glLoadMatrix, then applies to a vector or vertex.


void TransformVector(float * m, Vector3d &v, Vector3d &d)
{
d.x = (m[0] * v.x) + (m[4] * v.y) + (m[8] * v.z) + m[12];
d.y = (m[1] * v.x) + (m[5] * v.y) + (m[9] * v.z) + m[13];
d.z = (m[2] * v.x) + (m[6] * v.y) + (m[10] * v.z) + m[14];
}
Post a Comment