void UMovieSceneParameterSection::AddVectorParameterKey( FName InParameterName, float InTime, FVector InValue ) { FVectorParameterNameAndCurves* ExistingCurves = nullptr; for ( FVectorParameterNameAndCurves& VectorParameterNameAndCurve : VectorParameterNamesAndCurves ) { if ( VectorParameterNameAndCurve.ParameterName == InParameterName ) { ExistingCurves = &VectorParameterNameAndCurve; break; } } if ( ExistingCurves == nullptr ) { int32 NewIndex = VectorParameterNamesAndCurves.Add( FVectorParameterNameAndCurves( InParameterName ) ); VectorParameterNamesAndCurves[NewIndex].Index = VectorParameterNamesAndCurves.Num() + VectorParameterNamesAndCurves.Num() - 1; ExistingCurves = &VectorParameterNamesAndCurves[NewIndex]; } ExistingCurves->XCurve.AddKey( InTime, InValue.X ); ExistingCurves->YCurve.AddKey( InTime, InValue.Y ); ExistingCurves->ZCurve.AddKey( InTime, InValue.Z ); }
void UMovieSceneMaterialParameterSection::AddVectorParameterKey( FName InParameterName, float InTime, FLinearColor InValue ) { FVectorParameterNameAndCurves* ExistingCurves = nullptr; for ( FVectorParameterNameAndCurves& VectorParameterNameAndCurve : VectorParameterNamesAndCurves ) { if ( VectorParameterNameAndCurve.ParameterName == InParameterName ) { ExistingCurves = &VectorParameterNameAndCurve; break; } } if ( ExistingCurves == nullptr ) { int32 NewIndex = VectorParameterNamesAndCurves.Add( FVectorParameterNameAndCurves( InParameterName ) ); VectorParameterNamesAndCurves[NewIndex].Index = VectorParameterNamesAndCurves.Num() + VectorParameterNamesAndCurves.Num() - 1; ExistingCurves = &VectorParameterNamesAndCurves[NewIndex]; } ExistingCurves->RedCurve.AddKey( InTime, InValue.R ); ExistingCurves->GreenCurve.AddKey( InTime, InValue.G ); ExistingCurves->BlueCurve.AddKey( InTime, InValue.B ); ExistingCurves->AlphaCurve.AddKey( InTime, InValue.A ); }