Пример #1
0
        public void Read(BinaryReader br)
        {
            br.BaseStream.Position = offset;
            int flags = br.ReadInt32();
            //leftAligned = ((flags & 1) != 0); // bit 0
            //rightAligned = ((flags & 2) != 0); // bit 1
            //pulsing = ((flags & 4) != 0); // bit 2
            //tinyText = ((flags & 8) != 0); // bit 3

            period = br.ReadInt32();
            int keyFrameCount = br.ReadInt32();
            int keyFrameOffset = br.ReadInt32() - meta.magic;

            if (keyFrameCount > 0)
            {
                BinaryReader br2 = br;
                int keyFrameTag = meta.Map.Functions.ForMeta.FindMetaByOffset(keyFrameOffset);
                if (keyFrameTag != meta.TagIndex)
                {
                    Meta newMeta = Map.GetMetaFromTagIndex(keyFrameTag, meta.Map, false, true);
                    br2 = new BinaryReader(newMeta.MS);
                    keyFrameOffset -= newMeta.offset;
                }
                else
                    keyFrameOffset -= meta.offset;

                keyFrames = new keyFrame[keyFrameCount];
                for (int i = 0; i < keyFrameCount; i++)
                {
                    keyFrames[i] = new keyFrame(order);
                    keyFrames[i].offset = keyFrameOffset + i * 20;
                    keyFrames[i].Read(br2);
                }
            }
        }
Пример #2
0
        public void Read(BinaryReader br)
        {
            br.BaseStream.Position = offset;
            int flags = br.ReadInt32();

            //leftAligned = ((flags & 1) != 0); // bit 0
            //rightAligned = ((flags & 2) != 0); // bit 1
            //pulsing = ((flags & 4) != 0); // bit 2
            //tinyText = ((flags & 8) != 0); // bit 3

            period = br.ReadInt32();
            int keyFrameCount  = br.ReadInt32();
            int keyFrameOffset = br.ReadInt32() - meta.magic;

            if (keyFrameCount > 0)
            {
                BinaryReader br2         = br;
                int          keyFrameTag = meta.Map.Functions.ForMeta.FindMetaByOffset(keyFrameOffset);
                if (keyFrameTag != meta.TagIndex)
                {
                    Meta newMeta = Map.GetMetaFromTagIndex(keyFrameTag, meta.Map, false, true);
                    br2             = new BinaryReader(newMeta.MS);
                    keyFrameOffset -= newMeta.offset;
                }
                else
                {
                    keyFrameOffset -= meta.offset;
                }

                keyFrames = new keyFrame[keyFrameCount];
                for (int i = 0; i < keyFrameCount; i++)
                {
                    keyFrames[i]        = new keyFrame(order);
                    keyFrames[i].offset = keyFrameOffset + i * 20;
                    keyFrames[i].Read(br2);
                }
            }
        }
Пример #3
0
        private void ParseFile(string filename)
        {
            try
            {
                using (StreamReader sr = new StreamReader(FInputFileName[0]))
                {
                    //int i = 0;
                    while (sr.Peek() >= 0)
                    {
                        List<string> names = sr.ReadLine().Split(';').ToList<string>();
                        if (names.Count > 17)
                        {
                            keyFrame _keyFrame = new keyFrame();
                            Matrix4x4 _matrix = new Matrix4x4();


                            int recordingIndex = -1;
                            for (int i = 0; i < keyFramesList2.Count; i++)
                            {
                                if (keyFramesList2[i].name == names[0])
                                {
                                    recordingIndex = i;
                                }
                            }

                            //name not found, add new recordingtrack
                            if (recordingIndex == -1)
                            {
                                recordingIndex = keyFramesList2.Count;
                                keyFramesList2.Add(new keyFrames());
                                keyFramesList2[recordingIndex].name = names[0];
                                keyFramesList2[recordingIndex].frame = new List<keyFrame>();
                            }


                            //_keyFrame.name =  names[0];
                            _keyFrame.timeCode = double.Parse(names[1], System.Globalization.CultureInfo.InvariantCulture);
                            for (int j = 0; j < 16; j++)
                            {
                                _matrix[j] = double.Parse(names[j + 2], System.Globalization.CultureInfo.InvariantCulture);
                            }
                            _keyFrame.Transfrom = _matrix;
                            keyFramesList.Add(_keyFrame);

                            keyFramesList2[recordingIndex].frame.Add(_keyFrame);
                        }

                    }
                    FOutputEnd.SliceCount = keyFramesList2.Count;
                    FOutputStart.SliceCount = keyFramesList2.Count;                	
                    for (int j = 0; j < keyFramesList2.Count; j++)
                    {
                     //   FOutputEnd[j] = keyFramesList[(keyFramesList.Count - 1)].timeCode;
                     //   FOutputStart[j] = keyFramesList[0].timeCode;
                    	FOutputEnd[j] = keyFramesList2[j].frame[keyFramesList2[j].frame.Count-1].timeCode;
                    	FOutputStart[j] = keyFramesList2[j].frame[0].timeCode;
                    }


                }
            }
            catch (IOException ioex)
            {

            }
        }