예제 #1
0
 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;
 }
예제 #2
0
 public MultilayerArrangement(Arrangement layer1)
 {
     numlayers = 1;
     layers = new Arrangement[numlayers];
     layers[0] = layer1;
     opacity = new double[numlayers];
     opacity[0] = 1;
     this.Name = layer1.Name;
 }
예제 #3
0
 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;
 }