public static MegaFlowParticleData Parse(BinaryReader br, float version) { MegaFlowParticleData p = new MegaFlowParticleData(); //uint code = br.ReadUInt32(); p.pos = ReadVector3(br); p.vel = ReadVector3(br); p.frc = ReadVector3(br); p.vor = ReadVector3(br); p.norm = ReadVector3(br); p.numneigh = br.ReadInt32(); p.uvvector = ReadVector3(br); p.info = br.ReadUInt16(); p.elapsedtime = br.ReadSingle(); p.isotime = br.ReadSingle(); p.viscosity = br.ReadSingle(); p.density = br.ReadSingle(); p.pressure = br.ReadSingle(); p.mass = br.ReadSingle(); p.temperature = br.ReadSingle(); if (version >= 12.0f) { p.id = (uint)br.ReadUInt64(); } else { p.id = br.ReadUInt32(); } return(p); }
static public MegaFlowParticleFrame Parse(BinaryReader br) { uint code = br.ReadUInt32(); if (code == 0xFABADA) { MegaFlowParticleFrame frame = new MegaFlowParticleFrame(); frame.fluidname = br.ReadBytes(250).ToString(); frame.version = br.ReadUInt16(); frame.scale = br.ReadSingle(); frame.ftype = br.ReadInt32(); frame.etime = br.ReadSingle(); frame.fnum = br.ReadInt32(); frame.fps = br.ReadInt32(); frame.numparticles = br.ReadInt32(); frame.radius = br.ReadSingle(); frame.pressure = ReadVector3(br); frame.speed = ReadVector3(br); frame.temperature = ReadVector3(br); if (frame.version >= 7.0f) { frame.emitpos = ReadVector3(br); frame.emitrot = ReadVector3(br); frame.emitscl = ReadVector3(br); } frame.particles = new MegaFlowParticleData[frame.numparticles]; frame.particles1 = new ParticleSystem.Particle[frame.numparticles]; for (int i = 0; i < frame.numparticles; i++) { ParticleSystem.Particle p = MegaFlowParticleData.LoadParticleData(br, frame.version); frame.particles1[i] = p; //MegaFlowParticleData p = MegaFlowParticleData.Parse(br, frame.version); //frame.particles[i] = p; } return(frame); } return(null); }
public static MegaFlowParticleData Parse(BinaryReader br, float version) { MegaFlowParticleData p = new MegaFlowParticleData(); //uint code = br.ReadUInt32(); p.pos = ReadVector3(br); p.vel = ReadVector3(br); p.frc = ReadVector3(br); p.vor = ReadVector3(br); p.norm = ReadVector3(br); p.numneigh = br.ReadInt32(); p.uvvector = ReadVector3(br); p.info = br.ReadUInt16(); p.elapsedtime = br.ReadSingle(); p.isotime = br.ReadSingle(); p.viscosity = br.ReadSingle(); p.density = br.ReadSingle(); p.pressure = br.ReadSingle(); p.mass = br.ReadSingle(); p.temperature = br.ReadSingle(); if ( version >= 12.0f ) p.id = (uint)br.ReadUInt64(); else p.id = br.ReadUInt32(); return p; }