The following is a clunky 3D particle configurator I came up with trying to figure out this particle system. It seems extremely limited compared to the Particle Editor by Gabor. But my problem is the Particle Editor exports an ARX file which I can't seem to use directly with AGK. Is this a standard format I should be able to load with built-in AppGameKit commands or do you need to use the gpup runtime supplied with the Particle Editor?
Thanks!
// Particle Configurator
// 2021 by One Tree Hill Studios
SetErrorMode(2)
SetWindowTitle( "Particles_v1" )
SetWindowSize( 1600, 900, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
SetVirtualResolution( 1900, 1080 )
SetOrientationAllowed( 1, 1, 1, 1 )
SetSyncRate( 30, 0 )
SetScissor( 0,0,0,0 )
UseNewDefaultFonts( 1 )
SetPrintSize(14)
create3DPhysicsWorld(40)
Set3DPhysicsGravity(0, -40, 0)
SetAmbientColor(150, 150, 150)
global textStripFloat as string = "~`@#%&*()_{}[]\/:;?<>,'+=qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM "
dataGap as integer = 30 //Spacing b/w edit boxes
cameraMove as float = 1.0 //Amount to move camera
boxForScale = CreateObjectBox(2, 1, 2)
SetObjectPosition(boxForScale, 4, 0.5, 0)
SetObjectColor(boxForScale, 48, 6, 127, 255)
resetCamera = CreateText("RESET CAMERA")
SetTextSize(resetCamera, 28)
SetTextColor(resetCamera, 150, 150, 150, 255)
SetTextPosition(resetCamera, GetVirtualWidth() - 250, 75)
camera_topDown = CreateText("CAMERA TOP-DOWN")
SetTextSize(camera_topDown, 28)
SetTextColor(camera_topDown, 150, 150, 150, 255)
SetTextPosition(camera_topDown, GetTextX(resetCamera), GetTextY(resetCamera) + 50)
camera_controls = CreateText("Move: WASD, Up/Down/Left/Right, PgUp/PgDn")
SetTextSize(camera_controls, 18)
SetTextMaxWidth(camera_controls, 250)
SetTextColor(camera_controls, 150, 150, 150, 255)
SetTextPosition(camera_controls, GetTextX(resetCamera), GetTextY(camera_topDown) + 100)
//Color Key Frames (manually set here)
data_key_color_1_time as float = 0.0
data_key_color_1_red as integer = 89
data_key_color_1_green as integer = 255
data_key_color_1_blue as integer = 89
data_key_color_1_alpha as integer = 255
data_key_color_2_time as float = 1.0
data_key_color_2_red as integer = 89
data_key_color_2_green as integer = 227
data_key_color_2_blue as integer = 255
data_key_color_2_alpha as integer = 255
data_key_color_3_time as float = 2.0
data_key_color_3_red as integer = 255
data_key_color_3_green as integer = 89
data_key_color_3_blue as integer = 116
data_key_color_3_alpha as integer = 255
//Scale Key Frames (manually set here)
data_key_scale_1_time as float = 0.0
data_key_scale_1_size as float = 1.0
data_key_scale_2_time as float = 1.5
data_key_scale_2_size as float = 0.75
data_key_scale_3_time as float = 2.5
data_key_scale_3_size as float = 0.5
gosub LoadEditBoxes
/*
* Particle Emitter
*/
emitter_1 = Create3DParticles(0, 0.5, 0)
Set3DParticlesSize(emitter_1, ValFloat(GetEditBoxText(edit_size)))
Set3DParticlesMax(emitter_1, ValFloat(GetEditBoxText(edit_max)))
Set3DParticlesLife(emitter_1, ValFloat(GetEditBoxText(edit_life)))
Set3DParticlesFrequency(emitter_1, ValFloat(GetEditBoxText(edit_freq)))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
Set3DParticlesDirectionRange(emitter_1, ValFloat(GetEditBoxText(edit_dr_a1)), ValFloat(GetEditBoxText(edit_dr_a2)))
Set3DParticlesDirection(emitter_1, ValFloat(GetEditBoxText(edit_dir_x)), ValFloat(GetEditBoxText(edit_dir_y)), ValFloat(GetEditBoxText(edit_dir_z)), ValFloat(GetEditBoxText(edit_dir_roll)))
Set3DParticlesVelocityRange(emitter_1, ValFloat(GetEditBoxText(edit_vr_low)), ValFloat(GetEditBoxText(edit_vr_max)))
`Set3DParticlesImage(emitter_1, myEmmiterImage)
`Set3DParticlesTransparency(emitter_1, 1)
Add3DParticlesColorKeyFrame(emitter_1, data_key_color_1_time, data_key_color_1_red, data_key_color_1_green, data_key_color_1_blue, data_key_color_1_alpha)
Add3DParticlesColorKeyFrame(emitter_1, data_key_color_2_time, data_key_color_2_red, data_key_color_2_green, data_key_color_2_blue, data_key_color_2_alpha)
Add3DParticlesColorKeyFrame(emitter_1, data_key_color_3_time, data_key_color_3_red, data_key_color_3_green, data_key_color_3_blue, data_key_color_3_alpha)
Add3DParticlesScaleKeyFrame(emitter_1, data_key_scale_1_time, data_key_scale_1_size)
Add3DParticlesScaleKeyFrame(emitter_1, data_key_scale_2_time, data_key_scale_2_size)
Add3DParticlesScaleKeyFrame(emitter_1, data_key_scale_3_time, data_key_scale_3_size)
Set3DParticlesActive(emitter_1, 1)
do
Print( ScreenFPS() )
Print("Last Key: " + str(GetRawLastKey()) )
if (GetTextHitTest(resetCamera, GetPointerX(), GetPointerY()))
SetTextColor(resetCamera, 255, 0, 0, 255)
if GetPointerPressed()
SetCameraPosition(1, 0, 0, 0)
SetCameraRotation(1, 0, 0, 0)
SetTextColor(resetCamera, 0, 0, 0, 255)
endif
else
SetTextColor(resetCamera, 255, 255, 255, 255)
endif
if (GetTextHitTest(camera_topDown, GetPointerX(), GetPointerY()))
SetTextColor(camera_topDown, 255, 0, 0, 255)
if GetPointerPressed()
SetCameraPosition(1, 0, 7, 0)
SetCameraRotation(1, 90, 0, 0)
SetTextColor(camera_topDown, 0, 0, 0, 255)
endif
else
SetTextColor(camera_topDown, 255, 255, 255, 255)
endif
if (GetEditBoxChanged(edit_size))
SetEditBoxText(edit_size, StripString(GetEditBoxText(edit_size), textStripFloat))
Set3DParticlesSize(emitter_1, ValFloat(GetEditBoxText(edit_size)))
endif
if (GetEditBoxChanged(edit_max))
SetEditBoxText(edit_max, StripString(GetEditBoxText(edit_max), textStripFloat))
Set3DParticlesMax(emitter_1, ValFloat(GetEditBoxText(edit_max)))
endif
if (GetEditBoxChanged(edit_life))
SetEditBoxText(edit_life, StripString(GetEditBoxText(edit_life), textStripFloat))
Set3DParticlesLife(emitter_1, ValFloat(GetEditBoxText(edit_life)))
endif
if (GetEditBoxChanged(edit_freq))
SetEditBoxText(edit_freq, StripString(GetEditBoxText(edit_freq), textStripFloat))
Set3DParticlesFrequency(emitter_1, ValFloat(GetEditBoxText(edit_freq)))
endif
/*
* Direction Range
*/
if (GetEditBoxChanged(edit_dr_a1))
SetEditBoxText(edit_dr_a1, StripString(GetEditBoxText(edit_dr_a1), textStripFloat))
Set3DParticlesDirectionRange(emitter_1, ValFloat(GetEditBoxText(edit_dr_a1)), ValFloat(GetEditBoxText(edit_dr_a2)))
endif
if (GetEditBoxChanged(edit_dr_a2))
SetEditBoxText(edit_dr_a2, StripString(GetEditBoxText(edit_dr_a2), textStripFloat))
Set3DParticlesDirectionRange(emitter_1, ValFloat(GetEditBoxText(edit_dr_a1)), ValFloat(GetEditBoxText(edit_dr_a2)))
endif
/*
* Direction
*/
if (GetEditBoxChanged(edit_dir_x))
SetEditBoxText(edit_dir_x, StripString(GetEditBoxText(edit_dir_x), textStripFloat))
Set3DParticlesDirection(emitter_1, ValFloat(GetEditBoxText(edit_dir_x)), ValFloat(GetEditBoxText(edit_dir_y)), ValFloat(GetEditBoxText(edit_dir_z)), ValFloat(GetEditBoxText(edit_dir_roll)))
endif
if (GetEditBoxChanged(edit_dir_y))
SetEditBoxText(edit_dir_y, StripString(GetEditBoxText(edit_dir_y), textStripFloat))
Set3DParticlesDirection(emitter_1, ValFloat(GetEditBoxText(edit_dir_x)), ValFloat(GetEditBoxText(edit_dir_y)), ValFloat(GetEditBoxText(edit_dir_z)), ValFloat(GetEditBoxText(edit_dir_roll)))
endif
if (GetEditBoxChanged(edit_dir_z))
SetEditBoxText(edit_dir_z, StripString(GetEditBoxText(edit_dir_z), textStripFloat))
Set3DParticlesDirection(emitter_1, ValFloat(GetEditBoxText(edit_dir_x)), ValFloat(GetEditBoxText(edit_dir_y)), ValFloat(GetEditBoxText(edit_dir_z)), ValFloat(GetEditBoxText(edit_dir_roll)))
endif
if (GetEditBoxChanged(edit_dir_roll))
SetEditBoxText(edit_dir_roll, StripString(GetEditBoxText(edit_dir_roll), textStripFloat))
Set3DParticlesDirection(emitter_1, ValFloat(GetEditBoxText(edit_dir_x)), ValFloat(GetEditBoxText(edit_dir_y)), ValFloat(GetEditBoxText(edit_dir_z)), ValFloat(GetEditBoxText(edit_dir_roll)))
endif
/*
* Velocity Range
*/
if (GetEditBoxChanged(edit_vr_low))
SetEditBoxText(edit_vr_low, StripString(GetEditBoxText(edit_vr_low), textStripFloat))
Set3DParticlesVelocityRange(emitter_1, ValFloat(GetEditBoxText(edit_vr_low)), ValFloat(GetEditBoxText(edit_vr_max)))
endif
if (GetEditBoxChanged(edit_vr_max))
SetEditBoxText(edit_vr_max, StripString(GetEditBoxText(edit_vr_max), textStripFloat))
Set3DParticlesVelocityRange(emitter_1, ValFloat(GetEditBoxText(edit_vr_low)), ValFloat(GetEditBoxText(edit_vr_max)))
endif
/*
* Start Zone
*/
if (GetEditBoxChanged(edit_sz_x1))
SetEditBoxText(edit_sz_x1, StripString(GetEditBoxText(edit_sz_x1), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetEditBoxChanged(edit_sz_y1))
SetEditBoxText(edit_sz_y1, StripString(GetEditBoxText(edit_sz_y1), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetEditBoxChanged(edit_sz_z1))
SetEditBoxText(edit_sz_z1, StripString(GetEditBoxText(edit_sz_z1), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetEditBoxChanged(edit_sz_x2))
SetEditBoxText(edit_sz_x2, StripString(GetEditBoxText(edit_sz_x2), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetEditBoxChanged(edit_sz_y2))
SetEditBoxText(edit_sz_y2, StripString(GetEditBoxText(edit_sz_y2), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetEditBoxChanged(edit_sz_z2))
SetEditBoxText(edit_sz_z2, StripString(GetEditBoxText(edit_sz_z2), textStripFloat))
Set3DParticlesStartZone(emitter_1, ValFloat(GetEditBoxText(edit_sz_x1)), ValFloat(GetEditBoxText(edit_sz_y1)), ValFloat(GetEditBoxText(edit_sz_z1)), ValFloat(GetEditBoxText(edit_sz_x2)), ValFloat(GetEditBoxText(edit_sz_y2)), ValFloat(GetEditBoxText(edit_sz_z2)))
endif
if (GetRawKeyState(65)) then MoveCameraLocalX(1, cameraMove * -1) //WASD
if (GetRawKeyState(68)) then MoveCameraLocalX(1, cameraMove)
if (GetRawKeyState(87)) then MoveCameraLocalZ(1, cameraMove)
if (GetRawKeyState(83)) then MoveCameraLocalZ(1, cameraMove * -1)
if (GetRawKeyState(38)) then MoveCameraLocalY(1, cameraMove) //Arrow keys
if (GetRawKeyState(40)) then MoveCameraLocalY(1, cameraMove * -1)
if (GetRawKeyState(37)) then RotateCameraLocalY(1, cameraMove * -1)
if (GetRawKeyState(39)) then RotateCameraLocalY(1, cameraMove)
if (GetRawKeyState(33)) then RotateCameraLocalX(1, cameraMove * -1) //Page Up/Down
if (GetRawKeyState(34)) then RotateCameraLocalX(1, cameraMove)
Sync()
loop
/*
* Data edit boxes and label setup
*/
LoadEditBoxes:
title_mainData = CreateText("Set3DParticles...")
SetTextSize(title_mainData, 24)
SetTextPosition(title_mainData, 15, 70)
label_size = CreateText("Size") //Maximum size of particles
SetTextSize(label_size, 20)
SetTextPosition(label_size, 20, 100)
edit_size = CreateEditBox()
SetEditBoxPosition(edit_size, GetTextX(label_size) + GetTextTotalWidth(label_size) + 50, GetTextY(label_size))
SetEditBoxSize(edit_size, 50, 20)
SetEditBoxTextSize(edit_size, 14)
SetEditBoxText(edit_size, "0.025")
label_max = CreateText("Max") //Maximum Number of particles
SetTextSize(label_max, 20)
SetTextPosition(label_max, GetTextX(label_size), GetTextY(label_size) + dataGap)
edit_max = CreateEditBox()
SetEditBoxPosition(edit_max, GetEditBoxX(edit_size), GetTextY(label_max))
SetEditBoxSize(edit_max, 50, 20)
SetEditBoxTextSize(edit_max, 14)
SetEditBoxText(edit_max, "-1")
label_life = CreateText("Life") //Lifespan of particles
SetTextSize(label_life, 20)
SetTextPosition(label_life, GetTextX(label_size), GetTextY(label_max) + dataGap)
edit_life = CreateEditBox()
SetEditBoxPosition(edit_life, GetEditBoxX(edit_size), GetTextY(label_life))
SetEditBoxSize(edit_life, 50, 20)
SetEditBoxTextSize(edit_life, 14)
SetEditBoxText(edit_life, "3.0")
label_freq = CreateText("Frequency") //Frequency of particles
SetTextSize(label_freq, 20)
SetTextPosition(label_freq, GetTextX(label_size), GetTextY(label_life) + dataGap)
edit_freq = CreateEditBox()
SetEditBoxPosition(edit_freq, GetEditBoxX(edit_size), GetTextY(label_freq))
SetEditBoxSize(edit_freq, 50, 20)
SetEditBoxTextSize(edit_freq, 14)
SetEditBoxText(edit_freq, "1000")
title_dirRange = CreateText("Set3DParticlesDirectionRange()")
SetTextSize(title_dirRange, 24)
SetTextPosition(title_dirRange, 15, 250)
label_dr_a1 = CreateText("Angle 1")
SetTextSize(label_dr_a1, 20)
SetTextPosition(label_dr_a1, 20, 280)
edit_dr_a1 = CreateEditBox()
SetEditBoxPosition(edit_dr_a1, GetEditBoxX(edit_size), GetTextY(label_dr_a1))
SetEditBoxSize(edit_dr_a1, 50, 20)
SetEditBoxTextSize(edit_dr_a1, 14)
SetEditBoxText(edit_dr_a1, "0")
label_dr_a2 = CreateText("Angle 2")
SetTextSize(label_dr_a2, 20)
SetTextPosition(label_dr_a2, GetTextX(label_dr_a1), GetTextY(label_dr_a1) + dataGap)
edit_dr_a2 = CreateEditBox()
SetEditBoxPosition(edit_dr_a2, GetEditBoxX(edit_size), GetTextY(label_dr_a2))
SetEditBoxSize(edit_dr_a2, 50, 20)
SetEditBoxTextSize(edit_dr_a2, 14)
SetEditBoxText(edit_dr_a2, "0")
title_dir = CreateText("Set3DParticlesDirection()")
SetTextSize(title_dir, 24)
SetTextPosition(title_dir, 15, 370)
label_dir_x = CreateText("Velocity X")
SetTextSize(label_dir_x, 20)
SetTextPosition(label_dir_x, 20, 400)
edit_dir_x = CreateEditBox()
SetEditBoxPosition(edit_dir_x, GetEditBoxX(edit_size), GetTextY(label_dir_x))
SetEditBoxSize(edit_dir_x, 50, 20)
SetEditBoxTextSize(edit_dir_x, 14)
SetEditBoxText(edit_dir_x, "0")
label_dir_y = CreateText("Velocity Y")
SetTextSize(label_dir_y, 20)
SetTextPosition(label_dir_y, GetTextX(label_dir_x), GetTextY(label_dir_x) + dataGap)
edit_dir_y = CreateEditBox()
SetEditBoxPosition(edit_dir_y, GetEditBoxX(edit_size), GetTextY(label_dir_y))
SetEditBoxSize(edit_dir_y, 50, 20)
SetEditBoxTextSize(edit_dir_y, 14)
SetEditBoxText(edit_dir_y, "-2")
label_dir_z = CreateText("Velocity Z")
SetTextSize(label_dir_z, 20)
SetTextPosition(label_dir_z, GetTextX(label_dir_x), GetTextY(label_dir_y) + dataGap)
edit_dir_z = CreateEditBox()
SetEditBoxPosition(edit_dir_z, GetEditBoxX(edit_size), GetTextY(label_dir_z))
SetEditBoxSize(edit_dir_z, 50, 20)
SetEditBoxTextSize(edit_dir_z, 14)
SetEditBoxText(edit_dir_z, "0")
label_dir_roll = CreateText("Roll")
SetTextSize(label_dir_roll, 20)
SetTextPosition(label_dir_roll, GetTextX(label_dir_x), GetTextY(label_dir_z) + dataGap)
edit_dir_roll = CreateEditBox()
SetEditBoxPosition(edit_dir_roll, GetEditBoxX(edit_size), GetTextY(label_dir_roll))
SetEditBoxSize(edit_dir_roll, 50, 20)
SetEditBoxTextSize(edit_dir_roll, 14)
SetEditBoxText(edit_dir_roll, "0")
title_velRange = CreateText("Set3DParticlesVelocityRange()")
SetTextSize(title_velRange, 24)
SetTextPosition(title_velRange, 15, 550)
label_vr_low = CreateText("Lower")
SetTextSize(label_vr_low, 20)
SetTextPosition(label_vr_low, 20, 580)
edit_vr_low = CreateEditBox()
SetEditBoxPosition(edit_vr_low, GetEditBoxX(edit_size), GetTextY(label_vr_low))
SetEditBoxSize(edit_vr_low, 50, 20)
SetEditBoxTextSize(edit_vr_low, 14)
SetEditBoxText(edit_vr_low, "0.5")
label_vr_max = CreateText("Max")
SetTextSize(label_vr_max, 20)
SetTextPosition(label_vr_max, GetTextX(label_vr_low), GetTextY(label_vr_low) + dataGap)
edit_vr_max = CreateEditBox()
SetEditBoxPosition(edit_vr_max, GetEditBoxX(edit_size), GetTextY(label_vr_max))
SetEditBoxSize(edit_vr_max, 50, 20)
SetEditBoxTextSize(edit_vr_max, 14)
SetEditBoxText(edit_vr_max, "1.0")
title_startZone = CreateText("Set3DParticlesStartZone()")
SetTextSize(title_startZone, 24)
SetTextPosition(title_startZone, 15, 650)
label_sz_x1 = CreateText("X1")
SetTextSize(label_sz_x1, 20)
SetTextPosition(label_sz_x1, 20, 680)
edit_sz_x1 = CreateEditBox()
SetEditBoxPosition(edit_sz_x1, GetEditBoxX(edit_size), GetTextY(label_sz_x1))
SetEditBoxSize(edit_sz_x1, 50, 20)
SetEditBoxTextSize(edit_sz_x1, 14)
SetEditBoxText(edit_sz_x1, "-1.5")
label_sz_y1 = CreateText("Y1")
SetTextSize(label_sz_y1, 20)
SetTextPosition(label_sz_y1, GetTextX(label_sz_x1), GetTextY(label_sz_x1) + dataGap)
edit_sz_y1 = CreateEditBox()
SetEditBoxPosition(edit_sz_y1, GetEditBoxX(edit_size), GetTextY(label_sz_y1))
SetEditBoxSize(edit_sz_y1, 50, 20)
SetEditBoxTextSize(edit_sz_y1, 14)
SetEditBoxText(edit_sz_y1, "3.75")
label_sz_z1 = CreateText("Z1")
SetTextSize(label_sz_z1, 20)
SetTextPosition(label_sz_z1, GetTextX(label_sz_x1), GetTextY(label_sz_y1) + dataGap)
edit_sz_z1 = CreateEditBox()
SetEditBoxPosition(edit_sz_z1, GetEditBoxX(edit_size), GetTextY(label_sz_z1))
SetEditBoxSize(edit_sz_z1, 50, 20)
SetEditBoxTextSize(edit_sz_z1, 14)
SetEditBoxText(edit_sz_z1, "-1.5")
label_sz_x2 = CreateText("X2")
SetTextSize(label_sz_x2, 20)
SetTextPosition(label_sz_x2, GetTextX(label_sz_x1), GetTextY(label_sz_z1) + dataGap)
edit_sz_x2 = CreateEditBox()
SetEditBoxPosition(edit_sz_x2, GetEditBoxX(edit_size), GetTextY(label_sz_x2))
SetEditBoxSize(edit_sz_x2, 50, 20)
SetEditBoxTextSize(edit_sz_x2, 14)
SetEditBoxText(edit_sz_x2, "1.5")
label_sz_y2 = CreateText("Y2")
SetTextSize(label_sz_y2, 20)
SetTextPosition(label_sz_y2, GetTextX(label_sz_x1), GetTextY(label_sz_x2) + dataGap)
edit_sz_y2 = CreateEditBox()
SetEditBoxPosition(edit_sz_y2, GetEditBoxX(edit_size), GetTextY(label_sz_y2))
SetEditBoxSize(edit_sz_y2, 50, 20)
SetEditBoxTextSize(edit_sz_y2, 14)
SetEditBoxText(edit_sz_y2, "4.0")
label_sz_z2 = CreateText("Z2")
SetTextSize(label_sz_z2, 20)
SetTextPosition(label_sz_z2, GetTextX(label_sz_x1), GetTextY(label_sz_y2) + dataGap)
edit_sz_z2 = CreateEditBox()
SetEditBoxPosition(edit_sz_z2, GetEditBoxX(edit_size), GetTextY(label_sz_z2))
SetEditBoxSize(edit_sz_z2, 50, 20)
SetEditBoxTextSize(edit_sz_z2, 14)
SetEditBoxText(edit_sz_z2, "1.5")
Return