[GRASS-dev] d.nviz rewrite for wxNVIZ?

Bob Covill bcovill at tekmap.ns.ca
Fri Dec 12 08:09:31 EST 2008


On Fri, 2008-12-12 at 00:59 -0800, Hamish wrote:
> > > Hamish ha scritto:
> > > > I always thought that d.nviz was a great idea which was never really
> > > > finished. Any thoughts on the viability of rewriting it (probably
> > > > from scratch) for use as a control script for animations via nviz_cmd,
> ....
> > > I think connecting to some existing 3D visualization tool is a more
> > > feasible route than rewriting from scratch.
> > 
> > POVRAY, ParaView, etc. ?
> 
> 
> I'm just talking about the module which sets up a camera angle track from
> a vector map or interactive GUI clicking. Nothing terribly complex.
> It's just nviz_cmd in a loop.
> 
> 
Hamish,

I would suggest going to something simple like XML. This would hopefully
make it portable for future versions. You could for example have ...

<?xml version="1.0"?>
<xml_nv_state>
  <nv_view_real>
    <nv_from_real_x>413180.628200</nv_from_real_x>
    <nv_from_real_y>6007389.738964</nv_from_real_y>
    <nv_from_real_z>61.965817</nv_from_real_z>
    <nv_to_real_x>412651.775378</nv_to_real_x>
    <nv_to_real_y>6007238.693630</nv_to_real_y>
    <nv_to_real_z>-21.584829</nv_to_real_z>
  </nv_view_real>
  <nv_cplane_pos>
    <nv_cplane_x>412651.775378</nv_cplane_x>
    <nv_cplane_y>6007238.693630</nv_cplane_y>
    <nv_cplane_tilt>0.0</nv_cplane_tilt>
    <nv_cplane_rotate>344.060161</nv_cplane_rotate>
  </nv_cplane_pos>
  <nv_add_keyframe>
    <key_time>0.538949</key_time>
  </nv_add_keyframe>
</xml_nv_state>

This would set one keyframe with a cutting plane. At the nviz (ogsf) end
of it you take the position tags (nv_view_real) and call ...
GS_set_infocus();
GS_set_focus_real(pos); /* pos is nv_to_real */
GS_moveto_real(pos); /* pos is nv_from_real */

The cutting plane is a little trickier but something like ...
GS_set_cplane_trans(0, trans_x, trans_y, 0.0); /* where trans x & y are
derived from nv_cplane_x & nv_cplane_y */
GS_set_cplane_rot(0, 0.0, tilt, rotate); 

and finally add the key time with ...
GK_add_key(keytime, KF_ALL_MASK, 1, 0.0);
.........

This format could also be used for the state file.

Hope this helps.

--
Bob


> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev



More information about the grass-dev mailing list