<< " Geocentric lat = " << l->get_sun_gc_lat() );
// update the sun light vector
- sgSetVec4( l->sun_vec(), l->get_sunpos().x(),
+ sgSetVec4( l->sun_vec().data(), l->get_sunpos().x(),
l->get_sunpos().y(), l->get_sunpos().z(), 0.0 );
- sgNormalizeVec4( l->sun_vec() );
- sgCopyVec4( l->sun_vec_inv(), l->sun_vec() );
- sgNegateVec4( l->sun_vec_inv() );
+ sgNormalizeVec4( l->sun_vec().data() );
+ sgCopyVec4( l->sun_vec_inv().data(), l->sun_vec().data() );
+ sgNegateVec4( l->sun_vec_inv().data() );
// make sure these are directional light sources only
l->sun_vec()[3] = l->sun_vec_inv()[3] = 0.0;
// << ","<< l->sun_vec[2] << endl;
// calculate the sun's relative angle to local up
- sgCopyVec3( nup, v->get_world_up() );
+ sgCopyVec3( nup, v->get_world_up().data() );
sgSetVec3( nsun, l->get_sunpos().x(),
l->get_sunpos().y(), l->get_sunpos().z() );
sgNormalizeVec3(nup);
// earth's surface the sun is directly over, map into onto the
// local plane representing "horizontal".
- sgmap_vec_onto_cur_surface_plane( v->get_world_up(), v->get_view_pos(),
+ SGVec3f world_up = v->get_world_up();
+ SGVec3f view_pos = v->get_view_pos();
+ sgmap_vec_onto_cur_surface_plane( world_up.data(), view_pos.data(),
to_sun, surface_to_sun );
sgNormalizeVec3(surface_to_sun);
// cout << "(sg) Surface direction to sun is "
// v->get_surface_east(). We do this so we can sort out the
// acos() ambiguity. I wish I could think of a more efficient
// way. :-(
- east_dot = sgScalarProductVec3( surface_to_sun, v->get_surface_east() );
+ east_dot = sgScalarProductVec3( surface_to_sun, v->get_surface_east().data() );
// cout << " East dot product = " << east_dot << endl;
// calculate the angle between v->surface_to_sun and
// v->surface_south. this is how much we have to rotate the sky
// for it to align with the sun
- dot = sgScalarProductVec3( surface_to_sun, v->get_surface_south() );
+ dot = sgScalarProductVec3( surface_to_sun, v->get_surface_south().data() );
// cout << " Dot product = " << dot << endl;
if (dot > 1.0) {