Esempio n. 1
0
 /// <summary>
 /// フレーム内のオブジェクトを取得します
 /// </summary>
 /// <param name="info">取得するオブジェクトの情報</param>
 /// <returns></returns>
 public MotionObject GetObject(IReadableMotionObjectInfo info)
 {
     if (info == null)
     {
         throw new ArgumentNullException("info", "'info' cannot be null");
     }
     //if(info.Parent != this.Parent)
     //    throw new ArgumentException("Parent mismatch");
     return(GetObject(info.Id));
 }
Esempio n. 2
0
 /// <summary>
 /// フレームにオブジェクトを追加します
 /// </summary>
 /// <param name="info">追加するオブジェクトの情報</param>
 /// <param name="object">オブジェクトの状態</param>
 public void SetObject(IReadableMotionObjectInfo info, MotionObject @object)
 {
     lock (this) {
         //if(info.Parent != this.Parent)
         //    throw new ArgumentException("Parent mismatch");
         if (@object == null)
         {
             RemoveObject(info.Id);
         }
         else
         {
             if ([email protected](info.ObjectType))
             {
                 throw new ArgumentException(string.Format("cannot assign '{0}' to frame as '{1}'", @object.GetType(), info.ObjectType));
             }
             _objectList[info.Id] = @object;
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// オブジェクト情報を指定してオブジェクトを取得します
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public MotionObject GetObject(IReadableMotionObjectInfo info)
        {
            MotionObject tmp = _frame.GetObject(info);

            return(tmp == null ? null : (MotionObject)tmp.Clone());
        }
Esempio n. 4
0
 /// <summary>
 /// オブジェクト情報を用いてオブジェクトを取得または設定します.
 /// </summary>
 /// <param name="info"></param>
 /// <returns></returns>
 public MotionObject this[IReadableMotionObjectInfo info] {
     get { return(this.GetObject(info)); }
     set { this.SetObject(info, value); }
 }