00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "texturePosition.h"
00020
00021 #include <datagram.h>
00022 #include <datagramIterator.h>
00023 #include <bamReader.h>
00024 #include <bamWriter.h>
00025
00026 TypeHandle TexturePosition::_type_handle;
00027
00028
00029
00030
00031
00032
00033 TexturePosition::
00034 TexturePosition() {
00035 _margin = 0;
00036 _x = 0;
00037 _y = 0;
00038 _x_size = 0;
00039 _y_size = 0;
00040 _min_uv.set(0.0, 0.0);
00041 _max_uv.set(0.0, 0.0);
00042 _wrap_u = EggTexture::WM_unspecified;
00043 _wrap_v = EggTexture::WM_unspecified;
00044 }
00045
00046
00047
00048
00049
00050
00051 TexturePosition::
00052 TexturePosition(const TexturePosition ©) :
00053 _margin(copy._margin),
00054 _x(copy._x),
00055 _y(copy._y),
00056 _x_size(copy._x_size),
00057 _y_size(copy._y_size),
00058 _min_uv(copy._min_uv),
00059 _max_uv(copy._max_uv),
00060 _wrap_u(copy._wrap_u),
00061 _wrap_v(copy._wrap_v)
00062 {
00063 }
00064
00065
00066
00067
00068
00069
00070 void TexturePosition::
00071 operator = (const TexturePosition ©) {
00072 _margin = copy._margin;
00073 _x = copy._x;
00074 _y = copy._y;
00075 _x_size = copy._x_size;
00076 _y_size = copy._y_size;
00077 _min_uv = copy._min_uv;
00078 _max_uv = copy._max_uv;
00079 _wrap_u = copy._wrap_u;
00080 _wrap_v = copy._wrap_v;
00081 }
00082
00083
00084
00085
00086
00087
00088
00089 void TexturePosition::
00090 register_with_read_factory() {
00091 BamReader::get_factory()->
00092 register_factory(get_class_type(), make_TexturePosition);
00093 }
00094
00095
00096
00097
00098
00099
00100
00101
00102 void TexturePosition::
00103 write_datagram(BamWriter *writer, Datagram &datagram) {
00104 TypedWritable::write_datagram(writer, datagram);
00105 datagram.add_int32(_margin);
00106 datagram.add_int32(_x);
00107 datagram.add_int32(_y);
00108 datagram.add_int32(_x_size);
00109 datagram.add_int32(_y_size);
00110 datagram.add_float64(_min_uv[0]);
00111 datagram.add_float64(_min_uv[1]);
00112 datagram.add_float64(_max_uv[0]);
00113 datagram.add_float64(_max_uv[1]);
00114 datagram.add_int32((int)_wrap_u);
00115 datagram.add_int32((int)_wrap_v);
00116 }
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126 TypedWritable* TexturePosition::
00127 make_TexturePosition(const FactoryParams ¶ms) {
00128 TexturePosition *me = new TexturePosition;
00129 DatagramIterator scan;
00130 BamReader *manager;
00131
00132 parse_params(params, scan, manager);
00133 me->fillin(scan, manager);
00134 return me;
00135 }
00136
00137
00138
00139
00140
00141
00142
00143
00144 void TexturePosition::
00145 fillin(DatagramIterator &scan, BamReader *manager) {
00146 TypedWritable::fillin(scan, manager);
00147 _margin = scan.get_int32();
00148 _x = scan.get_int32();
00149 _y = scan.get_int32();
00150 _x_size = scan.get_int32();
00151 _y_size = scan.get_int32();
00152 _min_uv[0] = scan.get_float64();
00153 _min_uv[1] = scan.get_float64();
00154 _max_uv[0] = scan.get_float64();
00155 _max_uv[1] = scan.get_float64();
00156 _wrap_u = (EggTexture::WrapMode)scan.get_int32();
00157 _wrap_v = (EggTexture::WrapMode)scan.get_int32();
00158 }