public Matrix2D(BinaryReverseReader r)
 {
     this.M11 = r.ReadDouble();
     this.M12 = r.ReadDouble();
     this.M13 = r.ReadDouble();
     this.M21 = r.ReadDouble();
     this.M22 = r.ReadDouble();
     this.M23 = r.ReadDouble();
 }
Beispiel #2
0
        public static DynVal ReadValue(BinaryReverseReader r, bool skipKey)
        {
            DynVal vt = new DynVal();

            if (!skipKey)
            {
                vt.Name = GetMeaningOfFourCC(ReadSpecialString(r));
            }

            //TODO: should be assigned a sequential number?
            vt.Type = parseTypeString(new string(r.ReadPSDChars(4)));
            switch (vt.Type)
            {
            case  OSType.tdta:

                uint       unknown = r.ReadUInt32();
                TdTaParser p       = new TdTaParser(r);
                object     o       = p.ParseOneTree();
                vt.Value = o;

                break;

            case  OSType.Descriptor:
                vt = DynVal.ReadDescriptor(r);
                break;

            case OSType.List:
                vt.Children = ReadValues(r, true);
                break;

            case OSType.Double:
                vt.Value = r.ReadDouble();
                break;

            case OSType.UnitFloat:                                              //Unif float
                //TODO: need a specific type for this, with a double and a type (percent/pixel)?
                string tst = GetMeaningOfFourCC(new string(r.ReadPSDChars(4))); //#Prc #Pxl #Ang = percent / pixels / angle?
                double d   = r.ReadDouble();
                tst     += ": " + d;
                vt.Value = tst;
                break;

            case OSType.Enumerated:
                string namesp = ReadSpecialString(r);
                string item   = ReadSpecialString(r);
                //vt.Value = namesp + "." + item; //TODO: cast to real enum
                vt.Value = GetMeaningOfFourCC(namesp) + "." + GetMeaningOfFourCC(item);
                break;

            case OSType.Integer:
                vt.Value = r.ReadInt32();     //4 byte integer
                break;

            case OSType.Boolean:
                vt.Value = r.ReadBoolean();
                break;

            case  OSType.String:
                vt.Value = r.ReadPSDUnicodeString();
                break;

            default:
                throw new Exception("Unhandled type: " + vt.Type);
            }
            return(vt);
        }
Beispiel #3
0
 public PsdUnitFloat(BinaryReverseReader stream)
 {
     unit  = Encoding.Default.GetString(stream.ReadBytes(4));
     value = stream.ReadDouble();
 }
Beispiel #4
0
        public static DynVal ReadValue(BinaryReverseReader r, bool skipKey)
        {
            DynVal vt = new DynVal();
            if (!skipKey)
                vt.Name = GetMeaningOfFourCC(ReadSpecialString(r));

            //TODO: should be assigned a sequential number?
            vt.Type = parseTypeString(new string(r.ReadPSDChars(4)));
            switch (vt.Type)
            {
                case  OSType.tdta:

                    uint unknown = r.ReadUInt32();
                    TdTaParser p = new TdTaParser(r);
                    object o = p.ParseOneTree();
                    vt.Value = o;

                    break;
                case  OSType.Descriptor:
                    vt = DynVal.ReadDescriptor(r);
                    break;
                case OSType.List:
                    vt.Children = ReadValues(r,true);
                    break;
                case OSType.Double:
                    vt.Value = r.ReadDouble();
                    break;
                case OSType.UnitFloat: //Unif float
                    //TODO: need a specific type for this, with a double and a type (percent/pixel)?
                    string tst = GetMeaningOfFourCC(new string(r.ReadPSDChars(4))); //#Prc #Pxl #Ang = percent / pixels / angle?
                    double d = r.ReadDouble();
                    tst += ": " + d;
                    vt.Value = tst;
                    break;
                case OSType.Enumerated:
                    string namesp = ReadSpecialString(r);
                    string item = ReadSpecialString(r);
                    //vt.Value = namesp + "." + item; //TODO: cast to real enum
                    vt.Value = GetMeaningOfFourCC(namesp) + "." + GetMeaningOfFourCC(item);
                    break;
                case OSType.Integer:
                    vt.Value = r.ReadInt32(); //4 byte integer
                    break;
                case OSType.Boolean:
                    vt.Value = r.ReadBoolean();
                    break;
                case  OSType.String:
                    vt.Value = r.ReadPSDUnicodeString();
                    break;

                default:
                    throw new Exception("Unhandled type: " + vt.Type);
            }
            return vt;
        }
Beispiel #5
0
 /**
  * Instantiates a new psd double.
  *
  * @param stream the stream
  * @throws IOException Signals that an I/O exception has occurred.
  */
 public PsdDouble(BinaryReverseReader stream)
 {
     offset = stream.BaseStream.Position;
     value  = stream.ReadDouble();
 }