Beispiel #1
0
 public APFramesList(AnimationParametersFrame firstAPFrame)
 {
     apFramesList = new List <AnimationParametersFrame>();
     numAPs       = firstAPFrame.APVector.Count;
     apFramesList.Add(firstAPFrame);
     firstAPFrame.setFrameNumber(0);
 }
Beispiel #2
0
        public void updateFrames(long currentFrameNumber)
        {
            long currentFrame = currentFrameNumber;
            AnimationParametersFrame firstAPFrame = peek();

            for (int j = 0; j < apFramesList.Count; j++)
            {
                AnimationParametersFrame apFrame = apFramesList[j];
                if (apFrame.getFrameNumber() > currentFrame)
                {
                    break;
                }
                if (apFrame != firstAPFrame)
                {
                    for (int i = 0; i < apFrame.size(); i++)
                    {
                        AnimationParameter ap = apFrame.getAnimationParametersList()[i];

                        if (ap.getMask())
                        {
                            firstAPFrame.setValue(i, ap.getValue());
                            firstAPFrame.setMask(i, true);
                        }
                    }

                    apFramesList.RemoveAt(j);
                    j--;
                }
            }
            // add as peek frame
            firstAPFrame.setFrameNumber(currentFrame);

            //apFramesList.Insert (0, firstAPFrame);
        }
Beispiel #3
0
        public void emptyFramesList()
        {
            AnimationParametersFrame firstAPFrame = new AnimationParametersFrame(peek());

            apFramesList.Clear();
            apFramesList.Add(firstAPFrame);
        }
Beispiel #4
0
        public bool isEqualTo(AnimationParametersFrame apFrame)
        {
            if (this == apFrame)
            {
                return(true);
            }
            List <AnimationParameter> apList      = this.getAnimationParametersList();
            List <AnimationParameter> apInputList = apFrame.getAnimationParametersList();

            if (apList.Count != apInputList.Count)
            {
                return(false);
            }
            for (int i = 0; i < apList.Count; i++)
            {
                if (apInputList[i].getMask() != apList[i].getMask())
                {
                    return(false);
                }
                if (apInputList[i].getValue() != apList[i].getValue())
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #5
0
 public AnimationParametersFrame(AnimationParametersFrame apFrame)
 {
     APVector    = new List <AnimationParameter>(apFrame.size());
     frameNumber = apFrame.getFrameNumber();
     for (int i = 0; i < apFrame.size(); ++i)
     {
         APVector.Add(copyAnimationParameter(apFrame.APVector[i]));
     }
     // setAnimationParameter(i, apFrame.getAnimationParameter(i));
 }
Beispiel #6
0
        public void afficheFirstFrame()
        {
            AnimationParametersFrame firstAPFrame = peek();
            String strMask  = "";
            String strValue = "";

            for (int i = 0; i < firstAPFrame.size(); i++)
            {
                AnimationParameter ap = firstAPFrame.getAnimationParametersList()[i];
                strMask += ap.getMask() + " ";
                if (ap.getMask())
                {
                    strValue += ap.getValue() + " ";
                }
            }
            Debug.Log("firstAPFrame Mask: \n" + strMask + "\nand value: \n" + strValue);
        }
Beispiel #7
0
        public void addFrame(AnimationParametersFrame apFrame)
        {
            // Debug.Log("addFrame number: " + apFrame.getFrameNumber());
            int  framesListLenght  = apFramesList.Count;
            long numberOfLastFrame = apFramesList[framesListLenght - 1].getFrameNumber();

            if (numberOfLastFrame >= apFrame.getFrameNumber())
            {
                for (int i = framesListLenght - 1; i >= 0; i--)
                {
                    if (apFrame.getFrameNumber() > apFramesList[i].getFrameNumber())
                    {
                        apFramesList.Insert(i + 1, apFrame);
                        break;
                    }
                    if (apFrame.getFrameNumber() == apFramesList[i].getFrameNumber())
                    {
                        for (int j = 0; j < apFrame.size(); j++)
                        {
                            AnimationParameter ap = apFrame.getAnimationParametersList()[j];

                            if (ap.getMask())
                            {
                                apFramesList[i].setValue(j, ap.getValue());
                                apFramesList[i].setMask(j, true);
                            }
                        }
                        //apFramesList [i] = apFrame;
                        break;
                    }
                }
            }
            else
            {
                apFramesList.Add(apFrame);
            }
        }
Beispiel #8
0
        public void addAPFramesFromFile(String fileName, long firstFrameNumber)
        {
            StringReader apDataReader = null;
            // apData is a string containing the whole file. To be read line-by-line
            //Debug.Log ("firstAPFrame number " + firstFrameNumber);
            TextAsset apData            = (TextAsset)Resources.Load(fileName, typeof(TextAsset));
            long      firstFileFrameNum = 0;
            bool      firstFrame        = true;

            if (apData == null)
            {
                Debug.Log(fileName + " not found");
            }
            else
            {
                apDataReader = new StringReader(apData.text);
                if (apDataReader == null)
                {
                    Debug.Log(fileName + " not readable");
                }
                else
                {
                    String readLine = "";
                    // Read each line from the file
                    // Debug.Log ("APFrameList APnum " +numAPs + " at time " + DateTime.Now.Ticks/10000);

                    while ((readLine = apDataReader.ReadLine()) != null)
                    {
                        String firstLine  = readLine;
                        String secondLine = apDataReader.ReadLine();

                        String[] firstLineTab  = firstLine.Split(' ');
                        String[] secondLineTab = secondLine.Split(' ');

                        /* // Debug of line content
                         * String firstLineTabStr = "";
                         * for(int i=0; i<firstLineTab.Length;i++){
                         * firstLineTabStr += firstLineTab[i];
                         * }
                         * firstLineTabStr += "End";
                         * Debug.Log ("FirstLineTab "+ firstLineTabStr);*/
                        // Debug.Log ("first line length "+ firstLineTab.Length);
                        // Debug.Log ("second line length "+ secondLineTab.Length);
                        int firstLineIter  = 0;
                        int secondLineIter = 0;
                        // frameNum
                        if (firstFrame)
                        {
                            firstFileFrameNum = long.Parse(secondLineTab[secondLineIter]);
                            firstFrame        = false;
                        }
                        long frameNum = long.Parse(secondLineTab[secondLineIter]) - firstFileFrameNum;
                        secondLineIter++;

                        int apnr = 1;

                        AnimationParametersFrame frame = new AnimationParametersFrame(numAPs);
                        frame.setFrameNumber(firstFrameNumber + frameNum);

                        while (firstLineIter < numAPs - 1)
                        {
                            // Debug.Log (firstLineTab[firstLineIter]);
                            int mask = int.Parse(firstLineTab[firstLineIter]);
                            firstLineIter++;

                            if (mask == 1)
                            {
                                int apValue = int.Parse(secondLineTab[secondLineIter]);
                                secondLineIter++;
                                frame.setAnimationParameter(apnr, apValue);
                            }//end more tokens
                            else
                            {
                                frame.setAnimationParameter(apnr, 0);
                            }
                            apnr++;
                        }
                        this.addFrame(frame);
                    }
                    // Debug.Log (fileName + " loaded at time " + DateTime.Now.Ticks/10000);
                }
            }
        }