Hi Jason
I doubt this has anything to do with it, but you default policy on your avatar object is "property:ready-only" rather than read-only
Rgds
Neil
 
On 3/4/06, Jason Moyers <[EMAIL PROTECTED]> wrote:
When I connect to vip://interreality.org/world with my avatar object is not shown, howeven I connect to a3dldemo running on a local box here it works just fine. The following generates my local avatar.

bool BVavatar::Init( BetaVerse *beta, iVosApi *sec )
{
  LOG( "BVavatar::Init", 3, "starting..." );
  bv = beta;
  sector = meta_cast<A3DL::Sector>( sec->GetVobject() );
 
  CS_ASSERT( sector.isValid() );
  CS_ASSERT( bv->site.isValid() );

  vRef<A3DL::Cube> avatarObj =
    bv->site->createVobject3<A3DL::Cube, Talkative, Avatar>();
    
  avatarObj->setDefaultPolicy( "core:read-only,property:ready-only,talkative:send-only" );
  avatarObj->setPosition( 0, 0, 0 );
  avatarObj->setScalingHT( .3, .3, .3 );
  avatarObj->setOrientation( 0, 1, 0, 0 );
  avatarObj->setOrientationHT( -1, 0, 0, 90 );
  avatarObj->getMaterial()->setColor( .5, .2, .2 );
 

  vRef<Avatar> avatar = meta_cast<Avatar>( avatarObj );
  avatar->setNick( bv->prefs->GetNick() );
/* don't need this if we create the avatar locally and hence set position/orientation
*/ 
  avatar3d = meta_cast<A3DL::Object3D>( avatarObj );
  CS_ASSERT( avatar3d.isValid() );
  avatar3d->setDefaultPolicy( "core:accept-all" );
 
  double x, y, z;
  double a, b, c, r;
  x = y = z = a = b = c = r = 0.0;
 
  try
  {
    avatar3d->getPosition(x, y, z);
    avatar3d->getOrientation(a, b, c, r);
    r *= M_PI/180.0;
  }
  catch( std::runtime_error &e )
  {
    LOG( "BVavatar::Init", 2, "Runtime error while setting position orientation with avatar." );
  }
  LOG( "BVavatar::Init", 3, "x: " << x << " y: " << y << " z: " << z );
  LOG( "BVavatar::Init", 3, "a: " << a << " b: " << b << " c: " << c << " r: " << r );
 
  sector->insertChild( -1, bv->prefs->GetNick(), avatarObj );
 
  if( avatar->isLocal() )
  {
    talk = meta_cast<LocalTalkative>( avatar );
    if( !talk.isValid() )
    {
      avatar->addType( "misc:talkative" );
      talk = meta_cast<LocalTalkative>( avatar );
    }
  }
  else
  {
    CS_ASSERT( bv->site.isValid() );
    talk = bv->site->createVobject<LocalTalkative>();
    CS_ASSERT( talk.isValid() );
    LOG( "BVavatar::Init", 3, " talk.getURLstr(): " << talk->getURLstr() );
   
    talk->setDefaultPolicy( "core:read-only,talkative:send-only" );
    try
    {
      if( !avatar.isValid() )
        LOG( "BVavatar::Init", 3, "Avatar not vaild, can't add chat." );
       
      vRef<Talkative> t = meta_cast<Talkative>( avatar );
      if( t.isValid() )
      {
        LOG( "BVavatar::Init", 3, "t.getURLstr(): " << t->getURLstr() );
        t->addRelay( talk );
      }
      else
        LOG( "BVavatar::Init", 3, "Remote talkative not valid." );
     
      LOG( "BVavatar::Init", 3, "adding relay from " << avatar->getURLstr()
                << " to " << talk->getURLstr() );
    }
    catch( std::runtime_error e )
    {
      LOG( "BVavatar::Init", 2, "Got a runtime error adding ourselves as a relay to the avatar talkative, we won't receive any messages (!?!?)." << e.what() );
    }
  }

  try
  { 
    vRef<Talkative> tk = meta_cast<Talkative>(sector);
    if( tk.isValid() )
      tk->addRelay( talk );
   
    LOG( "BVavatar::Init", 3, "adding relay from " << tk->getURLstr()
      << " to " << talk->getURLstr() );

  }
  catch(std::runtime_error e)
  {
    LOG("BVavatar::Init", 2, "Got a runtime error adding ourselves as a relay to the sector talkative, we won't receive messages from the sector. (!?!?)");
  }

  LOG( "BVavatar::Init", 3, "ended." );

  return true;
}

 

_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d



_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to