public MultilayerArrangement[] getArrangements() { MultilayerArrangement[] output; this.SeekToOffset(0x01D0BC9C); ushort numlayers = this.ReadUInt16(); ushort numarrs = this.ReadUInt16(); output = new MultilayerArrangement[numarrs]; Arrangement[] layers = new Arrangement[numlayers]; for (int i = 0; i < numlayers; i++) layers[i] = GetMO3Layer(i); MultilayerArrangement temp; this.SeekToOffset(0x1D1EFC0); ushort layer1, layer2, alpha1, alpha2; for (int i = 0; i < numarrs; i++) { this.SeekToOffset(0x1D1EFC0 + i * 12); layer1 = this.ReadUInt16(); layer2 = this.ReadUInt16(); alpha1 = this.ReadUInt16(); alpha2 = this.ReadUInt16(); temp = new MultilayerArrangement(layers[layer1], layers[layer2]); temp.opacity[0] = alpha1 / 16.0; temp.opacity[1] = alpha2 / 16.0; output[i] = temp; } Console.WriteLine("Read {0} arrangements", output.Length); this.Close(); this.Dispose(); return output; }
public MultilayerArrangement(Arrangement layer1) { numlayers = 1; layers = new Arrangement[numlayers]; layers[0] = layer1; opacity = new double[numlayers]; opacity[0] = 1; this.Name = layer1.Name; }
public MultilayerArrangement(Arrangement layer1, Arrangement layer2) { numlayers = 2; layers = new Arrangement[numlayers]; opacity = new double[numlayers]; layers[0] = layer1; layers[1] = layer2; opacity[0] = 1; opacity[1] = 1; this.Name = layer1.Name + " + " + layer2.Name; }