예제 #1
0
    private bool CheckAddCondition(CuboidCondition condition)
    {
        if (condition is CuboidLengthCondition)
        {
            if (lengthCondition != null)
            {
                return(false);
            }
            lengthCondition = (CuboidLengthCondition)condition;
            return(true);
        }

        if (condition is CuboidWidthCondition)
        {
            if (widthCondition != null)
            {
                return(false);
            }
            widthCondition = (CuboidWidthCondition)condition;
            return(true);
        }

        if (condition is CuboidHeightCondition)
        {
            if (heightCondition != null)
            {
                return(false);
            }
            heightCondition = (CuboidHeightCondition)condition;
            return(true);
        }

        return(false);
    }
예제 #2
0
        public void CheckCondition_RightHandOutOfCuboid_ReturnsFalse()
        {
            var skeleton = new Skeleton();

            var cuboidCondition = new CuboidCondition()
            {
                Cuboid     = Helper.MakeCuboidWithNoZero(),
                JointIndex = Helper.GetRightHandIndex()
            };

            Assert.AreEqual(false, cuboidCondition.CheckCondition(skeleton));
        }
예제 #3
0
        public void CheckCondition_RightHandInCuboid_ReturnsTrue()
        {
            Skeleton skeleton = new Skeleton();

            CuboidCondition cuboidCondition = new CuboidCondition()
            {
                Cuboid     = Helper.MakeCuboidAroundZero(),
                JointIndex = Helper.GetRightHandIndex()
            };

            Assert.AreEqual(true, cuboidCondition.CheckCondition(skeleton));
        }
        /// <summary>
        /// Add condition
        /// </summary>
        /// <param name="conditionType">type of condition</param>
        private void AddCondition(ConditionTypes conditionType, BaseCondition condition)
        {
            IRemovable conditionVM = null;

            switch (conditionType)
            {
            case ConditionTypes.SkeletonPointToCordinate:
                if (condition == null)
                {
                    condition = new CuboidCondition();
                    m_conditionsBlock.Conditions.Add(condition);
                }
                conditionVM = new SkeletonPointToCubeViewModel((CuboidCondition)condition);
                break;

            case ConditionTypes.SkeletonPointToSkeletonPoint:
                if (condition == null)
                {
                    condition = new RelatedSphereCondition();
                    m_conditionsBlock.Conditions.Add(condition);
                }
                conditionVM = new SkeletonPointToSkeletonPointViewModel((RelatedSphereCondition)condition);
                break;
            }

            if (conditionVM != null)
            {
                Conditions.Add(conditionVM);

                //add remove delegate
                conditionVM.DelegateToRemove = () =>
                {
                    m_conditionsBlock.Conditions.Remove(condition);
                    Conditions.Remove(conditionVM);
                };
            }
        }
예제 #5
0
 /// <summary>
 /// Working constructor
 /// </summary>
 public SkeletonPointToCubeViewModel(CuboidCondition cuboidCondition)
 {
     RemoveCommand     = new RelayCommand(() => Remove());
     m_cuboidCondition = cuboidCondition;
 }