Refactoring

This commit is contained in:
Isaac 2024-05-16 19:38:11 +04:00
parent c9e42893e0
commit e9410f9315
2 changed files with 12 additions and 20 deletions

View File

@ -41,14 +41,12 @@ struct TrimParams {
double end = 0.0;
double offset = 0.0;
TrimType type = TrimType::Simultaneously;
size_t subItemLimit = 0;
TrimParams(double start_, double end_, double offset_, TrimType type_, size_t subItemLimit_) :
TrimParams(double start_, double end_, double offset_, TrimType type_) :
start(start_),
end(end_),
offset(offset_),
type(type_),
subItemLimit(subItemLimit_) {
type(type_) {
}
};

View File

@ -439,9 +439,8 @@ public:
class TrimParamsOutput {
public:
TrimParamsOutput(Trim const &trim, size_t subItemLimit) :
TrimParamsOutput(Trim const &trim) :
type(trim.trimType),
subItemLimit(subItemLimit),
start(trim.start.keyframes),
end(trim.end.keyframes),
offset(trim.offset.keyframes) {
@ -469,12 +468,11 @@ public:
double resolvedOffset = fmod(offsetValue, 360.0) / 360.0;
return TrimParams(resolvedStart, resolvedEnd, resolvedOffset, type, subItemLimit);
return TrimParams(resolvedStart, resolvedEnd, resolvedOffset, type);
}
private:
TrimType type;
size_t subItemLimit = 0;
KeyframeInterpolator<Vector1D> start;
double startValue = 0.0;
@ -974,7 +972,7 @@ public:
}
void addTrim(Trim const &trim) {
trims.push_back(std::make_shared<TrimParamsOutput>(trim, subItems.size()));
trims.push_back(std::make_shared<TrimParamsOutput>(trim));
}
public:
@ -1045,7 +1043,7 @@ public:
}
}
void updateChildren(std::optional<TrimParams> parentTrim) {
void updateContents(std::optional<TrimParams> parentTrim) {
CATransform3D containerTransform = CATransform3D::identity();
double containerOpacity = 1.0;
if (transform) {
@ -1108,14 +1106,12 @@ public:
for (int i = (int)subItems.size() - 1; i >= 0; i--) {
std::optional<TrimParams> childTrim = parentTrim;
for (const auto &trim : trims) {
if (i < (int)trim->trimParams().subItemLimit) {
//TODO:allow combination
//assert(!parentTrim);
childTrim = trim->trimParams();
}
//TODO:allow combination
//assert(!parentTrim);
childTrim = trim->trimParams();
}
subItems[i]->updateChildren(childTrim);
subItems[i]->updateContents(childTrim);
}
}
}
@ -1221,8 +1217,6 @@ private:
itemTree->subItems.clear();
itemTree->addSubItem(groupItem);
//itemTree->addTrim(trim);
break;
}
case ShapeType::Transform: {
@ -1298,7 +1292,7 @@ void ShapeCompositionLayer::displayContentsWithFrame(double frame, bool forceUpd
_frameTime = frame;
_frameTimeInitialized = true;
_contentTree->itemTree->updateFrame(_frameTime);
_contentTree->itemTree->updateChildren(std::nullopt);
_contentTree->itemTree->updateContents(std::nullopt);
}
std::shared_ptr<RenderTreeNode> ShapeCompositionLayer::renderTreeNode() {
@ -1306,7 +1300,7 @@ std::shared_ptr<RenderTreeNode> ShapeCompositionLayer::renderTreeNode() {
_frameTime = 0.0;
_frameTimeInitialized = true;
_contentTree->itemTree->updateFrame(_frameTime);
_contentTree->itemTree->updateChildren(std::nullopt);
_contentTree->itemTree->updateContents(std::nullopt);
}
if (!_renderTreeNode) {