int FilmTrans::move( CEvent &e, State *& ) { DEVice_2d* ptr = dynamic_cast<DEVice_2d*>(e._d); assert(ptr); if (_obj) { Wpt cur(Wpt(ptr->cur(),_down_pt)); Wpt old(Wpt(ptr->old(),_down_pt)); _obj->mult_by(Wtransf::translation(cur-old)); if (_call_xform_obs) XFORMobs::notify_xform_obs(_obj, XFORMobs::MIDDLE); } return 0; }
using mlib::Wvec; HASH *DATA_ITEM::_hash = 0; DATA_ITEM* (*DATA_ITEM::_decode_unknown)(STDdstream&, Cstr_ptr&, DATA_ITEM*) = 0; const str_ptr NAME_INT ("int"); const str_ptr NAME_DOUBLE ("double"); const str_ptr NAME_VEC3D ("vec3d"); const str_ptr NAME_COLOR ("color"); const str_ptr NAME_POINT3D("point3d"); const str_ptr NAME_STR_PTR("str_ptr"); static int im=DATA_ITEM::add_decoder(NAME(0), new TDI<int>(0), 1); static int dm=DATA_ITEM::add_decoder(NAME(0.0), new TDI<double>(0), 1); static int vm=DATA_ITEM::add_decoder(NAME(Wvec()),new TDI<Wvec>(Wvec(0,1,0)), 1); static int pm=DATA_ITEM::add_decoder(NAME(Wpt()), new TDI<Wpt>(Wpt()), 1); static int sm=DATA_ITEM::add_decoder(NAME(str_ptr()),new TDI<str_ptr>(str_ptr()), 1); // for some odd reason, we can't inline this on the Suns because // it generates link errors when we create subclasses of DATA_ITEM... // the odd thing is it doesn't seem to effect subclasses of DATA_ITEM // that *are* able to define static_name inline... // STAT_STR_RET DATA_ITEM::static_name() { RET_STAT_STR("DATA_ITEM"); } DATA_ITEM::~DATA_ITEM() {