| 69 | std::shared_ptr<PAGExportSession> session); |
| 70 | |
| 71 | static void ModifyTransform3DForCameraLayer(pag::Layer* layer, AEGP_LayerFlags layerFlags) { |
| 72 | if (layer->type() != pag::LayerType::Camera) { |
| 73 | return; |
| 74 | } |
| 75 | auto transform3D = layer->transform3D; |
| 76 | if (transform3D == nullptr) { |
| 77 | return; |
| 78 | } |
| 79 | |
| 80 | if (transform3D->scale->animatable()) { |
| 81 | delete transform3D->scale; |
| 82 | transform3D->scale = new pag::Property<pag::Point3D>(); |
| 83 | } |
| 84 | transform3D->scale->value = pag::Point3D::Make(1, 1, 1); |
| 85 | |
| 86 | if (transform3D->opacity->animatable()) { |
| 87 | delete transform3D->opacity; |
| 88 | transform3D->opacity = new pag::Property<pag::Opacity>(); |
| 89 | } |
| 90 | transform3D->opacity->value = pag::Opaque; |
| 91 | |
| 92 | if (!(layerFlags & AEGP_LayerFlag_LOOK_AT_POI)) { |
| 93 | delete transform3D->anchorPoint; |
| 94 | |
| 95 | auto position = transform3D->position; |
| 96 | if (!position->animatable()) { |
| 97 | transform3D->anchorPoint = new pag::Property<pag::Point3D>(); |
| 98 | transform3D->anchorPoint->value = position->value; |
| 99 | } else { |
| 100 | std::vector<pag::Keyframe<pag::Point3D>*> anchorPointKeyframes; |
| 101 | for (auto& srcKeyFrame : |
| 102 | static_cast<pag::AnimatableProperty<pag::Point3D>*>(position)->keyframes) { |
| 103 | auto dstKeyframe = new pag::Keyframe<pag::Point3D>(); |
| 104 | dstKeyframe->startValue = srcKeyFrame->startValue; |
| 105 | dstKeyframe->endValue = srcKeyFrame->endValue; |
| 106 | dstKeyframe->startTime = srcKeyFrame->startTime; |
| 107 | dstKeyframe->endTime = srcKeyFrame->endTime; |
| 108 | dstKeyframe->bezierOut = srcKeyFrame->bezierOut; |
| 109 | dstKeyframe->bezierIn = srcKeyFrame->bezierIn; |
| 110 | dstKeyframe->spatialOut = srcKeyFrame->spatialOut; |
| 111 | dstKeyframe->spatialIn = srcKeyFrame->spatialIn; |
| 112 | anchorPointKeyframes.push_back(dstKeyframe); |
| 113 | } |
| 114 | transform3D->anchorPoint = new pag::AnimatableProperty<pag::Point3D>(anchorPointKeyframes); |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | static void InitLayer(std::shared_ptr<PAGExportSession> session, const AEGP_LayerH& layerHandle, |
| 120 | pag::Layer* layer, ExportLayerType layerType) { |
no test coverage detected