| 22 | namespace exporter { |
| 23 | |
| 24 | pag::Transform2D* GetTransform2D(const AEGP_LayerH& layerHandle, float frameRate) { |
| 25 | const A_long PluginID = GetPluginID(); |
| 26 | const auto Suites = GetSuites(); |
| 27 | auto transform = new pag::Transform2D(); |
| 28 | |
| 29 | AEGP_StreamRefH streamHandle = nullptr; |
| 30 | Suites->StreamSuite4()->AEGP_GetNewLayerStream(PluginID, layerHandle, AEGP_LayerStream_POSITION, |
| 31 | &streamHandle); |
| 32 | A_Boolean dimensionSeparated = 0; |
| 33 | Suites->DynamicStreamSuite4()->AEGP_AreDimensionsSeparated(streamHandle, &dimensionSeparated); |
| 34 | if (dimensionSeparated != 0) { |
| 35 | AEGP_StreamRefH xPosition = nullptr; |
| 36 | Suites->DynamicStreamSuite4()->AEGP_GetSeparationFollower(streamHandle, 0, &xPosition); |
| 37 | transform->xPosition = GetProperty(xPosition, AEStreamParser::FloatParser); |
| 38 | Suites->StreamSuite4()->AEGP_DisposeStream(xPosition); |
| 39 | AEGP_StreamRefH yPosition = nullptr; |
| 40 | Suites->DynamicStreamSuite4()->AEGP_GetSeparationFollower(streamHandle, 1, &yPosition); |
| 41 | transform->yPosition = GetProperty(yPosition, AEStreamParser::FloatParser); |
| 42 | Suites->StreamSuite4()->AEGP_DisposeStream(yPosition); |
| 43 | } else { |
| 44 | transform->position = GetProperty(streamHandle, AEStreamParser::PointParser); |
| 45 | } |
| 46 | Suites->StreamSuite4()->AEGP_DisposeStream(streamHandle); |
| 47 | transform->anchorPoint = |
| 48 | GetProperty(layerHandle, AEGP_LayerStream_ANCHORPOINT, AEStreamParser::PointParser); |
| 49 | QVariantMap map; |
| 50 | map["frameRate"] = frameRate; |
| 51 | transform->scale = |
| 52 | GetProperty(layerHandle, AEGP_LayerStream_SCALE, AEStreamParser::ScaleParser, map, 2); |
| 53 | transform->rotation = |
| 54 | GetProperty(layerHandle, AEGP_LayerStream_ROTATION, AEStreamParser::FloatParser, map); |
| 55 | transform->opacity = |
| 56 | GetProperty(layerHandle, AEGP_LayerStream_OPACITY, AEStreamParser::Opacity0_100Parser); |
| 57 | return transform; |
| 58 | } |
| 59 | |
| 60 | } // namespace exporter |
no test coverage detected