MCPcopy Create free account
hub / github.com/Tencent/libpag / GetTransform3D

Function GetTransform3D

exporter/src/export/data/Transform3D.cpp:159–202  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159pag::Transform3D* GetTransform3D(const AEGP_LayerH& layerHandle, float frameRate) {
160 const A_long PluginID = GetPluginID();
161 const auto Suites = GetSuites();
162 auto transform = new pag::Transform3D();
163
164 AEGP_StreamRefH streamHandle = nullptr;
165 Suites->StreamSuite4()->AEGP_GetNewLayerStream(PluginID, layerHandle, AEGP_LayerStream_POSITION,
166 &streamHandle);
167 A_Boolean dimensionSeparated = 0;
168 Suites->DynamicStreamSuite4()->AEGP_AreDimensionsSeparated(streamHandle, &dimensionSeparated);
169 if (dimensionSeparated != 0) {
170 AEGP_StreamRefH xPosition = nullptr;
171 Suites->DynamicStreamSuite4()->AEGP_GetSeparationFollower(streamHandle, 0, &xPosition);
172 transform->xPosition = GetProperty(xPosition, AEStreamParser::FloatParser);
173 Suites->StreamSuite4()->AEGP_DisposeStream(xPosition);
174
175 AEGP_StreamRefH yPosition = nullptr;
176 Suites->DynamicStreamSuite4()->AEGP_GetSeparationFollower(streamHandle, 1, &yPosition);
177 transform->yPosition = GetProperty(yPosition, AEStreamParser::FloatParser);
178 Suites->StreamSuite4()->AEGP_DisposeStream(yPosition);
179
180 AEGP_StreamRefH zPosition = nullptr;
181 Suites->DynamicStreamSuite4()->AEGP_GetSeparationFollower(streamHandle, 1, &zPosition);
182 transform->zPosition = GetProperty(zPosition, AEStreamParser::FloatParser);
183 Suites->StreamSuite4()->AEGP_DisposeStream(zPosition);
184 } else {
185 transform->position = GetProperty(streamHandle, AEStreamParser::Point3DParser);
186 }
187 Suites->StreamSuite4()->AEGP_DisposeStream(streamHandle);
188 transform->anchorPoint =
189 GetProperty(layerHandle, AEGP_LayerStream_ANCHORPOINT, AEStreamParser::Point3DParser);
190 transform->scale =
191 GetProperty(layerHandle, AEGP_LayerStream_SCALE, AEStreamParser::Scale3DParser, {}, 3);
192 transform->orientation = GetOrientationKeyframe(layerHandle, frameRate);
193 transform->xRotation =
194 GetProperty(layerHandle, AEGP_LayerStream_ROTATE_X, AEStreamParser::FloatParser);
195 transform->yRotation =
196 GetProperty(layerHandle, AEGP_LayerStream_ROTATE_Y, AEStreamParser::FloatParser);
197 transform->zRotation =
198 GetProperty(layerHandle, AEGP_LayerStream_ROTATE_Z, AEStreamParser::FloatParser);
199 transform->opacity =
200 GetProperty(layerHandle, AEGP_LayerStream_OPACITY, AEStreamParser::Opacity0_100Parser);
201 return transform;
202}
203
204} // namespace exporter

Callers 1

InitLayerFunction · 0.85

Calls 4

GetPluginIDFunction · 0.85
GetSuitesFunction · 0.85
GetPropertyFunction · 0.85
GetOrientationKeyframeFunction · 0.85

Tested by

no test coverage detected