private void UpdateNumberOfWhiskers()
        {
            int startIndex = 1;

            if (ViewModel.IncludeNosePoint)
            {
                startIndex = -1;
            }

            ObservableCollection <IWhiskerClipSettings> whiskers = new ObservableCollection <IWhiskerClipSettings>();

            for (int index = startIndex; index <= ViewModel.NumberOfWhiskers; index++)
            {
                string name;
                bool   isGeneric;
                int    numberOfPoints = SelectedNumberOfPointsPerWhisker;
                if (index == -1)
                {
                    name           = "Nose Point";
                    isGeneric      = true;
                    numberOfPoints = 1;
                }
                else if (index == 0)
                {
                    if (!ViewModel.IncludeOrientationPoint)
                    {
                        continue;
                    }

                    name           = "Orientation Point";
                    isGeneric      = true;
                    numberOfPoints = 1;
                }
                else
                {
                    name      = "Whisker " + index;
                    isGeneric = false;
                }

                IWhiskerClipSettings whisker = ModelResolver.Resolve <IWhiskerClipSettings>();
                whisker.WhiskerId      = index;
                whisker.WhiskerName    = name;
                whisker.IsGenericPoint = isGeneric;
                whisker.NumberOfPoints = numberOfPoints;
                whiskers.Add(whisker);
            }

            if (GenericPoints.Count > 0)
            {
                int genericStartId = ViewModel.NumberOfWhiskers + 1;
                int delta          = genericStartId - GenericPoints.Min(x => x.WhiskerId);
                foreach (IWhiskerClipSettings genericWhisker in GenericPoints)
                {
                    genericWhisker.WhiskerId += delta;
                    whiskers.Add(genericWhisker);
                }
            }

            Whiskers = whiskers;
        }
예제 #2
0
 public void Reset()
 {
     m_PositionA     = Vector3.zero;
     m_PositionB     = Vector3.zero;
     m_GenericPointA = null;
     m_GenericPointB = null;
     m_Selected      = false;
 }
예제 #3
0
    public GenericLine(GenericPoints a, GenericPoints b)
    {
        m_A = a;
        m_B = b;

        SpawnPipeEnd();

        m_A.isConnected = true;
        m_B.isConnected = true;
    }
예제 #4
0
    //Check if the pipe is being drawn from the right side.
    void CheckDrawingSide()
    {
        if (m_A.position.x < m_B.position.x)
        {
            //Flip points
            GenericPoints a = m_A;
            GenericPoints b = m_B;

            m_A = b;
            m_B = a;
        }
    }
        private void RemovePoint()
        {
            if (GenericPoints.Count == 0)
            {
                return;
            }

            Whiskers.RemoveAt(Whiskers.Count - 1);
            GenericPoints.RemoveAt(GenericPoints.Count - 1);

            OkCommand.RaiseCanExecuteChangedNotification();
            RemovePointCommand.RaiseCanExecuteChangedNotification();
        }
        private void AddPoint()
        {
            IWhiskerClipSettings whisker = ModelResolver.Resolve <IWhiskerClipSettings>();

            whisker.IsGenericPoint = true;
            whisker.NumberOfPoints = 1;
            int genericStartId = ViewModel.NumberOfWhiskers + 1;

            genericStartId     += GenericPoints.Count;
            whisker.WhiskerId   = genericStartId;
            whisker.WhiskerName = "Point " + (GenericPoints.Count + 1);
            AddWhisker(whisker);
            GenericPoints.Add(whisker);
            RemovePointCommand.RaiseCanExecuteChangedNotification();
        }
예제 #7
0
    public void Initialize(GenericPoints a, GenericPoints b)
    {
        m_A = a;
        m_B = b;
        CheckDrawingSide();
        SpawnPipeEnd();
        CheckTransporting();
        SpawnParticle();
        m_A.isConnected = true;
        m_B.isConnected = true;

        if (m_A.source != null)
        {
            m_B.source = m_A.source;
        }
        else if (m_B.source != null)
        {
            m_A.source = m_B.source;
        }
    }
예제 #8
0
 public void AddPoint(GenericPoints point)
 {
     if (m_GenericPointA == null)
     {
         m_GenericPointA = point;
     }
     else if (m_GenericPointA != null && m_GenericPointB == null)
     {
         if (!(m_GenericPointA.isConnectedToVillage == point.isConnectedToVillage))
         {
             if (point.type == m_GenericPointA.type)
             {
                 m_GenericPointB = point;
             }
         }
     }
     else if (m_GenericPointA == m_GenericPointB)
     {
         m_GenericPointB = point;
     }
 }