more animation work

This commit is contained in:
ZappoMan 2014-08-07 13:13:37 -07:00
parent f1d2017a9e
commit cd4ea4b34f
4 changed files with 38 additions and 5 deletions

View file

@ -1609,6 +1609,7 @@ function handeMenuEvent(menuItem){
array.push({ label: "Animation URL:", value: properties.animationURL });
array.push({ label: "Animation is playing:", value: properties.animationIsPlaying });
array.push({ label: "Animation FPS:", value: properties.animationFPS });
array.push({ label: "Animation Frame:", value: properties.animationFrameIndex });
}
array.push({ label: "X:", value: properties.position.x.toFixed(decimals) });
array.push({ label: "Y:", value: properties.position.y.toFixed(decimals) });
@ -1634,6 +1635,7 @@ function handeMenuEvent(menuItem){
properties.animationURL = array[index++].value;
properties.animationIsPlaying = array[index++].value;
properties.animationFPS = array[index++].value;
properties.animationFrameIndex = array[index++].value;
}
properties.position.x = array[index++].value;
properties.position.y = array[index++].value;

View file

@ -315,9 +315,11 @@ void EntityTreeRenderer::renderEntityTypeModel(EntityItem* entity, RenderArgs* a
entityItem->mapJoints(modelJointNames);
}
QVector<glm::quat> frameData = entityItem->getAnimationFrame();
for (int i = 0; i < frameData.size(); i++) {
model->setJointState(i, true, frameData[i]);
if (entityItem->jointsMapped()) {
QVector<glm::quat> frameData = entityItem->getAnimationFrame();
for (int i = 0; i < frameData.size(); i++) {
model->setJointState(i, true, frameData[i]);
}
}
}

View file

@ -1078,7 +1078,16 @@ if (childAt) {
}
void EntityTree::changeEntityState(EntityItem* const entity, EntityItem::SimuationState oldState, EntityItem::SimuationState newState) {
if (oldState != newState) {
qDebug() << "EntityTree::changeEntityState()....";
qDebug() << " oldState:" << oldState;
qDebug() << " newState:" << newState;
qDebug() << "EntityTree::changeEntityState() BEFORE....";
qDebug() << " _changingEntities:" << _changingEntities;
qDebug() << " _movingEntities:" << _movingEntities;
//if (oldState != newState) {
switch (oldState) {
case EntityItem::Changing:
_changingEntities.removeAll(entity);
@ -1103,7 +1112,13 @@ void EntityTree::changeEntityState(EntityItem* const entity, EntityItem::Simuati
default:
break;
}
}
//}
qDebug() << "EntityTree::changeEntityState() AFTER....";
qDebug() << " _changingEntities:" << _changingEntities;
qDebug() << " _movingEntities:" << _movingEntities;
}
void EntityTree::update() {

View file

@ -33,6 +33,8 @@ ModelEntityItem::ModelEntityItem(const EntityItemID& entityItemID, const EntityI
qDebug() << "ModelEntityItem::ModelEntityItem() calling setProperties()";
setProperties(properties);
qDebug() << "ModelEntityItem::ModelEntityItem() getModelURL()=" << getModelURL();
_animationFrameIndex = 0.0f;
}
EntityItemProperties ModelEntityItem::getProperties() const {
@ -840,6 +842,18 @@ QVector<glm::quat> ModelEntityItem::getAnimationFrame() {
if (frameCount > 0) {
int animationFrameIndex = (int)glm::floor(_animationFrameIndex) % frameCount;
if (animationFrameIndex < 0 || animationFrameIndex > frameCount) {
qDebug() << "ModelEntityItem::getAnimationFrame()....";
qDebug() << " frame index out of bounds....";
qDebug() << " _animationFrameIndex=" << _animationFrameIndex;
qDebug() << " frameCount=" << frameCount;
qDebug() << " animationFrameIndex=" << animationFrameIndex;
animationFrameIndex = 0;
}
//qDebug() << "ModelEntityItem::getAnimationFrame().... _animationFrameIndex=" << _animationFrameIndex << "frameCount=" << frameCount << "animationFrameIndex=" << animationFrameIndex;
QVector<glm::quat> rotations = frames[animationFrameIndex].rotations;
frameData.resize(_jointMapping.size());
for (int j = 0; j < _jointMapping.size(); j++) {