public override bool UnPack(BinaryReader reader) { throw new NotSupportedException(); SplitingPlane.UnPack(reader); return(true); }
public virtual bool UnPack(BinaryReader reader) { SplitingPlane.UnPack(reader); switch (Type) { case BspNodeType.BPnn: case BspNodeType.BPIn: { if (!UnPackChild(out BspNode posNode, reader)) { return(false); } PosNode = posNode; break; } case BspNodeType.BpIN: case BspNodeType.BpnN: { if (!UnPackChild(out BspNode negNode, reader)) { return(false); } NegNode = negNode; break; } case BspNodeType.BPIN: case BspNodeType.BPnN: { if (!UnPackChild(out BspNode posNode, reader)) { return(false); } PosNode = posNode; if (!UnPackChild(out BspNode negNode, reader)) { return(false); } NegNode = negNode; break; } } if (PackTreeType != BspTreeType.Drawing) { if (PackTreeType == BspTreeType.Physics) { Sphere.UnPack(reader); } return(true); } Sphere.UnPack(reader); uint numPolys = reader.ReadUInt32(); if (numPolys > 0u) { InPolys = new CPolygon[numPolys]; for (uint i = 0u; i < numPolys; i++) { InPolys[i] = PackPolys[reader.ReadUInt16()]; } } return(true); }