Create is when your vehicle is actually "created" in the world and ready to go, and, as such, T.actor won't be valid until after you call __super::create(obj);
And for the wheels, do this instead...
Code:
wheel[0].createL(T.actor,Matrix(Vec( 1,-0.5, 1.5)).rotateY(PI_2),wp); // left -front
Matrix(Vec( 1,-0.5, 1.5)) is the same as Matrix().setPos(Vec( 1,-0.5, 1.5)).
Also, anytime you call a Matrix method starting with "set", the matrix is reset, so Matrix().setPos(Vec( 1,-0.5, 1.5)).setRotateY(PI_2) would ignore the positioning altogether.
If Matrix(Vec( 1,-0.5, 1.5)).rotateY(PI_2) doesn't work, you could also try Matrix().setRotateY(PI_2).move(Vec( 1,-0.5, 1.5)).
PI_2 is 90 degrees in radians. rotateY() uses radians, not degrees. You could also use .rotateY(DegToRad(90)) if you don't want to use PI_2.