/// <summary>
        /// Working constructor
        /// </summary>
        /// <param name="block"></param>
        public SkeletonPointToSkeletonPointViewModel(RelatedSphereCondition relatedSphereCondition)
        {
            RemoveCommand = new RelayCommand(() => Remove());

            m_ConditionType          = ConditionTypes.SkeletonPointToSkeletonPoint;
            m_relatedSphereCondition = relatedSphereCondition;
        }
        public void CheckCondition_RightHandOutOfSphere_ReturnsTrue()
        {
            Skeleton skeleton = new Skeleton();

            RelatedSphereCondition sphereCondition = new RelatedSphereCondition()
            {
                Sphere = new Sphere
                {
                    Radius      = 1,
                    CenterPoint = new Point3D()
                    {
                        X = 2F, Y = 2F, Z = 2F
                    }
                }
            };

            Assert.AreEqual(false, sphereCondition.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);
                };
            }
        }