mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-02-04 19:04:08 +00:00
anim edit: slightly more useful border modes
This commit is contained in:
parent
cf70cfe48d
commit
e35dfb9f68
2 changed files with 44 additions and 19 deletions
|
@ -220,7 +220,7 @@ void AnimationEditor::applyState()
|
||||||
selectedStripPoint = 0;
|
selectedStripPoint = 0;
|
||||||
mouseSelection = true;
|
mouseSelection = true;
|
||||||
editingFile = "Naija";
|
editingFile = "Naija";
|
||||||
renderBorders = false;
|
renderBorderMode = RENDER_BORDER_MINIMAL;
|
||||||
ae = this;
|
ae = this;
|
||||||
StateObject::applyState();
|
StateObject::applyState();
|
||||||
boneEdit = 0;
|
boneEdit = 0;
|
||||||
|
@ -1454,7 +1454,9 @@ void AnimationEditor::toggleRenderBorders()
|
||||||
{
|
{
|
||||||
if (dsq->isNested()) return;
|
if (dsq->isNested()) return;
|
||||||
|
|
||||||
renderBorders = !renderBorders;
|
renderBorderMode = (RenderBorderMode)(renderBorderMode + 1);
|
||||||
|
if(renderBorderMode > RENDER_BORDER_ALL)
|
||||||
|
renderBorderMode = RENDER_BORDER_NONE;
|
||||||
updateRenderBorders();
|
updateRenderBorders();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1463,14 +1465,44 @@ void AnimationEditor::updateRenderBorders()
|
||||||
if (!editSprite)
|
if (!editSprite)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
// reset
|
||||||
for (size_t i = 0; i < editSprite->bones.size(); ++i)
|
for (size_t i = 0; i < editSprite->bones.size(); ++i)
|
||||||
{
|
{
|
||||||
Bone *b = editSprite->bones[i];
|
Bone *b = editSprite->bones[i];
|
||||||
b->renderBorder = renderBorders;
|
b->renderBorder = false;
|
||||||
b->renderCenter = renderBorders;
|
b->renderCenter = false;
|
||||||
b->borderAlpha = 0.8f;
|
b->borderAlpha = 0.8f;
|
||||||
b->renderBorderColor = Vector(1,1,1);
|
b->renderBorderColor = Vector(1,1,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(renderBorderMode == RENDER_BORDER_NONE)
|
||||||
|
return;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Animation *a = editSprite->getCurrentAnimation();
|
||||||
|
for(size_t i = 0; i < a->interpolators.size(); ++i)
|
||||||
|
{
|
||||||
|
const BoneGridInterpolator& bgip = a->interpolators[i];
|
||||||
|
if(Bone *b = editSprite->getBoneByIdx(bgip.idx))
|
||||||
|
{
|
||||||
|
b->renderBorder = true;
|
||||||
|
b->renderCenter = true;
|
||||||
|
b->borderAlpha = 0.4f;
|
||||||
|
b->renderBorderColor = Vector(0.2f, 0.9f, 0.2f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(renderBorderMode == RENDER_BORDER_ALL)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < editSprite->bones.size(); ++i)
|
||||||
|
{
|
||||||
|
Bone *b = editSprite->bones[i];
|
||||||
|
b->renderBorder = true;
|
||||||
|
b->renderCenter = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationEditor::updateEditingBone()
|
void AnimationEditor::updateEditingBone()
|
||||||
|
@ -1541,21 +1573,7 @@ void AnimationEditor::onKeyframeChanged()
|
||||||
{
|
{
|
||||||
applyBoneToSplineGrid();
|
applyBoneToSplineGrid();
|
||||||
|
|
||||||
Animation *a = editSprite->getCurrentAnimation();
|
|
||||||
|
|
||||||
updateRenderBorders(); // restore default state
|
updateRenderBorders(); // restore default state
|
||||||
|
|
||||||
for(size_t i = 0; i < a->interpolators.size(); ++i)
|
|
||||||
{
|
|
||||||
const BoneGridInterpolator& bgip = a->interpolators[i];
|
|
||||||
if(Bone *b = editSprite->getBoneByIdx(bgip.idx))
|
|
||||||
{
|
|
||||||
b->renderBorder = true;
|
|
||||||
b->renderCenter = true;
|
|
||||||
b->borderAlpha = 0.4f;
|
|
||||||
b->renderBorderColor = Vector(0.2f, 0.9f, 0.2f);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimationEditor::applyBoneToSplineGrid()
|
void AnimationEditor::applyBoneToSplineGrid()
|
||||||
|
|
|
@ -138,7 +138,14 @@ public:
|
||||||
|
|
||||||
void toggleRenderBorders();
|
void toggleRenderBorders();
|
||||||
void updateRenderBorders();
|
void updateRenderBorders();
|
||||||
bool renderBorders;
|
|
||||||
|
enum RenderBorderMode
|
||||||
|
{
|
||||||
|
RENDER_BORDER_NONE,
|
||||||
|
RENDER_BORDER_MINIMAL,
|
||||||
|
RENDER_BORDER_ALL, // must be last
|
||||||
|
};
|
||||||
|
RenderBorderMode renderBorderMode;
|
||||||
void updateEditingBone();
|
void updateEditingBone();
|
||||||
void showAllBones();
|
void showAllBones();
|
||||||
void incrTimelineUnit();
|
void incrTimelineUnit();
|
||||||
|
|
Loading…
Add table
Reference in a new issue