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