11 Replies Latest reply on May 7, 2017 9:45 AM by oliverIntergrafika

    Once and for all: Is it impossible to retrieve the angle and scale of a Smart Object?

    Heimdaal Level 1

      I've done quite some research on this and I've seen the post from people (like for ex. c.pfaffenbichler ) saying it's impossible to retrieve this data.
      It's obviously stored -somewhere- but it doesn't appear that you can retrieve this information in any way.

      I've used this code to retrieve information from the transform -tool of a Smart Object:


      var idnull = charIDToTypeID("null");
      var layerReference = new ActionReference();
      layerReference.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
      var layerDescriptor = new ActionDescriptor();
      layerDescriptor.putReference(idnull, layerReference);
      layerDescriptor.putEnumerated(charIDToTypeID("FTcs"), charIDToTypeID("QCSt"), charIDToTypeID("Qcsa")); // freeTransformCenterState, quadCenterState, QCSAverage
      var transformDescriptor = app.executeAction(charIDToTypeID("Trnf"), layerDescriptor, DialogModes.ERROR);


      It contains four keys on the format of typeID's. So I converted the typeID's to charID's and this is what I found:
      Index 0 contains the key for: null
      Index 1 contains the key for: FTcs - freeTransformCenterScale
      Index 2 contains the key for: Ofst - offset
      Index 3 contains the key for: Intr - interfaceIconFrameDimmed


      There is no data in this descriptor that holds information about the scale or rotation. So the question is: where the heck is it?
      The transformation widget and the user-interface must get it from somewhere!


      EDIT: Also looked at the descriptor for the smart object - no info there either:

      var ref = new ActionReference ();
      ref.putProperty (stringIDToTypeID ("property"), stringIDToTypeID ("smartObject"));
      ref.putEnumerated (stringIDToTypeID ("layer"), stringIDToTypeID ("ordinal"), stringIDToTypeID ("targetEnum"));
      var smartObjectDescriptor = executeActionGet(ref).getObjectValue(stringIDToTypeID ("smartObject"));

      (Only contains info about it's contents - ie: the linked document - and nothing about transforms)


      Also how can you contact Adobe directly? (like the devs or any devrel -person)