Пример #1
0
 /*!
  * Adds an object to the collider list for the UI items.
  * Whenever this object enters the bounds of a UI item,
  * the ENTER event will be raised.
  */
 public void AddCollider(Model collider)
 {
     try
     {
         Trigger trigger = (Trigger)Root.First();
         while (trigger != null)
         {
             trigger.AddCollider(collider);
             trigger = trigger.Next() as Trigger;
         }
     }
     catch (Exception) { };
 }
Пример #2
0
        protected override Skeleton ConnectAvatar(SharedWorld world, Scene scene)
        {
            Skeleton skeleton = base.ConnectAvatar(world, scene);
            dynamic  anims    = null;

            if (config != null)
            {
                anims = config.animation;
            }
            if (frontAnimTrigger != null)
            {
                frontAnimTrigger.AddCollider(currentAvatar.Head);
            }
            if (masterKinect == null)
            {
                return(skeleton);
            }

            try
            {
                Box3   bodysize = new Box3();
                Camera cam      = scene.Camera;

                poseMapper = masterKinect.PoseMapper;
                if (poseMapper != null)
                {
                    Skeleton source   = poseMapper.Source;
                    string   havokrig = "Proxy_Waist";
                    string   rig      = "genesis";

                    if ((config != null) && (config.havokrig != null))
                    {
                        havokrig = config.havokrig;
                    }
                    if ((config != null) && (config.rig != null))
                    {
                        rig = config.rig;
                    }
                    poseMapper.Target = skeleton;
                    if (!skeleton.GetBoneName(0).Contains(havokrig))
                    {
                        poseMapper.SelectBoneMap(rig);
                    }
                    else
                    {
                        poseMapper.SelectBoneMap("default");
                    }
                    if (source != null)
                    {
                        Vec3 waistpos = source.Pose.GetWorldPosition(0);
                        poseMapper.MapWorldToSource();
                        poseMapper.Source.BindPose = source.Pose;
                        masterKinect.WaistOffset   = waistpos;
                    }
                    else
                    {
                        SharedWorld.LogError("MagicMirror: PoseMapper does not have source skeleton");
                    }
                }
                masterKinect.Active = true;
            }
            catch (Exception ex)
            {
                SharedWorld.LogError("MagicMirror: problem connecting Kinect " + ex.Message);
            }
            return(skeleton);
        }