From f1e12e108869c560d92eb8803e4b5104c7d8f85d Mon Sep 17 00:00:00 2001 From: Fox Caminiti Date: Mon, 8 Aug 2022 17:12:52 -0400 Subject: mask improvements; pen tool added --- createcalls.cpp | 52 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 22 deletions(-) (limited to 'createcalls.cpp') diff --git a/createcalls.cpp b/createcalls.cpp index a15ab70..5144cf0 100644 --- a/createcalls.cpp +++ b/createcalls.cpp @@ -255,9 +255,18 @@ Layer_LocalToScreenSpace(project_layer *Layer, ui *UI, comp_buffer CompBuffer, v return ImVec2(ScreenPoint.x, ScreenPoint.y); } + +static void +Mask_PushPoint(mask *Mask, v2 Pos) +{ + mask_point *PointToAdd = &Mask->Point[Mask->NumberOfPoints]; + PointToAdd->Pos = Pos; + Mask->NumberOfPoints++; +} + static void -Mask_AddPoint(mask *Mask, ImVec2 Pos, ImVec2 TangentLeft, ImVec2 TangentRight, - ImVec2 Ratio0, ImVec2 Ratio1, uint16 Index) +Mask_AddPointToCurve(mask *Mask, ImVec2 Pos, ImVec2 TangentLeft, ImVec2 TangentRight, + ImVec2 Ratio0, ImVec2 Ratio1, uint16 Index) { mask_point *Point = &Mask->Point[Index]; mask_point *NextPoint = &Mask->Point[Index+1]; @@ -272,8 +281,6 @@ Mask_AddPoint(mask *Mask, ImVec2 Pos, ImVec2 TangentLeft, ImVec2 TangentRight, PointToAdd->Pos = {Pos.x, Pos.y}; PointToAdd->TangentLeft = {-TangentLeft.x, -TangentLeft.y}; PointToAdd->TangentRight = {-TangentRight.x, -TangentRight.y}; - PointToAdd->TangentLeft = {-TangentLeft.x, -TangentLeft.y}; - PointToAdd->TangentRight = {-TangentRight.x, -TangentRight.y}; Mask->NumberOfPoints++; } @@ -286,24 +293,25 @@ LoadTestFootage(project_data *File, project_state *State, memory *Memory) Layer_CreateFromSource(File, State, Memory, Source); SelectLayer(File->Layer[0], State, 0); AddEffect(File->Layer[0], Memory, 3); - mask *Mask = &File->Layer[0]->Mask[0]; - File->Layer[0]->NumberOfMasks = 1; - Mask->Point[0].Pos = V2(200, 200); - Mask->Point[1].Pos = V2(1280, 0); - Mask->Point[2].Pos = V2(1280, 720); - Mask->Point[3].Pos = V2(0, 720); - - Mask->Point[0].TangentLeft = V2(-50, 0); - Mask->Point[1].TangentLeft = V2(-50, 0); - Mask->Point[2].TangentLeft = V2(-50, 0); - Mask->Point[3].TangentLeft = V2(-50, 0); - - Mask->Point[0].TangentRight = V2(50, 0); - Mask->Point[1].TangentRight = V2(50, 0); - Mask->Point[2].TangentRight = V2(50, 0); - Mask->Point[3].TangentRight = V2(50, 0); - - Mask->NumberOfPoints = 4; + + // mask *Mask = &File->Layer[0]->Mask[0]; + // File->Layer[0]->NumberOfMasks = 1; + // Mask->Point[0].Pos = V2(200, 200); + // Mask->Point[1].Pos = V2(1280, 0); + // Mask->Point[2].Pos = V2(1280, 720); + // Mask->Point[3].Pos = V2(0, 720); + + // Mask->Point[0].TangentLeft = V2(-50, 0); + // Mask->Point[1].TangentLeft = V2(-50, 0); + // Mask->Point[2].TangentLeft = V2(-50, 0); + // Mask->Point[3].TangentLeft = V2(-50, 0); + + // Mask->Point[0].TangentRight = V2(50, 0); + // Mask->Point[1].TangentRight = V2(50, 0); + // Mask->Point[2].TangentRight = V2(50, 0); + // Mask->Point[3].TangentRight = V2(50, 0); + // Mask->NumberOfPoints = 4; + // property_channel *Property = &File->Layer[0]->x; // ManualKeyframeInsertF(Property, Memory, 1, 500); // ManualKeyframeInsertF(Property, Memory, 30, 800); -- cgit v1.2.3