Example #1
0
        protected ShockwaveFlash(FlashReader input)
            : this(false)
        {
            Compression = (CompressionKind)input.ReadString(3)[0];
            Version     = input.ReadByte();
            FileLength  = input.ReadUInt32();

            switch (Compression)
            {
            case CompressionKind.LZMA:
            {
                byte[] decompressed = LZMA.Decompress(input.BaseStream, ((int)FileLength - 8));
                _input = new FlashReader(decompressed);
                break;
            }

            case CompressionKind.ZLIB:
            {
                _input = ZLIB.WrapDecompressor(input.BaseStream);
                break;
            }

            case CompressionKind.None:
            {
                _input = input;
                break;
            }
            }
            Frame = new FrameRecord(_input);
        }
Example #2
0
        private static FrameRecord CreateFrameRecord2()
        {
            FrameRecord r = new FrameRecord();

            r.BorderType     = (FrameRecord.BORDER_TYPE_REGULAR);
            r.IsAutoSize     = (true);
            r.IsAutoPosition = (true);
            return(r);
        }
Example #3
0
 protected ShockwaveFlash(bool isCreatingTemplate)
 {
     Tags = new List <TagItem>();
     if (isCreatingTemplate)
     {
         Frame       = new FrameRecord();
         Frame.Area  = new RectangeRecord();
         Compression = CompressionKind.ZLIB;
     }
 }
Example #4
0
        public void TestLoad()
        {
            FrameRecord record = new FrameRecord(TestcaseRecordInputStream.Create((short)0x1032, data));

            Assert.AreEqual(FrameRecord.BORDER_TYPE_REGULAR, record.BorderType);
            Assert.AreEqual(2, record.Options);
            Assert.AreEqual(false, record.IsAutoSize);
            Assert.AreEqual(true, record.IsAutoPosition);


            Assert.AreEqual(8, record.RecordSize);
        }
Example #5
0
        public void TestLoad()
        {

            FrameRecord record = new FrameRecord(TestcaseRecordInputStream.Create((short)0x1032, data));
            Assert.AreEqual(FrameRecord.BORDER_TYPE_REGULAR, record.BorderType);
            Assert.AreEqual(2, record.Options);
            Assert.AreEqual(false, record.IsAutoSize);
            Assert.AreEqual(true, record.IsAutoPosition);


            Assert.AreEqual(8, record.RecordSize);
        }
Example #6
0
        public void TestStore()
        {
            FrameRecord record = new FrameRecord();
            record.BorderType = (FrameRecord.BORDER_TYPE_REGULAR);
            record.Options = ((short)2);
            record.IsAutoSize = (false);
            record.IsAutoPosition = (true);


            byte[] recordBytes = record.Serialize();
            Assert.AreEqual(recordBytes.Length - 4, data.Length);
            for (int i = 0; i < data.Length; i++)
                Assert.AreEqual(data[i], recordBytes[i + 4], "At offset " + i);
        }
Example #7
0
        public void TestStore()
        {
            FrameRecord record = new FrameRecord();

            record.BorderType     = (FrameRecord.BORDER_TYPE_REGULAR);
            record.Options        = ((short)2);
            record.IsAutoSize     = (false);
            record.IsAutoPosition = (true);


            byte[] recordBytes = record.Serialize();
            Assert.AreEqual(recordBytes.Length - 4, data.Length);
            for (int i = 0; i < data.Length; i++)
            {
                Assert.AreEqual(data[i], recordBytes[i + 4], "At offset " + i);
            }
        }
        public FrameAggregate(RecordStream rs, ChartRecordAggregate container)
            : base(RuleName_FRAME, container)
        {
            frame = (FrameRecord)rs.GetNext();
            rs.GetNext();//BeginRecord
            lineFormat = (LineFormatRecord)rs.GetNext();
            areaFormat = (AreaFormatRecord)rs.GetNext();
            if (rs.PeekNextChartSid() == GelFrameRecord.sid)
            {
                gelFrame = new GelFrameAggregate(rs, this);
            }

            if (rs.PeekNextChartSid() == ShapePropsStreamRecord.sid)
            {
                shapeProps = new ShapePropsAggregate(rs, this);
            }

            Record r = rs.GetNext();//EndRecord

            Debug.Assert(r.GetType() == typeof(EndRecord));
        }
Example #9
0
 private FrameRecord CreateFrameRecord2()
 {
     FrameRecord r = new FrameRecord();
     r.BorderType = (FrameRecord.BORDER_TYPE_REGULAR);
     r.IsAutoSize = (true);
     r.IsAutoPosition = (true);
     return r;
 }
Example #10
0
	private FrameRecord CreateFrameRecord2()
	{
		FrameRecord r = new FrameRecord();
		r.SetBorderType( FrameRecord.BORDER_TYPE_REGULAR );
		r.SetAutoSize( true );
		r.SetAutoPosition( true );
		return r;
	}
    protected override void OnUpdate()
    {
        processing.records.Clear();
        processing.frame = frames++;

        for (int i = 0; i < agentGroup.Length; i++)
        {
            processing.records.Add(new AgentRecord
            {
                AgentID  = agentGroup.Data[i].ID,
                Position = WindowManager.Crowds2Clouds(agentGroup.Position[i].Value),
                CloudID  = agentGroup.OwnerCloud[i].CloudID
            });
        }

        FrameRecord aux = complete;

        complete   = processing;
        processing = aux;


        var inst = BioClouds.Parameters.Instance;

        if (!inst.SaveSimulationData)
        {
            return;
        }

        //Data recording
        #region BioClouds Datarecording
        NativeMultiHashMap <int, float3> cellmap = m_CellMarkSystem.cloudID2MarkedCellsMap;
        float3 currentCellPosition;
        NativeMultiHashMapIterator <int> it;

        //if ((inst.SaveDenstiies || inst.SavePositions))
        //{
        if (inst.MaxSimulationFrames > CurrentFrame && CurrentFrame % inst.FramesForDataSave == 0)
        {
            for (int i = 0; i < m_CloudDataGroup.Length; i++)
            {
                List <int> cellIDs = new List <int>();

                if (!cellmap.TryGetFirstValue(m_CloudDataGroup.CloudData[i].ID, out currentCellPosition, out it))
                {
                    continue;
                }
                int2 grid_cell = GridConverter.PositionToGridCell(new float3(currentCellPosition.x, currentCellPosition.y, currentCellPosition.z));
                cellIDs.Add(GridConverter.GridCell2CellID(grid_cell));

                while (cellmap.TryGetNextValue(out currentCellPosition, ref it))
                {
                    grid_cell = GridConverter.PositionToGridCell(new float3(currentCellPosition.x, currentCellPosition.y, currentCellPosition.z));
                    cellIDs.Add(GridConverter.GridCell2CellID(grid_cell));
                }

                if (inst.IDToRecord == -1 || m_CloudDataGroup.CloudData[i].ID == inst.IDToRecord)
                {
                    BioClouds.Record record = new BioClouds.Record(frames,
                                                                   m_CloudDataGroup.CloudData[i].ID,
                                                                   m_CloudDataGroup.CloudData[i].AgentQuantity,
                                                                   cellIDs.Count,
                                                                   cellIDs,
                                                                   m_CloudDataGroup.Position[i].Value,
                                                                   m_CloudDataGroup.CloudData[i].Radius
                                                                   );

                    bioCloudsRecords.Add(record);
                }
            }
        }

        //if (inst.MaxSimulationFrames == CurrentFrame - 1)
        //{
        using (System.IO.StreamWriter file =
                   new System.IO.StreamWriter(inst.LogFilePath + "Clouds.txt", true))
        {
            foreach (BioClouds.Record record in bioCloudsRecords)
            {
                file.Write(record.ToString() + '\n');
            }
        }
        bioCloudsRecords.Clear();
        //}
        //}
        #endregion


        #region BioCrowds DataRecording

        //if (inst.MaxSimulationFrames == CurrentFrame - 1)
        //{
        using (System.IO.StreamWriter file =
                   new System.IO.StreamWriter(inst.LogFilePath + "Agents.txt", true))
        {
            file.Write(complete.ToString() + '\n');
        }
        //}

        #endregion
    }