|
tilt + roll + pan using VECTOR*
#428333
08/24/13 19:23
08/24/13 19:23
|
Joined: Mar 2005
Posts: 514 Brazil
Carloos
OP
User
|
OP
User
Joined: Mar 2005
Posts: 514
Brazil
|
Hi there I´m translating a Project to Lite-C, and I´m founding this problem : Before, I was able to use var(3) to calc tilt, pan and roll. Now, I´m not being able to do it anymore. The following code :
var CamFromWheel = 200;
var CamFromGround = 45;
var CamCarAxis = -4.5;
function move_camera()
{
VECTOR* Temp[3];
vec_zero(Temp);
VECTOR* cam_ang[3];
vec_zero(cam_ang);
var cam_dist = 0;
camera.arc = 72;
camera.clip_near = 0;
camera.clip_far = 7000;
cam_ang[0] = Race_Car.tilt;
cam_ang[1] = Race_Car.roll + 120;
cam_ang[2] = Race_Car.pan - 180;
cam_dist = clamp(cam_dist,CamFromWheel,2000);
camera.x = (((Race_Car.x ) + cos(cam_ang[2]))*(cam_dist*cos(cam_ang[0])));
camera.y = ((Race_Car.y + sin(cam_ang[2]))*((cam_dist*cos(cam_ang[0])))) ;
camera.z = (((Race_Car.z + CamFromGround)+ sin(cam_ang[0]) ) * cam_dist);
vec_set(Temp[0],Race_Car.x);
vec_sub(Temp[0],camera.x);
vec_to_angle(camera.pan,Temp[0]);
camera.tilt = (CamCarAxis);
camera.roll = Race_Car.roll;
}
Returns the error : Can´t convert : CONV:POINTER::DOUBLE at :
camera.x = (((Race_Car.x ) + cos(cam_ang[2]))*(cam_dist*cos(cam_ang[0])));
Its not clear to me if I can use pan,tilt & roll in a vector. I searched the manual but didnt find a solution. Can someone point me if I´m loosing something ? After convert lots of lines I cané think clear anymore Fórum Admin : sorry is this in´t the place to ask this. Thankyou all.
Last edited by Carloos; 08/24/13 19:26.
|
|
|
Re: tilt + roll + pan using VECTOR*
[Re: Carloos]
#428334
08/24/13 19:28
08/24/13 19:28
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
VECTOR* cam_ang[3];
[...]
cam_ang[0] = Race_Car.tilt; cam_ang[1] = Race_Car.roll + 120; cam_ang[2] = Race_Car.pan - 180;
how should this work?
1. You're creating an array of 3 VECTOR pointers 2. You're using them without setting them to actual vectors or allocating memory before 3. 'cam_ang[0] = Race_Car.tilt;' -> 'vector-pointer = var'... what exactly do you want to do here?
Last edited by Kartoffel; 08/24/13 19:32.
POTATO-MAN saves the day! - Random
|
|
|
Re: tilt + roll + pan using VECTOR*
[Re: Carloos]
#428337
08/24/13 19:33
08/24/13 19:33
|
Joined: Mar 2005
Posts: 514 Brazil
Carloos
OP
User
|
OP
User
Joined: Mar 2005
Posts: 514
Brazil
|
this was what I had in c-script, and it worked :
function move_camera()
{
var cam_ang[1];
var cam_dist = 0;
camera.arc = 72;
camera.clip_near = 0;
camera.clip_far = 7000;
cam_ang.tilt = Race_Car.tilt;
cam_ang.roll = Race_Car.roll + 120;
cam_ang.pan = Race_Car.pan - 180;
cam_dist = clamp(cam_dist.z,CamFromWheel,2000);// era 20
camera.x = ((((Race_Car.x ))+ cos(cam_ang.Pan)*(cam_dist*cos(cam_ang.tilt))));
camera.y = ((Race_Car.y + sin(cam_ang.Pan)*((cam_dist*cos(cam_ang.tilt))))) ;
camera.z = ((((Race_Car.z + CamFromGround)+ sin(cam_ang.tilt)*cam_dist)));
vec_set(temp,Race_Car.x);
vec_sub(temp,camera.x);
vec_to_angle(camera.pan,temp);
camera.tilt = (CamCarAxis);
camera.roll = Race_Car.roll;
}
Last edited by Carloos; 08/24/13 19:34.
|
|
|
Re: tilt + roll + pan using VECTOR*
[Re: Carloos]
#428338
08/24/13 19:35
08/24/13 19:35
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
var cam_ang[3];
cam_ang[0] = Race_Car.tilt; cam_ang[1] = Race_Car.roll + 120; cam_ang[2] = Race_Car.pan - 180;
or
VECTOR cam_ang;
cam_ang.x = Race_Car.pan - 180; cam_ang.y = Race_Car.tilt; cam_ang.z = Race_Car.roll + 120;
Last edited by Kartoffel; 08/24/13 19:41. Reason: swapped y and z
POTATO-MAN saves the day! - Random
|
|
|
Re: tilt + roll + pan using VECTOR*
[Re: Kartoffel]
#428339
08/24/13 19:41
08/24/13 19:41
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
...wait, actually there's ANGLE ._.' so it would be:
ANGLE cam_ang;
cam_ang.pan = Race_Car.pan - 180;
cam_ang.tilt = Race_Car.tilt;
cam_ang.roll = Race_Car.roll + 120;
POTATO-MAN saves the day! - Random
|
|
|
|