Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

pandatool/src/flt/fltTrackplane.cxx

Go to the documentation of this file.
00001 // Filename: fltTrackplane.cxx
00002 // Created by:  drose (26Aug00)
00003 //
00004 ////////////////////////////////////////////////////////////////////
00005 //
00006 // PANDA 3D SOFTWARE
00007 // Copyright (c) 2001, Disney Enterprises, Inc.  All rights reserved
00008 //
00009 // All use of this software is subject to the terms of the Panda 3d
00010 // Software license.  You should have received a copy of this license
00011 // along with this source code; you will also find a current copy of
00012 // the license at http://www.panda3d.org/license.txt .
00013 //
00014 // To contact the maintainers of this program write to
00015 // panda3d@yahoogroups.com .
00016 //
00017 ////////////////////////////////////////////////////////////////////
00018 
00019 #include "fltTrackplane.h"
00020 #include "fltRecordReader.h"
00021 #include "fltRecordWriter.h"
00022 
00023 ////////////////////////////////////////////////////////////////////
00024 //     Function: FltTrackplane::Constructor
00025 //       Access: Public
00026 //  Description:
00027 ////////////////////////////////////////////////////////////////////
00028 FltTrackplane::
00029 FltTrackplane() {
00030   _origin.set(0.0, 0.0, 0.0);
00031   _alignment.set(0.0, 0.0, 0.0);
00032   _plane.set(0.0, 0.0, 1.0);
00033   _grid_state = false;
00034   _grid_under = false;
00035   _grid_angle = 0.0;
00036   _grid_spacing_x = 1;
00037   _grid_spacing_y = 1;
00038   _snap_to_grid = false;
00039   _grid_size = 10.0;
00040   _grid_spacing_direction = 0;
00041   _grid_mask = 0;
00042 }
00043 
00044 ////////////////////////////////////////////////////////////////////
00045 //     Function: FltTrackplane::extract_record
00046 //       Access: Public
00047 //  Description:
00048 ////////////////////////////////////////////////////////////////////
00049 bool FltTrackplane::
00050 extract_record(FltRecordReader &reader) {
00051   DatagramIterator &iterator = reader.get_iterator();
00052 
00053   _origin[0] = iterator.get_be_float64();
00054   _origin[1] = iterator.get_be_float64();
00055   _origin[2] = iterator.get_be_float64();
00056   _alignment[0] = iterator.get_be_float64();
00057   _alignment[1] = iterator.get_be_float64();
00058   _alignment[0] = iterator.get_be_float64();
00059   _plane[0] = iterator.get_be_float64();
00060   _plane[1] = iterator.get_be_float64();
00061   _plane[2] = iterator.get_be_float64();
00062   _grid_state = (iterator.get_be_int32() != 0);
00063   _grid_under = (iterator.get_be_int32() != 0);
00064   _grid_angle = iterator.get_be_float32();
00065   iterator.skip_bytes(4);
00066   _grid_spacing_x = iterator.get_be_float64();
00067   _grid_spacing_y = iterator.get_be_float64();
00068   _snap_to_grid = (iterator.get_be_int32() != 0);
00069   _grid_size = iterator.get_be_float64();
00070   _grid_spacing_direction = iterator.get_be_int32();
00071   _grid_mask = iterator.get_be_int32();
00072   iterator.skip_bytes(4);
00073 
00074   return true;
00075 }
00076 
00077 ////////////////////////////////////////////////////////////////////
00078 //     Function: FltTrackplane::build_record
00079 //       Access: Public
00080 //  Description:
00081 ////////////////////////////////////////////////////////////////////
00082 bool FltTrackplane::
00083 build_record(FltRecordWriter &writer) const {
00084   Datagram &datagram = writer.update_datagram();
00085 
00086   datagram.add_be_float64(_origin[0]);
00087   datagram.add_be_float64(_origin[1]);
00088   datagram.add_be_float64(_origin[2]);
00089   datagram.add_be_float64(_alignment[0]);
00090   datagram.add_be_float64(_alignment[1]);
00091   datagram.add_be_float64(_alignment[2]);
00092   datagram.add_be_float64(_plane[0]);
00093   datagram.add_be_float64(_plane[1]);
00094   datagram.add_be_float64(_plane[2]);
00095   datagram.add_be_int32(_grid_state);
00096   datagram.add_be_int32(_grid_under);
00097   datagram.add_be_float32(_grid_angle);
00098   datagram.pad_bytes(4);
00099   datagram.add_be_float64(_grid_spacing_x);
00100   datagram.add_be_float64(_grid_spacing_y);
00101   datagram.add_be_int32(_snap_to_grid);
00102   datagram.add_be_float64(_grid_size);
00103   datagram.add_be_int32(_grid_spacing_direction);
00104   datagram.add_be_int32(_grid_mask);
00105   datagram.pad_bytes(4);
00106 
00107   return true;
00108 }

Generated on Fri May 2 03:19:36 2003 for Panda-Tool by doxygen1.3