mirror of
https://github.com/OpenTrespasser/JurassicParkTrespasser.git
synced 2024-12-19 15:11:57 +00:00
709 lines
24 KiB
Plaintext
709 lines
24 KiB
Plaintext
-- **********************************************************************************************
|
|
-- *
|
|
-- * Copyright © DreamWorks Interactive, 1997
|
|
-- *
|
|
-- * Contents:
|
|
-- * Implementation of PVA.ms
|
|
-- *
|
|
-- * Bugs:
|
|
-- *
|
|
-- * To do:
|
|
-- *
|
|
-- * Notes:
|
|
-- * PVA is a tool for assigning selections of vertices to a joint inside 3DSMAX.
|
|
-- * After the Vertex/Joint assignments are made, the user may output them as a block
|
|
-- * of C++ code for implementation.
|
|
-- *
|
|
-- **********************************************************************************************
|
|
|
|
global BioMesh, BioMeshVertexArray, JointData, NumJoints
|
|
|
|
Utility PVA "PVA"
|
|
(
|
|
|
|
local CurrentJoint, CurrentJointButton
|
|
|
|
on PVA open do
|
|
(
|
|
CurrentJointButton = 0
|
|
)
|
|
|
|
bitmap pvatitle filename:"\\\JPII_PC\\Trespass\Art\\Tools\Scripts\pva.bmp" offset:[-12,0]
|
|
|
|
group "Model Presets"
|
|
(
|
|
button AnnePreset "Anne" offset:[-50,0] enabled:false
|
|
button RaptorPreset "Raptor" offset:[0,-26] enabled:false
|
|
button TrexPreset "T-Rex" offset:[50,-26] enabled:false
|
|
)
|
|
|
|
group "BioMesh Ops"
|
|
(
|
|
button loadPVAFile "Load PVA File" width:140
|
|
button SavePVAFile "Save PVA File" width:140 enabled:false
|
|
pickbutton CreateDataObject "Choose BioMesh" width:140
|
|
button PurgeBioMeshData "Purge BioMesh Data" width:140
|
|
)
|
|
|
|
group "Vertex/Joint Assignments"
|
|
(
|
|
label BioMeshLabel2 ""
|
|
label JointLabel ">----------------- Joints -----------------<"
|
|
checkbutton joint0 "0" offset:[-60,0] width:29
|
|
checkbutton joint1 "1" offset:[-30,-26] width:29
|
|
checkbutton joint2 "2" offset:[0,-26] width:29
|
|
checkbutton joint3"3" offset:[30,-26] width:29
|
|
checkbutton joint4 "4" offset:[60,-26] width:29
|
|
checkbutton joint5 "5" offset:[-60,0] width:29
|
|
checkbutton joint6 "6" offset:[-30,-26] width:29
|
|
checkbutton joint7 "7" offset:[0,-26] width:29
|
|
checkbutton joint8 "8" offset:[30,-26] width:29
|
|
checkbutton joint9 "9" offset:[60,-26] width:29
|
|
checkbutton joint10 "10" offset:[-60,0] width:29
|
|
checkbutton joint11 "11" offset:[-30,-26] width:29
|
|
checkbutton joint12 "12" offset:[0,-26] width:29
|
|
checkbutton joint13 "13" offset:[30,-26] width:29
|
|
checkbutton joint14 "14" offset:[60,-26] width:29
|
|
checkbutton joint15 "15" offset:[-60,0] width:29
|
|
checkbutton joint16 "16" offset:[-30,-26] width:29
|
|
checkbutton joint17 "17" offset:[0,-26] width:29
|
|
checkbutton joint18 "18" offset:[30,-26] width:29
|
|
checkbutton joint19 "19" offset:[60,-26] width:29
|
|
label updatemethodlabel "Update Method:" align:#left
|
|
radiobuttons UpdateMethod labels:#("Add", "Subtract", "Replace") offset:[-40,0] default:1
|
|
button UpdateVertAssignment "Update" offset:[35,-35] enabled:false
|
|
label filler ""
|
|
)
|
|
|
|
group "Selection Tools"
|
|
(
|
|
button SelectUnassigned "Verts Not Assigned" width:140 enabled:false
|
|
button SelectAssigned "Assigned to Current Joint" width:140 enabled:false
|
|
)
|
|
|
|
group "Export BioMesh Data"
|
|
(
|
|
button CodeToListener "Generate Code to Listener" width:140 enabled:false
|
|
button CodeToFile "Generate Code To File" width:140 enabled:false
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Purge BioMeshData
|
|
-- ***********************************************************************************************************************
|
|
on PurgeBiomeshData pressed do
|
|
(
|
|
BioMesh = undefined
|
|
BioMeshVertexArray = undefined
|
|
JointData = undefined
|
|
NumJoints = undefined
|
|
format "Global Data Purged\n"
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Select Unassigned Verts
|
|
-- ***********************************************************************************************************************
|
|
on selectUnassigned pressed do
|
|
(
|
|
setvertselection BioMesh #()
|
|
for i = 1 to BioMeshVertexArray.count do
|
|
(
|
|
if BioMeshVertexArray[i] == false do
|
|
(
|
|
setvertselection BioMesh #(i) keep:true
|
|
)
|
|
)
|
|
|
|
update BioMesh
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Select Assigned Verts
|
|
-- ***********************************************************************************************************************
|
|
on selectAssigned pressed do
|
|
(
|
|
-- setvertselection BioMesh #()
|
|
setvertselection BioMesh JointData[CurrentJointButton +1]
|
|
update BioMesh
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Update Vertex Assignments
|
|
-- ***********************************************************************************************************************
|
|
|
|
on UpdateVertAssignment pressed do
|
|
(
|
|
|
|
-- adding verts to Joints
|
|
if UpdateMethod.state == 1 do
|
|
(
|
|
NewVertSelection = GetVertSelection BioMesh
|
|
|
|
-- First, we have to remove selected verts from the assignment array
|
|
delItemCount = 0
|
|
for i = 1 to NewVertSelection.count do
|
|
(
|
|
cvi = NewVertSelection[i]
|
|
for j = 1 to JointData.count do
|
|
(
|
|
ItemIndex = finditem JointData[j] cvi
|
|
if ItemIndex != 0 do
|
|
(
|
|
deleteItem JointData[j] ItemIndex
|
|
delItemCount = delItemCount + 1
|
|
BioMeshVertexArray[cvi] = true
|
|
)
|
|
)
|
|
)
|
|
format " % Vertices removed from assignment\n" delItemCount
|
|
|
|
-- Now we add the selected vertex indices to the assignment array
|
|
for i = 1 to NewVertSelection.count do
|
|
(
|
|
cvi = NewVertSelection[i]
|
|
append JointData[CurrentJointButton +1] NewVertSelection[i]
|
|
BioMeshVertexArray[cvi] = true
|
|
)
|
|
format "% Vertices Added to Joint %\n" NewVertSelection.count CurrentJointButton
|
|
)
|
|
|
|
-- subtracting verts from Joints
|
|
if UpdateMethod.state == 2 do
|
|
(
|
|
NewVertSelection = GetVertSelection BioMesh
|
|
subcount = 0
|
|
for i = 1 to NewVertSelection.count do
|
|
(
|
|
cvi = NewVertSelection[i]
|
|
ItemIndex = finditem JointData[CurrentJointButton+1] cvi
|
|
if ItemIndex != 0 do
|
|
(
|
|
deleteitem JointData[CurrentJointButton + 1] ItemIndex
|
|
BioMeshVertexArray[cvi] = false
|
|
subcount = subcount + 1
|
|
)
|
|
)
|
|
format "% Vertices Subtracted from Joint %\n" subcount CurrentJointButton
|
|
)
|
|
|
|
-- replacing
|
|
if UpdateMethod.state == 3 do
|
|
(
|
|
|
|
-- First, we gots to wipe out any assignment data for the currently selected joint
|
|
|
|
while JointData[CurrentJointButton + 1].count > 0 do
|
|
(
|
|
cvi = (JointData[CurrentJointButton + 1])[1]
|
|
BioMeshVertexArray[cvi] = false
|
|
deleteitem JointData[CurrentJointButton + 1] 1
|
|
)
|
|
JointData[CurrentJointButton + 1] = #()
|
|
|
|
-- Then we do that thingy about assigning verts to the currently selected joint
|
|
|
|
NewVertSelection = GetVertSelection BioMesh
|
|
for i = 1 to NewVertSelection.count do
|
|
(
|
|
append JointData[CurrentJointButton + 1] NewVertSelection[i]
|
|
cvi = NewVertSelection[i]
|
|
BioMeshVertexArray[cvi] = true
|
|
)
|
|
format "% Vertices Replaced for Joint %\n" NewVertSelection.count (CurrentJointButton + 1)
|
|
)
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- BioMesh Presets
|
|
-- ***********************************************************************************************************************
|
|
|
|
on AnnePreset pressed do (NumJoints_spn.value = 19)
|
|
on RaptorPreset pressed do (NumJoints_spn.value = 20)
|
|
on TrexPreset pressed do (NumJoints_spn.value = 20)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Load PVA File
|
|
-- ***********************************************************************************************************************
|
|
|
|
on loadPVAFile pressed do
|
|
(
|
|
if (Open_Filename = getOpenfilename caption:"Choose Physics Vertex Assignment File [.PVA]" filename:"*.pva") != undefined do
|
|
(
|
|
f = openfile Open_Filename
|
|
BioMeshFilename = readline f
|
|
if BioMeshFilename[BioMeshFilename.count] == "\n" then BioMeshFilename = replace BioMeshFilename BioMeshFilename.count 1 ""
|
|
loadMAXFile BioMeshFilename
|
|
BioMeshName = readline f
|
|
if BioMeshName[BioMeshName.count] == "\n" then BioMeshName = replace BioMeshName BioMeshName.count 1 ""
|
|
format "\n"
|
|
format "BioMeshName from file: %\n" BioMeshName
|
|
BioMesh = undefined
|
|
|
|
for o in objects do
|
|
(
|
|
if o.name == BioMeshName do
|
|
(
|
|
BioMesh = o
|
|
)
|
|
)
|
|
|
|
if BioMesh != undefined then
|
|
(
|
|
format "BioMesh % Initialized\n" BioMesh.name
|
|
BioMeshLabel2.text = BioMesh.name
|
|
) else (
|
|
format "BioMesh Not loaded properly\n"
|
|
)
|
|
|
|
-- get BioMesh Vertex count from file
|
|
BioMeshVertCount = readvalue f
|
|
format "BioMesh Vertex Count: %\n" BioMeshVertCount
|
|
|
|
-- get Number of joints from file
|
|
BioMeshNumJoints = readvalue f
|
|
format "BioMesh Joint Count: %\n" BioMeshNumJoints
|
|
|
|
BioMeshVertexArray = (for i = 1 to BioMeshVertCount collect false)
|
|
|
|
-- initialize Joint Data Array
|
|
JointData = #()
|
|
for i = 1 to BioMeshNumJoints do
|
|
(
|
|
JointData[i] = #()
|
|
)
|
|
|
|
-- start reading assignments
|
|
while not eof f do
|
|
(
|
|
VertexIndex = readvalue f as integer
|
|
JointIndex = readvalue f as integer
|
|
if JointIndex >= 0 do
|
|
(
|
|
append JointData[JointIndex + 1] VertexIndex
|
|
BioMeshVertexArray[VertexIndex] = true
|
|
-- format "Vert Index Read: %\n" VertexIndex
|
|
-- format "Joint Index Read: %\n" JointIndex
|
|
)
|
|
)
|
|
close f
|
|
SelectUnassigned.enabled = true
|
|
UpdateVertAssignment.enabled = true
|
|
SelectAssigned.enabled = true
|
|
CodeToListener.enabled = true
|
|
CodeToFile.enabled = true
|
|
SavePVAFile.enabled = true
|
|
)
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Initialize from BioMesh
|
|
-- ***********************************************************************************************************************
|
|
on CreateDataObject picked obj do
|
|
(
|
|
DataObjs = (for obj in $'$D'* collect obj)
|
|
if DataObjs.count > 0 then
|
|
(
|
|
DataObject = DataObjs[1]
|
|
PVAFileName = GetUserPropBuffer DataObject
|
|
messagebox ("Please Initialize Mesh by loading thePVA File:\n" + PVAFileName)
|
|
|
|
) else (
|
|
|
|
Save_Filename = getsavefilename caption:"Choose Physics Vertex Assignment File [.PVA]"
|
|
BioMesh = obj
|
|
JointCount = 0
|
|
ModelName = BioMesh.name
|
|
for obj in $'$J'* do
|
|
(
|
|
if substring obj.name 3 ModelName.Count == ModelName do selectmore obj
|
|
JointCount = JointCount + 1
|
|
)
|
|
h = hedra radius:0.100 mapcoords:true pos:BioMesh.pos name:("$D" + Modelname)
|
|
ConvertToMesh h
|
|
f = createfile Save_Filename
|
|
format "%%\n" MAXFilePath MAXFilename to:f
|
|
format "%\n" ModelName to:f
|
|
format "%\n" BioMesh.numverts to:f
|
|
format "%\n" JointCount to:f
|
|
for i = 1 to BioMesh.numverts do
|
|
(
|
|
format "% -1\n" i to:f
|
|
)
|
|
close f
|
|
setUserPropBuffer h Save_Filename
|
|
BioMeshLabel2.text = BioMesh.name
|
|
SelectUnassigned.enabled = true
|
|
UpdateVertAssignment.enabled = true
|
|
SelectAssigned.enabled = true
|
|
CodeToListener.enabled = true
|
|
CodeToFile.enabled = true
|
|
SavePVAFile.enabled = true
|
|
)
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Save PVA File
|
|
-- ***********************************************************************************************************************
|
|
|
|
on savePVAFile pressed do
|
|
(
|
|
if BioMesh == undefined then
|
|
(
|
|
MessageBox "No BioMesh defined. Exiting..."
|
|
|
|
) else (
|
|
|
|
Save_Filename = getsavefilename caption:"Choose Physics Vertex Assignment File [.PVA]"
|
|
JointCount = 0
|
|
ModelName = BioMesh.name
|
|
DataObjs = #()
|
|
for obj in $'$J'* do
|
|
(
|
|
if substring obj.name 3 ModelName.Count == ModelName do selectmore obj
|
|
JointCount = JointCount + 1
|
|
)
|
|
for obj in $'$D'* do
|
|
(
|
|
DataObjs = (for obj in $'$D'* collect obj)
|
|
)
|
|
if DataObjs.count == 0 then
|
|
(
|
|
h = hedra radius:0.100 mapcoords:true pos:BioMesh.pos name:("$D" + Modelname)
|
|
ConvertToMesh h
|
|
f = createfile Save_Filename
|
|
format "%%\n" MAXFilePath MAXFilename to:f
|
|
format "%\n" ModelName to:f
|
|
format "%\n" BioMesh.numverts to:f
|
|
format "%\n" JointCount to:f
|
|
for i = 1 to BioMeshVertexArray.count do
|
|
(
|
|
for j = 1 to JointData.count do
|
|
(
|
|
if finditem JointData[j] i != 0 do
|
|
(
|
|
format "% %\n" i (j - 1) to:f
|
|
)
|
|
)
|
|
)
|
|
close f
|
|
setUserPropBuffer h Save_Filename
|
|
) else (
|
|
DataObject = DataObjs[1]
|
|
f = createfile Save_Filename
|
|
format "%%\n" MAXFilePath MAXFilename to:f
|
|
format "%\n" ModelName to:f
|
|
format "%\n" BioMesh.numverts to:f
|
|
format "%\n" JointCount to:f
|
|
for i = 1 to BioMeshVertexArray.count do
|
|
(
|
|
for j = 1 to JointData.count do
|
|
(
|
|
if finditem JointData[j] i != 0 do
|
|
(
|
|
format "% %\n" i (j - 1) to:f
|
|
)
|
|
)
|
|
)
|
|
close f
|
|
setUserPropBuffer DataObject Save_Filename
|
|
)
|
|
)
|
|
)
|
|
|
|
-- ***********************************************************************************************************************
|
|
-- Code To Listener Window
|
|
-- ***********************************************************************************************************************
|
|
on CodeToListener pressed do
|
|
(
|
|
if JointData != undefined then
|
|
(
|
|
UnassignedVertexArray = #()
|
|
for i = 1 to BioMeshVertexArray.count do
|
|
(
|
|
if BioMeshVertexArray[i] == false do
|
|
(
|
|
append UnassignedVertexArray i
|
|
)
|
|
)
|
|
if UnassignedVertexArray.count > 0 then
|
|
(
|
|
format "Unassigned Vertex Count: %\n" UnassignedVertexArray.count
|
|
if (QueryBox "Unassigned Vertices Exist!\n\nSet unassigned vertices as new vertex selection for biomesh?") == true do
|
|
(
|
|
SetVertSelection BioMesh #()
|
|
SetVertSelection BioMesh UnassignedVertexArray
|
|
)
|
|
) else (
|
|
NumJoints = JointData.count
|
|
JointsString = ("int NumJoints = " + NumJoints as string + ";\r\r\n")
|
|
for i = 1 to NumJoints do
|
|
for j = 1 to JointData[i].count do
|
|
(
|
|
VertIndex = (JointData[i])[j] as string
|
|
if VertIndex.count == 1 do (VertIndex = "00" + VertIndex)
|
|
if VertIndex.count == 2 do (VertIndex = "0" + VertIndex)
|
|
JointsString = (JointsString + ("int Vertex" + VertIndex + " = " + (i - 1) as string + ";\r\r\n"))
|
|
)
|
|
setUserPropBuffer BioMesh JointsString
|
|
)
|
|
) else (
|
|
format "JointData Array is %\n" JointData
|
|
)
|
|
)
|
|
-- ***********************************************************************************************************************
|
|
-- Code To File
|
|
-- ***********************************************************************************************************************
|
|
|
|
on CodeToFile pressed do
|
|
(
|
|
if JointData != undefined then
|
|
(
|
|
UnassignedVertexArray = #()
|
|
for i = 1 to BioMeshVertexArray.count do
|
|
(
|
|
if BioMeshVertexArray[i] == false do
|
|
(
|
|
append UnassignedVertexArray i
|
|
)
|
|
)
|
|
if UnassignedVertexArray.count > 0 then
|
|
(
|
|
format "Unassigned Vertex Count: %\n" UnassignedVertexArray.count
|
|
if (QueryBox "Unassigned Vertices Exist!\n\nSet unassigned vertices as new vertex selection for biomesh?") == true do
|
|
(
|
|
SetVertSelection BioMesh #()
|
|
SetVertSelection BioMesh UnassignedVertexArray
|
|
)
|
|
) else (
|
|
Save_Filename = getsavefilename caption:"Specify text file"
|
|
f = createfile save_filename
|
|
format "\n" to:f
|
|
format "{\n" to:f
|
|
NumJoints = JointData.count
|
|
for i = 1 to NumJoints do
|
|
(
|
|
for j = 1 to JointData[i].count do
|
|
(
|
|
VertIndex = (JointData[i])[j]
|
|
format "\tpau_joint_links[%] = %;\n" VertIndex (i - 1) to:f
|
|
)
|
|
)
|
|
format "}\n" to:f
|
|
format "\n" to:f
|
|
close f
|
|
)
|
|
) else (
|
|
format "JointData Array is %\n" JointData
|
|
)
|
|
)
|
|
|
|
|
|
-- ********************************************************* Begin redundant Interface Code *********************************************************
|
|
on joint0 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 0
|
|
joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint1 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 1
|
|
joint0.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint2 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 2
|
|
joint0.state = off;joint1.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint3 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 3
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint4 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 4
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off;joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint5 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 5
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint6 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 6
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint7 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 7
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint8 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 8
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint9 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 9
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint10 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 10
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint11 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 11
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off;joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint12 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 12
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off;joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint13 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 13
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint14 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 14
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint15 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 15
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off;joint16.state = off; joint17.state = off; joint18.state = off;
|
|
joint19.state = off)
|
|
)
|
|
|
|
on joint16 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 16
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint17.state = off; joint18.state = off; joint19.state = off)
|
|
)
|
|
|
|
on joint17 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 17
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint18.state = off; joint19.state = off)
|
|
)
|
|
|
|
on joint18 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 18
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint19.state = off)
|
|
)
|
|
|
|
on joint19 changed state do
|
|
(
|
|
if state == on do
|
|
(
|
|
CurrentJointButton = 19
|
|
joint0.state = off;joint1.state = off; joint2.state = off; joint3.state = off; joint4.state = off; joint5.state = off; joint6.state = off; joint7.state = off; joint8.state = off; joint9.state = off;
|
|
joint10.state = off; joint11.state = off; joint12.state = off; joint13.state = off; joint14.state = off; joint15.state = off; joint16.state = off; joint17.state = off; joint18.state = off)
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|