void UMovieScene2DTransformSection::AddKeyToNamedCurve(float Time, const F2DTransformKey& TransformKey) { static FName TranslationName("Translation"); static FName ScaleName("Scale"); static FName ShearName("Shear"); static FName AngleName("Angle"); FName CurveName = TransformKey.CurveName; if(CurveName == TranslationName) { AddKeyToCurve(Translation[0], Time, TransformKey.Value.Translation.X); AddKeyToCurve(Translation[1], Time, TransformKey.Value.Translation.Y); } else if(CurveName == ScaleName) { AddKeyToCurve(Scale[0], Time, TransformKey.Value.Scale.X); AddKeyToCurve(Scale[1], Time, TransformKey.Value.Scale.Y); } else if(CurveName == ShearName) { AddKeyToCurve(Shear[0], Time, TransformKey.Value.Shear.X); AddKeyToCurve(Shear[1], Time, TransformKey.Value.Shear.Y); } else if(CurveName == AngleName) { AddKeyToCurve(Rotation, Time, TransformKey.Value.Angle); } }
void UMovieScene3DTransformSection::AddScaleKeys( const FTransformKey& TransformKey ) { const float Time = TransformKey.GetKeyTime(); if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyScale( EAxis::X ) || Scale[0].GetNumKeys() == 0 ) { AddKeyToCurve( Scale[0], Time, TransformKey.GetScaleValue().X, TransformKey.KeyParams ); } if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyScale( EAxis::Y ) || Scale[1].GetNumKeys() == 0 ) { AddKeyToCurve( Scale[1], Time, TransformKey.GetScaleValue().Y, TransformKey.KeyParams ); } if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyScale( EAxis::Z ) || Scale[2].GetNumKeys() == 0 ) { AddKeyToCurve( Scale[2], Time, TransformKey.GetScaleValue().Z, TransformKey.KeyParams ); } }
void UMovieScene3DTransformSection::AddRotationKeys( const FTransformKey& TransformKey, const bool bUnwindRotation ) { const float Time = TransformKey.GetKeyTime(); if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyRotation( EAxis::X ) || Rotation[0].GetNumKeys() == 0 ) { AddKeyToCurve( Rotation[0], Time, TransformKey.GetRotationValue().Roll, TransformKey.KeyParams, bUnwindRotation ); } if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyRotation( EAxis::Y ) || Rotation[1].GetNumKeys() == 0 ) { AddKeyToCurve( Rotation[1], Time, TransformKey.GetRotationValue().Pitch, TransformKey.KeyParams, bUnwindRotation ); } if( TransformKey.KeyParams.bAddKeyEvenIfUnchanged || TransformKey.ShouldKeyRotation( EAxis::Z ) || Rotation[2].GetNumKeys() == 0 ) { AddKeyToCurve( Rotation[2], Time, TransformKey.GetRotationValue().Yaw, TransformKey.KeyParams, bUnwindRotation ); } }
void UMovieScene2DTransformSection::AddKey( float Time, const struct F2DTransformKey& TransformKey ) { Modify(); if(TransformKey.CurveName == NAME_None) { AddKeyToCurve(Translation[0], Time, TransformKey.Value.Translation.X); AddKeyToCurve(Translation[1], Time, TransformKey.Value.Translation.Y); AddKeyToCurve(Scale[0], Time, TransformKey.Value.Scale.X); AddKeyToCurve(Scale[1], Time, TransformKey.Value.Scale.Y); AddKeyToCurve(Shear[0], Time, TransformKey.Value.Shear.X); AddKeyToCurve(Shear[1], Time, TransformKey.Value.Shear.Y); AddKeyToCurve(Rotation, Time, TransformKey.Value.Angle); } else { AddKeyToNamedCurve(Time, TransformKey); } }
void UMovieScene2DTransformSection::AddKey( float Time, const struct F2DTransformKey& TransformKey, FKeyParams KeyParams ) { Modify(); static FName TranslationName("Translation"); static FName ScaleName("Scale"); static FName ShearName("Shear"); static FName AngleName("Angle"); FName CurveName = TransformKey.CurveName; bool bTxKeyExists = Translation[0].IsKeyHandleValid(Translation[0].FindKey(Time)); bool bTyKeyExists = Translation[1].IsKeyHandleValid(Translation[1].FindKey(Time)); bool bRKeyExists = Rotation.IsKeyHandleValid(Rotation.FindKey(Time)); bool bHxKeyExists = Shear[0].IsKeyHandleValid(Shear[0].FindKey(Time)); bool bHyKeyExists = Shear[1].IsKeyHandleValid(Shear[1].FindKey(Time)); bool bSxKeyExists = Scale[0].IsKeyHandleValid(Scale[0].FindKey(Time)); bool bSyKeyExists = Scale[1].IsKeyHandleValid(Scale[1].FindKey(Time)); if ( (CurveName == NAME_None || CurveName == TranslationName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bTxKeyExists && !KeyParams.bAutoKeying && Translation[0].GetNumKeys() > 0) ) ) { AddKeyToCurve(Translation[0], Time, TransformKey.Value.Translation.X, KeyParams); } if ( (CurveName == NAME_None || CurveName == TranslationName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bTyKeyExists && !KeyParams.bAutoKeying && Translation[1].GetNumKeys() > 0) ) ) { AddKeyToCurve(Translation[1], Time, TransformKey.Value.Translation.Y, KeyParams); } if ( (CurveName == NAME_None || CurveName == ScaleName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bSxKeyExists && !KeyParams.bAutoKeying && Scale[0].GetNumKeys() > 0) ) ) { AddKeyToCurve(Scale[0], Time, TransformKey.Value.Scale.X, KeyParams); } if ( (CurveName == NAME_None || CurveName == ScaleName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bSyKeyExists && !KeyParams.bAutoKeying && Scale[1].GetNumKeys() > 0) ) ) { AddKeyToCurve(Scale[1], Time, TransformKey.Value.Scale.Y, KeyParams); } if ( (CurveName == NAME_None || CurveName == ShearName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bHxKeyExists && !KeyParams.bAutoKeying && Shear[0].GetNumKeys() > 0) ) ) { AddKeyToCurve(Shear[0], Time, TransformKey.Value.Shear.X, KeyParams); } if ( (CurveName == NAME_None || CurveName == ShearName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bHyKeyExists && !KeyParams.bAutoKeying && Shear[1].GetNumKeys() > 0) ) ) { AddKeyToCurve(Shear[1], Time, TransformKey.Value.Shear.Y, KeyParams); } if ( (CurveName == NAME_None || CurveName == AngleName) && (KeyParams.bAddKeyEvenIfUnchanged || !(!bRKeyExists && !KeyParams.bAutoKeying && Rotation.GetNumKeys() > 0) ) ) { AddKeyToCurve(Rotation, Time, TransformKey.Value.Angle, KeyParams); } }
void UMovieSceneComposurePostMoveSettingsSection::AddKey(float Time, const struct FComposurePostMoveSettingsKey& Key, EMovieSceneKeyInterpolation KeyInterpolation) { FRichCurve& Curve = GetCurve(Key.Channel, Key.Axis); AddKeyToCurve(Curve, Time, Key.Value, KeyInterpolation); }