mSizeBase.PushBack(Vector3(0.0f,0.0f,0.0f));
mComponentDirty.PushBack(false);
mLocalMatrixDirty.PushBack(false);
- mComponentChanged.PushBack(false);
- mPrevWorld.PushBack(Matrix::IDENTITY);
- mUpdateSizeHint.PushBack(Vector3(0.0f,0.0f,0.0f));
- mUpdateSizeHintBase.PushBack(Vector3(0.0f,0.0f,0.0f));
}
else
{
mSizeBase[mComponentCount] = Vector3(0.0f,0.0f,0.0f);
mComponentDirty[mComponentCount] = false;
mLocalMatrixDirty[mComponentCount] = false;
- mComponentChanged[mComponentCount] = false;
- mPrevWorld[mComponentCount].SetIdentity();
- mUpdateSizeHint[mComponentCount] = Vector3(0.0f,0.0f,0.0f);
- mUpdateSizeHintBase[mComponentCount] = Vector3(0.0f,0.0f,0.0f);
}
mComponentCount++;
mComponentDirty[index] = mComponentDirty[mComponentCount];
mLocalMatrixDirty[index] = mLocalMatrixDirty[mComponentCount];
mBoundingSpheres[index] = mBoundingSpheres[mComponentCount];
- mComponentChanged[index] = mComponentChanged[mComponentCount];
- mPrevWorld[index] = mPrevWorld[mComponentCount];
- mUpdateSizeHint[index] = mUpdateSizeHint[mComponentCount];
- mUpdateSizeHintBase[index] = mUpdateSizeHintBase[mComponentCount];
TransformId lastItemId = mComponentId[mComponentCount];
mIds[ lastItemId ] = index;
{
mInheritanceMode[ index ] &= ~INHERIT_ORIENTATION;
}
+
mComponentDirty[index] = true;
}
memcpy( &mTxComponentAnimatable[0], &mTxComponentAnimatableBaseValue[0], sizeof(TransformComponentAnimatable)*mComponentCount );
memcpy( &mSize[0], &mSizeBase[0], sizeof(Vector3)*mComponentCount );
memset( &mLocalMatrixDirty[0], false, sizeof(bool)*mComponentCount );
- memcpy( &mUpdateSizeHint[0], &mUpdateSizeHintBase[0], sizeof(Vector3)*mComponentCount );
}
}
const Vector3 topLeft( 0.0f, 0.0f, 0.5f );
for( unsigned int i(0); i<mComponentCount; ++i )
{
- mPrevWorld[i] = mWorld[i];
-
if( DALI_LIKELY( mInheritanceMode[i] != DONT_INHERIT_TRANSFORM && mParent[i] != INVALID_TRANSFORM_ID ) )
{
const TransformId& parentIndex = mIds[mParent[i] ];
mBoundingSpheres[i] = mWorld[i].GetTranslation();
mBoundingSpheres[i].w = Length( centerToEdgeWorldSpace );
- mComponentChanged[i] = false;
-
- // Due to parent transformation child transformation could be changed
- if( mComponentDirty[i] ||
- mPrevWorld[i] != mWorld[i] )
- {
- mComponentChanged[i] = true;
- }
-
mComponentDirty[i] = false;
-
}
}
std::swap( mComponentDirty[i], mComponentDirty[j] );
std::swap( mBoundingSpheres[i], mBoundingSpheres[j] );
std::swap( mWorld[i], mWorld[j] );
- std::swap( mComponentChanged[i], mComponentChanged[j] );
- std::swap( mPrevWorld[i], mPrevWorld[j] );
- std::swap( mUpdateSizeHint[i], mUpdateSizeHint[j] );
- std::swap( mUpdateSizeHintBase[i], mUpdateSizeHintBase[j] );
mIds[ mComponentId[i] ] = i;
mIds[ mComponentId[j] ] = j;
mComponentDirty[ index ] = true;
return mSize[ index ];
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- TransformId index( mIds[id] );
- mComponentDirty[ index ] = true;
- return mUpdateSizeHint[ index ];
- }
default:
{
DALI_ASSERT_ALWAYS(false);
{
return mSize[ mIds[id] ];
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- return mUpdateSizeHint[ mIds[id] ];
- }
default:
{
DALI_ASSERT_ALWAYS(false);
{
return mSize[ mIds[id] ][component];
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- return mUpdateSizeHint[ mIds[id] ][component];
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ] = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ] = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ][component] = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ][component] = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ] = mSizeBase[index] = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ] = mUpdateSizeHintBase[index] = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ] = mSizeBase[index] = mSize[ index ] + value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ] = mUpdateSizeHintBase[index] = mUpdateSizeHint[ index ] + value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ] = mSizeBase[index] = mSize[ index ] * value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ] = mUpdateSizeHintBase[index] = mUpdateSizeHint[ index ] * value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ][component] = mSizeBase[index][component] = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ][component] = mUpdateSizeHintBase[index][component] = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ].x = mSizeBase[index].x = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ].x = mUpdateSizeHintBase[index].x = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ].y = mSizeBase[index].y = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ].y = mUpdateSizeHintBase[index].y = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
mSize[ index ].z = mSizeBase[index].z = value;
break;
}
- case TRANSFORM_PROPERTY_UPDATE_SIZE_HINT:
- {
- mUpdateSizeHint[ index ].z = mUpdateSizeHintBase[index].z = value;
- break;
- }
default:
{
DALI_ASSERT_ALWAYS(false);
return mBoundingSpheres[ mIds[id] ];
}
-bool TransformManager::IsComponentChanged( TransformId id )
-{
- return mComponentChanged[ mIds[id]];
-}
-
void TransformManager::GetWorldMatrixAndSize( TransformId id, Matrix& worldMatrix, Vector3& size ) const
{
TransformId index = mIds[id];
size = mSize[index];
}
-const Vector3& TransformManager::GetUpdateSizeHint( TransformId id ) const
-{
- return mUpdateSizeHint[ mIds[id] ];
-}
-
void TransformManager::SetPositionUsesAnchorPoint( TransformId id, bool value )
{
TransformId index( mIds[ id ] );