Beispiel #1
0
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;
}
Beispiel #2
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() 
{