Advertisement
deanhewson

Processing controlp5 GUI for Grasshopper

Oct 27th, 2015
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 40.21 KB | None | 0 0
  1. /**
  2. *  GUI For Grasshopper
  3. *  
  4. *  Script for connecting a Processing GUI with a shelving creation system in Grasshopper.
  5. *  RMIT, Semester 2 2015
  6. *  
  7. *  Dean Hewson, 2015
  8. *  deanhewson.com.au
  9. */
  10.  
  11. import netP5.*;
  12. import oscP5.*;
  13. import controlP5.*;
  14.  
  15. ControlP5 cp5;
  16. OscP5 oscP5;
  17.  
  18. NetAddress myBroadcastLocation;
  19.  
  20. int width = 1200;
  21. int height = 750;  // Ensure these are the same as the size declaration (size doesn't take variables)
  22.  
  23. int SliderWidth = 150;
  24. int SliderHeight = 30;
  25.  
  26. int ButtonWidth = 40;
  27. int ButtonHeight = 20;
  28.  
  29. int ToggleWidth = 80;
  30. int ToggleHeight = 40;
  31.  
  32. int SmallHorizontalGap = 50;
  33. int SmallVerticalGap = 80;
  34.  
  35. int BigHorizontalGap = 110;
  36. int BigVerticalGap = 80;
  37.  
  38. int AccordionWidth = 800;
  39.  
  40. Accordion accordion;
  41.  
  42. boolean SideorFrontToggle = true;
  43.  
  44. float FurnSwitch;
  45. int FurnSwitchValue = 0;
  46.  
  47. Textarea  furnswitchlabel;
  48.  
  49. float FurnObjectSwitch;
  50. int FurnObjectSwitchValue = 0;
  51.  
  52. float NextPointSwitch;
  53. int NextPointSwitchValue = 0;
  54.  
  55. float RecResetSwitch;
  56. int RecResetSwitchValue = 0;
  57.  
  58. float WardrobeRecBake;
  59. int WardrobeRecBakeValue = 0;
  60.  
  61. float ShelfRecBake;
  62. int ShelfRecBakeValue = 0;
  63.  
  64. float DeskRecBake;
  65. int DeskRecBakeValue = 0;
  66.  
  67. Slider HorizontalPoint;
  68. float HorizontalPointValue;
  69.  
  70. Slider VerticalPoint;
  71. float VerticalPointValue;
  72.  
  73. float ResetLegLines;
  74. int ResetLegLinesValue = 0;
  75.  
  76. boolean CreateOuterFrame = false;
  77.  
  78. float BakeOuterFrame;
  79. int BakeOuterFrameValue = 0;
  80.  
  81. boolean WTopShelfToggle = false;
  82.  
  83. boolean WBottomShelfToggle = false;
  84.  
  85. Slider WTopShelfHeight;
  86. float WTopShelfHeightValue;
  87.  
  88. Slider WBottomShelfHeight;
  89. float WBottomShelfHeightValue;
  90.  
  91. float WMaterialSelection;
  92. int WMaterialSelectionValue = 0;
  93.  
  94. float BakeWardrobe;
  95. int BakeWardrobeValue = 0;
  96.  
  97. float SMaterialSelection;
  98. int SMaterialSelectionValue = 0;
  99.  
  100. boolean ShelfLeftPanel = false;
  101.  
  102. boolean ShelfRightPanel = false;
  103.  
  104. Slider NumberOfShelves;
  105. float NumberOfShelvesValue;
  106.  
  107. Slider ShelfThickness;
  108. float ShelfThicknessValue;
  109.  
  110. float ShelfType;
  111. int ShelfTypeValue = 0;
  112.  
  113. float RemovePanelOptions;
  114. int RemovePanelOptionsValue = 0;
  115.  
  116. Slider RemovePanelOptionsSlider;
  117. float RemovePanelOptionsSliderValue;
  118.  
  119. boolean ShelvesInOrOut = false;
  120.  
  121. Slider ShelvesInOrOutRunner;
  122. float ShelvesInOrOutRunnerValue;
  123.  
  124. Slider ShelvesRunnerDistance;
  125. float ShelvesRunnerDistanceValue;
  126.  
  127. Slider ShelvesCornerRadius;
  128. float ShelvesCornerRadiusValue;
  129.  
  130. float ShelvesMaterialOptions;
  131. int ShelvesMaterialOptionsValue = 0;
  132.  
  133. float ShelvesBake;
  134. int ShelvesBakeValue = 0;
  135.  
  136. float BackingStyle;
  137. int BackingStyleValue = 0;
  138.  
  139. Slider BackingEdgeDistance;
  140. float BackingEdgeDistanceValue;
  141.  
  142. Slider NumberofCirclesX;
  143. float NumberofCirclesXValue;
  144.  
  145. Slider NumberofCirclesY;
  146. float NumberofCirclesYValue;
  147.  
  148. Slider CircleHoleSize;
  149. float CircleHoleSizeValue;
  150.  
  151. boolean CircleBackBake = false;
  152.  
  153. Slider NumberOfSlats;
  154. float NumberOfSlatsValue;
  155.  
  156. Slider SlatWidth;
  157. float SlatWidthValue;
  158.  
  159. Slider SlatAngle;
  160. float SlatAngleValue;
  161.  
  162. boolean SlatBackBake = false;
  163.  
  164. float BackingMaterial;
  165. int BackingMaterialValue = 0;
  166.  
  167. float BackingFinalBake;
  168. int BackingFinalBakeValue = 0;
  169.  
  170.  
  171.  
  172.  
  173. int blue = color(40, 50 ,240);  
  174. int grey = color(120, 120, 120);
  175. int green = color(50, 255, 68);
  176. int lightgrey = color(230, 230, 230);
  177. int text = 80;
  178.  
  179.  
  180.  
  181.  
  182. void setup() {
  183.     // Setting up fonts
  184.  
  185.  
  186.   size(1200, 750);
  187.   cp5 = new ControlP5(this);  
  188.  
  189.     // change the default font to Verdana
  190.   PFont pfont = createFont("Arial",20,true); // use true/false for smooth/no-smooth
  191.   ControlFont font = new ControlFont(pfont,241);
  192.  
  193.  
  194.  
  195.   // change the original colors
  196.   cp5.setColorForeground(0xff65FF9C);
  197.   cp5.setColorBackground(0xff476652);
  198.   cp5.setColorActive(0xff1CFF69);
  199.  
  200.  
  201.   oscP5 = new OscP5(this, 6882);
  202.   myBroadcastLocation = new NetAddress("localhost", 6884);
  203.  
  204. //Setting up the Accordion
  205.  
  206.   Group g1 = cp5.addGroup("WardrobeGroup")
  207.   .setBackgroundColor(color(200, 200, 200))
  208.   .setBackgroundHeight(380)
  209.   .setCaptionLabel("Wardrobe Options")
  210.  
  211.   ;
  212.  
  213.  
  214.  
  215.  
  216.   Group g2 = cp5.addGroup("ShelfGroup")
  217.   .setBackgroundColor(color(220, 220, 220))
  218.   .setBackgroundHeight(400)
  219.   .setCaptionLabel("Shelving Options")
  220.   ;
  221.  
  222.   Group g3 = cp5.addGroup("BackingGroup")
  223.   .setBackgroundColor(color(200, 200, 200))
  224.   .setBackgroundHeight(400)
  225.   .setCaptionLabel("Backing Options")
  226.   ;          
  227.  
  228.   Group g4 = cp5.addGroup("RectangleGroup")
  229.   .setBackgroundColor(color(lightgrey))
  230.   .setBackgroundHeight(200)
  231.   .setPosition(270,20)
  232.   .setSize(880 , 250)
  233.   .setCaptionLabel("Create Rectangles for Wardrobes, Shelves or Desks")
  234.  
  235.   ;
  236.  
  237.   Group g5 = cp5.addGroup("Core Switch Options")
  238.   .setBackgroundColor(color(lightgrey))
  239.   .setBackgroundHeight(250)
  240.   .setPosition(20 , 20)
  241.   .setSize(230 , 250)
  242.   .setCaptionLabel("Set the main toggles")
  243.  
  244.   ;
  245.  
  246.  
  247.  
  248.   // add g1, g2, and g3 to the accordion.
  249.   accordion = cp5.addAccordion("acc")
  250.   .setPosition(20,290)
  251.   .setWidth(AccordionWidth)
  252.   .addItem(g1)
  253.   .addItem(g2)
  254.   .addItem(g3)
  255.   ;
  256.  
  257.   //Side or Front Toggle
  258.   cp5.addToggle("SideorFrontToggle")
  259.   .setPosition(20,25)
  260.   .setSize(ToggleWidth,ToggleHeight)
  261.   .setValue(false)
  262.   .setMode(ControlP5.SWITCH)
  263.   .setCaptionLabel("")
  264.   .moveTo(g5)
  265.   ;
  266.  
  267.   cp5.addTextarea("SideorFrontText")
  268.   .setPosition(30+ToggleWidth,28)
  269.   .setSize(130,90)
  270.   .setLineHeight(16)
  271.   .setColor(color(text))
  272.   .setText("Work on the Side or Front")
  273.   .setFont(createFont("arial",14))
  274.   .moveTo(g5)
  275.   ;
  276.  
  277.  
  278.   // Button for changing the type of furniture being edited
  279.   cp5.addButton("FurnSwitch")
  280.   .setPosition(20,SmallVerticalGap+10)
  281.   .setSize(ButtonWidth, ButtonWidth)
  282.   .setCaptionLabel("")
  283.   .moveTo(g5)
  284.   ;
  285.  
  286.   cp5.addTextarea("SwitchFurnitureType")
  287.   .setPosition(20+ButtonWidth*1.2,SmallVerticalGap+10)
  288.   .setSize(150,60)
  289.   .setLineHeight(16)
  290.   .setColor(color(text))
  291.   .setText("Switch the Type of Furniture")
  292.   .setFont(createFont("arial",14))
  293.   .moveTo(g5)
  294.  
  295.   ;
  296.   // Button for changing which piece of furniture of that type you're editing
  297.  
  298.   cp5.addButton("FurnObjectSwitch")
  299.   .setPosition(20,SmallVerticalGap*2)
  300.   .setCaptionLabel("")
  301.   .setSize(ButtonWidth, ButtonWidth)
  302.   .moveTo(g5)
  303.   ;
  304.  
  305.   cp5.addTextarea("SwitchObject")
  306.   .setPosition(20+ButtonWidth*1.2,SmallVerticalGap*2)
  307.   .setSize(150,60)
  308.   .setLineHeight(16)
  309.   .setColor(color(text))
  310.   .setText("Switch Between Objects of That Type")
  311.   .setFont(createFont("arial",14))
  312.   .moveTo(g5)
  313.   ;
  314.   // Horizontal Slider
  315.  
  316.   cp5.addSlider("HorizontalPoint")
  317.   .setPosition(20, SliderHeight*1.5)
  318.   .setSize(SliderWidth,SliderHeight)
  319.   .setRange(0,1)
  320.   .setValue(0)
  321.   .moveTo(g4)
  322.   .setCaptionLabel("")
  323.  
  324.   ;
  325.  
  326.   cp5.addTextarea("HoriPoint")
  327.   .setPosition(20, 20)
  328.   .setSize(250,30)
  329.   .setLineHeight(16)
  330.   .setColor(color(text))
  331.   .setText("Move Selection Point Horizontally")
  332.   .setFont(createFont("arial",14))
  333.   .moveTo(g4)    
  334.   ;  
  335.     // Vertical Slider
  336.  
  337.   cp5.addSlider("VerticalPoint")
  338.   .setPosition(20, SliderHeight*3)    
  339.   .setSize(SliderHeight,SliderWidth)
  340.   .setRange(0,1)
  341.   .setValue(0)
  342.   .setCaptionLabel("")
  343.   .moveTo(g4)
  344.   ;  
  345.   cp5.addTextarea("VertiPoint")
  346.   .setPosition(30+SliderHeight, SliderHeight*3)
  347.   .setSize(150,60)
  348.   .setLineHeight(16)
  349.   .setColor(color(text))
  350.   .setText("Move Selection Point Vertically")
  351.   .setFont(createFont("arial",14))
  352.   .moveTo(g4)    
  353.   ;  
  354.  
  355.  
  356.     // Button for moving to the next point of the framing rectange
  357.  
  358.   cp5.addButton("NextPointSwitch")
  359.   .setPosition(40+SliderHeight, ((SliderHeight*3)+60))
  360.   .setSize(ButtonWidth-10, ButtonWidth-10)
  361.   .setCaptionLabel("")
  362.   .setGroup(g4)
  363.   ;
  364.  
  365.   cp5.addTextarea("Next Switch Text")
  366.   .setPosition(40+SliderHeight+ButtonWidth, ((SliderHeight*3)+62))      
  367.   .setSize(150,60)
  368.   .setLineHeight(16)
  369.   .setColor(color(text))
  370.   .setText("Move on to the Next Point to Create")
  371.   .setFont(createFont("arial",12))
  372.   .moveTo(g4)    
  373.   ;  
  374.  
  375.      // Button for moving to the next point of the framing rectange
  376.  
  377.   cp5.addButton("RecResetSwitch")
  378.   .setPosition(40+SliderHeight, ((SliderHeight*3)+110))
  379.   .setSize(ButtonWidth-10, ButtonWidth-10)
  380.   .setCaptionLabel("")
  381.   .setGroup(g4)
  382.  
  383.   ;
  384.   cp5.addTextarea("Next Switch")
  385.   .setPosition(40+SliderHeight+ButtonWidth, ((SliderHeight*3)+112))      
  386.   .setSize(150,60)
  387.   .setLineHeight(16)
  388.   .setColor(color(text))
  389.   .setText("Reset Rectangle Points and Start Again")
  390.   .setFont(createFont("arial",12))
  391.   .moveTo(g4)    
  392.   ;
  393.  
  394.      // Button for backing wardrobe rectangle
  395.  
  396.   cp5.addButton("WardrobeRecBake")
  397.   .setPosition(SliderWidth+BigHorizontalGap+ButtonWidth,  SliderHeight*2)
  398.   .setSize(ButtonWidth, ButtonWidth)
  399.   .moveTo(g4)
  400.   .setCaptionLabel("")
  401.   ;
  402.  
  403.   cp5.addTextarea("WardrobeBakeText")
  404.   .setPosition(SliderWidth+BigHorizontalGap+10+ButtonWidth*2,  5+SliderHeight*2)      
  405.   .setSize(250,40)
  406.   .setLineHeight(16)
  407.   .setColor(color(text))
  408.   .setText("Make the Rectangle a Wardrobe")
  409.   .setFont(createFont("arial",16))
  410.   .moveTo(g4)    
  411.   ;
  412.  
  413.       // Button for baking shelf rectangle
  414.  
  415.   cp5.addButton("ShelfRecBake")
  416.   .setPosition(SliderWidth+BigHorizontalGap+ButtonWidth,  SliderHeight*2+ButtonWidth+20)
  417.   .setSize(ButtonWidth, ButtonWidth)
  418.   .setCaptionLabel("")
  419.   .moveTo(g4)
  420.   ;
  421.   cp5.addTextarea("ShelfBakeText")
  422.   .setPosition(SliderWidth+BigHorizontalGap+10+ButtonWidth*2, SliderHeight*2+ButtonWidth+25)      
  423.   .setSize(240,40)
  424.   .setLineHeight(16)
  425.   .setColor(color(text))
  426.   .setText("Make the Rectangle a Shelf")
  427.   .setFont(createFont("arial",16))
  428.   .moveTo(g4)    
  429.   ;
  430.  
  431. /*       // Button for baking desk rectangle
  432.  
  433.   cp5.addButton("DeskRecBake")
  434.      .setPosition(SliderWidth+BigHorizontalGap*2,  SliderHeight+SmallVerticalGap*2)
  435.      .setSize(ButtonWidth, ButtonWidth)
  436.        .moveTo(g4)
  437.      ;
  438.      
  439.      */
  440.   // Reset Leg Lines
  441.      
  442.      cp5.addButton("ResetLegLines")
  443.      .setPosition(SliderWidth+BigHorizontalGap*4+30,  SliderHeight)
  444.      .setSize(ButtonWidth, ButtonWidth)
  445.      .setCaptionLabel("")
  446.  
  447.      .moveTo(g4)
  448.      ;
  449.  
  450.      cp5.addTextarea("ResetLegsText")
  451.      .setPosition(SliderWidth+BigHorizontalGap*4+40+ButtonWidth,  SliderHeight+7)
  452.      .setSize(200,40)
  453.      .setLineHeight(14)
  454.      .setColor(color(text))
  455.      .setText("Reset Created Leg Lines")
  456.      .setFont(createFont("arial",14))
  457.      .moveTo(g4)    
  458.      ;
  459.  
  460. // Create Frame
  461.  
  462.      cp5.addToggle("CreateOuterFrame")
  463.      .setPosition(SliderWidth+BigHorizontalGap*4+30,  SliderHeight+SmallVerticalGap)
  464.      .setSize(ToggleWidth, ToggleHeight)
  465.      .setCaptionLabel("")
  466.      .setValue(false)
  467.      .setMode(ControlP5.SWITCH)
  468.      .moveTo(g4)
  469.      ;
  470.  
  471.      cp5.addTextarea("CreateFrameText")
  472.      .setPosition(SliderWidth+BigHorizontalGap*4+40+ToggleWidth,  SmallVerticalGap+SliderHeight+2)
  473.      .setSize(200,50)
  474.      .setLineHeight(14)
  475.      .setColor(color(text))
  476.      .setText("Create the Outer Shelf Framing")
  477.      .setFont(createFont("arial",14))
  478.      .moveTo(g4)    
  479.      ;
  480. // Bake Leg Frame
  481.      cp5.addButton("BakeOuterFrame")
  482.      .setPosition(SliderWidth+BigHorizontalGap*4+30,  SliderHeight+SmallVerticalGap*2)
  483.      .setSize(ButtonWidth, ButtonWidth)
  484.      .setCaptionLabel("")
  485.  
  486.      .moveTo(g4)
  487.      ;
  488.      
  489.      cp5.addTextarea("BakeFrameText")
  490.      .setPosition(SliderWidth+BigHorizontalGap*4+40+ButtonWidth,  SmallVerticalGap*2+SliderHeight+2)
  491.      .setSize(200,50)
  492.      .setLineHeight(14)
  493.      .setColor(color(text))
  494.      .setText("Bake the Outer Shelf Framing")
  495.      .setFont(createFont("arial",14))
  496.      .moveTo(g4)    
  497.      ;
  498.      
  499.   //Wardrobe Top Shelf Toggle
  500.      cp5.addToggle("WTopShelfToggle")
  501.      .setPosition(SmallHorizontalGap, SmallVerticalGap)
  502.      .setSize(ToggleWidth,ToggleHeight)
  503.      .setValue(false)
  504.      .setMode(ControlP5.SWITCH)
  505.      .setCaptionLabel("")
  506.      .moveTo(g1)
  507.      ;
  508.  
  509.      cp5.addTextarea("WTopToggleText")
  510.      .setPosition(SmallHorizontalGap+ToggleWidth+20, SmallVerticalGap)
  511.      .setSize(130,70)
  512.      .setLineHeight(14)
  513.      .setColor(color(text))
  514.      .setText("Do You Want a Top Shelf?")
  515.      .setFont(createFont("arial",14))
  516.      .moveTo(g1)    
  517.      ;
  518.  
  519.   //Wardrobe Bottom Shelf Toggle
  520.      cp5.addToggle("WBottomShelfToggle")
  521.      .setPosition(SmallHorizontalGap, SmallVerticalGap*3)
  522.      .setSize(ToggleWidth,ToggleHeight)
  523.      .setValue(false)
  524.      .setMode(ControlP5.SWITCH)
  525.      .setCaptionLabel("")
  526.      .moveTo(g1)
  527.      ;
  528.      cp5.addTextarea("WBottomToggleText")
  529.      .setPosition(SmallHorizontalGap+ToggleWidth+20, SmallVerticalGap*3)
  530.      .setSize(130,70)
  531.      .setLineHeight(14)
  532.      .setColor(color(text))
  533.      .setText("Do You Want a Bottom Shelf?")
  534.      .setFont(createFont("arial",14))
  535.      .moveTo(g1)    
  536.      ;
  537.  
  538.      
  539. //Wardrobe Top Shelf Height
  540.      cp5.addSlider("WTopShelfHeight")
  541.      .setPosition(SmallHorizontalGap*5.5, 25)
  542.      .setSize(SliderHeight,SliderWidth)
  543.      .setRange(3,10)
  544.      .setValue(9)
  545.      .setCaptionLabel("")
  546.      .moveTo(g1)
  547.      ;  
  548.      cp5.addTextarea("WTopHeightText")
  549.      .setPosition(SmallHorizontalGap*5.5+SliderHeight+20, SmallVerticalGap)
  550.      .setSize(130,70)
  551.      .setLineHeight(14)
  552.      .setColor(color(text))
  553.      .setText("How High Do You Want That Shelf?")
  554.      .setFont(createFont("arial",14))
  555.      .moveTo(g1)    
  556.      ;
  557. //Wardrobe Bottom Shelf Height    
  558.      cp5.addSlider("WBottomShelfHeight")
  559.      .setPosition(SmallHorizontalGap*5.5, SliderWidth+25+20)
  560.      .setSize(SliderHeight,SliderWidth)
  561.      .setRange(3,10)
  562.      .setValue(9)
  563.      .setCaptionLabel("")
  564.      .moveTo(g1)
  565.      ;  
  566.      cp5.addTextarea("WBottomHeightText")
  567.      .setPosition(SmallHorizontalGap*5.5+SliderHeight+20, SmallVerticalGap*3)
  568.      .setSize(130,70)
  569.      .setLineHeight(14)
  570.      .setColor(color(text))
  571.      .setText("How High Do You Want That Shelf?")
  572.      .setFont(createFont("arial",14))
  573.      .moveTo(g1)    
  574.      ;
  575.      
  576.  // WardrobeMaterialSelection
  577.      cp5.addButton("WMaterialSelection")
  578.      .setPosition(SmallHorizontalGap*11 , SmallVerticalGap*1.5)
  579.      .setSize(ButtonWidth, ButtonWidth)
  580.      .setCaptionLabel("")
  581.      .moveTo(g1)
  582.      ;
  583.      cp5.addTextarea("WMatSelectText")
  584.      .setPosition(SmallHorizontalGap*11+ButtonWidth+10 , SmallVerticalGap*1.5)
  585.      .setSize(130,70)
  586.      .setLineHeight(14)
  587.      .setColor(color(text))
  588.      .setText("Change the Wardrobe Material")
  589.      .setFont(createFont("arial",14))
  590.      .moveTo(g1)    
  591.      ;
  592. // Bake Wardrobe (-backing)
  593.      cp5.addButton("BakeWardrobe")
  594.      .setPosition(SmallHorizontalGap*11 , SmallVerticalGap*3)
  595.      .setSize(ButtonWidth, ButtonWidth)
  596.      .setCaptionLabel("")
  597.      .moveTo(g1)
  598.  
  599.      ;
  600.      cp5.addTextarea("WBakeText")
  601.      .setPosition(SmallHorizontalGap*11+ButtonWidth+10 , SmallVerticalGap*3)
  602.      .setSize(130,70)
  603.      .setLineHeight(14)
  604.      .setColor(color(text))
  605.      .setText("Bake the Wardrobe")
  606.      .setFont(createFont("arial",14))
  607.      .moveTo(g1)    
  608.      ;
  609.      
  610.      
  611. // Shelf Material Selection
  612.      cp5.addButton("SMaterialSelection")
  613.      .setPosition(20 , 80+ToggleHeight*6)
  614.      .setSize(ButtonWidth, ButtonWidth)
  615.      .setCaptionLabel("")
  616.      .moveTo(g2)
  617.  
  618.      ;
  619.      cp5.addTextarea("ShelfOuterMaterialSwitch")
  620.      .setPosition(30+ButtonWidth, 80+ToggleHeight*6)
  621.      .setSize(150,70)
  622.      .setLineHeight(14)
  623.      .setColor(color(text))
  624.      .setText("Shelf Outer Material Switch")
  625.      .setFont(createFont("arial",12))
  626.      .moveTo(g2)  
  627.      ;
  628.   //Shelf Left Panel Toggle
  629.      cp5.addToggle("ShelfLeftPanel")
  630.      .setPosition(20, 20)
  631.      .setSize(ToggleWidth,ToggleHeight)
  632.      .setValue(false)
  633.      .setMode(ControlP5.SWITCH)
  634.      .setCaptionLabel("")
  635.      .moveTo(g2)
  636.      ;
  637.      cp5.addTextarea("ShelfLeftText")
  638.      .setPosition(20 + ToggleWidth + 10 , 20)
  639.      .setSize(130,70)
  640.      .setLineHeight(14)
  641.      .setColor(color(text))
  642.      .setText("Do You Want a Left Outer Panel?")
  643.      .setFont(createFont("arial",14))
  644.      .moveTo(g2)    
  645.      ;
  646.      
  647.      
  648.      cp5.addToggle("ShelfRightPanel")
  649.      .setPosition(20 , 20+ToggleHeight+20)
  650.      .setSize(ToggleWidth,ToggleHeight)
  651.      .setValue(false)
  652.      .setMode(ControlP5.SWITCH)
  653.      .setCaptionLabel("")
  654.      .moveTo(g2)
  655.      ;
  656.      cp5.addTextarea("ShelfRightText")
  657.      .setPosition(20 + ToggleWidth + 10 , 20+ToggleHeight+20)
  658.      .setSize(150,70)
  659.      .setLineHeight(14)
  660.      .setColor(color(text))
  661.      .setText("Do You Want a Right Outer Panel?")
  662.      .setFont(createFont("arial",14))
  663.      .moveTo(g2)    
  664.      ;
  665.      
  666. // Number of Shelves
  667.      cp5.addSlider("NumberOfShelves")
  668.      .setPosition(20, 60+ToggleHeight*2)
  669.      .setSize(SliderWidth,SliderHeight)
  670.      .setRange(0,9)
  671.      .setValue(2)
  672.      .setCaptionLabel("")
  673.      .moveTo(g2)
  674.      ;  
  675.      cp5.addTextarea("Number of Shelves Text")
  676.      .setPosition(20 + SliderWidth + 10 , 65+ToggleHeight*2)
  677.      .setSize(150,70)
  678.      .setLineHeight(14)
  679.      .setColor(color(text))
  680.      .setText("Number of Shelves")
  681.      .setFont(createFont("arial",14))
  682.      .moveTo(g2)    
  683.      ;
  684.      
  685.   // Shelf thickness
  686.      cp5.addSlider("ShelfThickness")
  687.      .setPosition(20, 80+ToggleHeight*3)
  688.      .setSize(SliderWidth,SliderHeight)
  689.      .setRange(2,35)
  690.      .setValue(10)
  691.      .setCaptionLabel("")
  692.      .moveTo(g2)
  693.      ;  
  694.      cp5.addTextarea("ShelfthicknessText")
  695.      .setPosition(20 + SliderWidth + 10 , 85+ToggleHeight*3)
  696.      .setSize(150,70)
  697.      .setLineHeight(14)
  698.      .setColor(color(text))
  699.      .setText("Shelf Thickness")
  700.      .setFont(createFont("arial",14))
  701.      .moveTo(g2)    
  702.      ;
  703.      
  704.   // Which Shelf Type?
  705.      cp5.addButton("ShelfType")
  706.      .setPosition(SmallHorizontalGap*9 , 20)
  707.      .setSize(ButtonWidth, ButtonWidth)
  708.      .setCaptionLabel("")
  709.      .moveTo(g2)
  710.  
  711.      ;
  712.      
  713.      cp5.addTextarea("ShelfTypeText")
  714.      .setPosition(SmallHorizontalGap*9+ButtonWidth+10 , 25)
  715.      .setSize(150,70)
  716.      .setLineHeight(14)
  717.      .setColor(color(text))
  718.      .setText("Switch Shelf Type")
  719.      .setFont(createFont("arial",14))
  720.      .moveTo(g2)    
  721.      ;
  722. // Remove Panel Options
  723.      cp5.addButton("RemovePanelOptions")
  724.      .setPosition(SmallHorizontalGap*7 , SmallVerticalGap)
  725.      .setSize(ButtonWidth, ButtonWidth)
  726.      .setCaptionLabel("")
  727.      .moveTo(g2)
  728.  
  729.      ;
  730.      cp5.addTextarea("RemovePanelText")
  731.      .setPosition(SmallHorizontalGap*7+ButtonWidth+10 , SmallVerticalGap)
  732.      .setSize(150,70)
  733.      .setLineHeight(14)
  734.      .setColor(color(text))
  735.      .setText("Remove Panels Switch - Above or Below")
  736.      .setFont(createFont("arial",12))
  737.      .moveTo(g2)    
  738.      ;
  739. // REmove panel options Slider
  740.      cp5.addSlider("RemovePanelOptionsSlider")
  741.      .setPosition(SmallHorizontalGap*7+(ButtonWidth-SliderHeight), SmallVerticalGap*2)
  742.      .setSize(SliderHeight,SliderWidth)
  743.      .setRange(0,1)
  744.      .setValue(0)
  745.      .moveTo(g2)
  746.      .setCaptionLabel("")
  747.      ;  
  748.      cp5.addTextarea("RemovePanelSliderText")
  749.      .setPosition(SmallHorizontalGap*7+ButtonWidth+10 , SmallVerticalGap*2+SliderHeight/2)
  750.      .setSize(150,70)
  751.      .setLineHeight(14)
  752.      .setColor(color(text))
  753.      .setText("Where to Remove Points From")
  754.      .setFont(createFont("arial",12))
  755.      .moveTo(g2)    
  756.      ;
  757.  //Shelf  in or Out Toggle
  758.      cp5.addToggle("ShelvesInOrOut")
  759.      .setPosition(SmallHorizontalGap*11,SmallVerticalGap)
  760.      .setSize(ToggleWidth,ToggleHeight)
  761.      .setValue(false)
  762.      .setMode(ControlP5.SWITCH)
  763.      .moveTo(g2)
  764.      .setCaptionLabel("")
  765.      ;
  766.      cp5.addTextarea("ShelvesInOutText")
  767.      .setPosition(SmallHorizontalGap*11+ToggleWidth+10 , SmallVerticalGap)
  768.      .setSize(150,70)
  769.      .setLineHeight(14)
  770.      .setColor(color(text))
  771.      .setText("Shelves Run In or Out")
  772.      .setFont(createFont("arial",12))
  773.      .moveTo(g2)    
  774.      ;
  775. // Shelves in or out runner point
  776.      cp5.addSlider("ShelvesInOrOutRunner")
  777.      .setPosition(SmallHorizontalGap*11+(ToggleWidth-SliderHeight), SmallVerticalGap*2)
  778.      .setSize(SliderHeight,SliderWidth)
  779.      .setRange(0,1)
  780.      .setValue(0.5)
  781.      .moveTo(g2)
  782.      .setCaptionLabel("")
  783.      ;  
  784.      cp5.addTextarea("ShelfRunnerSliderText")
  785.      .setPosition(SmallHorizontalGap*11+ToggleWidth+10 , SmallVerticalGap*2+SliderHeight/2)
  786.      .setSize(150,30)
  787.      .setLineHeight(14)
  788.      .setColor(color(text))
  789.      .setText("Point Shelves Run From")
  790.      .setFont(createFont("arial",12))
  791.      .moveTo(g2)    
  792.      ;
  793.     //Distance shelves move from the edge
  794.      
  795.      cp5.addSlider("ShelvesRunnerDistance")
  796.      .setPosition(SmallHorizontalGap*11+(ToggleWidth-SliderHeight)+SliderHeight+10, SmallVerticalGap*3)
  797.      .setSize(SliderWidth,SliderHeight)
  798.      .setRange(0,0.99)
  799.      .setValue(0.3)
  800.      .moveTo(g2)
  801.      .setCaptionLabel("")
  802.      ;  
  803.      cp5.addTextarea("ShelfRunnerDistanceSliderText")
  804.      .setPosition(SmallHorizontalGap*11+ToggleWidth+25 , -10+SmallVerticalGap*3-SliderHeight/2)
  805.      .setSize(150,30)
  806.      .setLineHeight(14)
  807.      .setColor(color(text))
  808.      .setText("How Far They Run")
  809.      .setFont(createFont("arial",12))
  810.      .moveTo(g2)    
  811.      ;
  812.  
  813. // Shelves Corner Radius
  814.      cp5.addSlider("ShelvesCornerRadius")
  815.      .setPosition(SmallHorizontalGap*11+(ToggleWidth-SliderHeight)+SliderHeight+10, SmallVerticalGap*4)
  816.      .setSize(SliderWidth,SliderHeight)
  817.      .setRange(0,100)
  818.      .setValue(20)
  819.      .moveTo(g2)
  820.      .setCaptionLabel("")
  821.      ;  
  822.      cp5.addTextarea("ShelfCornerRadiusSliderText")
  823.      .setPosition(SmallHorizontalGap*11+ToggleWidth+25 , -10+SmallVerticalGap*4-SliderHeight/2)
  824.      .setSize(150,70)
  825.      .setLineHeight(14)
  826.      .setColor(color(text))
  827.      .setText("Shelf Corner Radius")
  828.      .setFont(createFont("arial",12))
  829.      .moveTo(g2)    
  830.      ;
  831.  
  832.     //Shelves Material Options
  833.      cp5.addButton("ShelvesMaterialOptions")
  834.      .setPosition(20, 100+ToggleHeight*4)
  835.      .setSize(ButtonWidth, ButtonWidth)
  836.      .setCaptionLabel("")
  837.      .moveTo(g2)
  838.  
  839.      ;
  840.      
  841.      cp5.addTextarea("ShelfMaterialOptionsText")
  842.      .setPosition(30+ButtonWidth, 100+ToggleHeight*4)
  843.      .setSize(150,70)
  844.      .setLineHeight(14)
  845.      .setColor(color(text))
  846.      .setText("Shelf Inner Material Switch")
  847.      .setFont(createFont("arial",12))
  848.      .moveTo(g2)    
  849.      ;
  850.  
  851.      //Shelves Bake
  852.      cp5.addButton("ShelvesBake")
  853.      .setPosition(SmallHorizontalGap*5 , SmallVerticalGap*4.2)
  854.      .setSize(ButtonWidth, ButtonWidth)
  855.      .setCaptionLabel("")
  856.      .moveTo(g2)
  857.  
  858.      ;
  859.      cp5.addTextarea("ShelffinalBakeText")
  860.      .setPosition(SmallHorizontalGap*5+10+ButtonWidth, 6+SmallVerticalGap*4.2)
  861.      .setSize(150,70)
  862.      .setLineHeight(14)
  863.      .setColor(color(text))
  864.      .setText("Bake Shelves")
  865.      .setFont(createFont("arial",16))
  866.      .moveTo(g2)    
  867.      ;
  868.      
  869.     // Backing style selection switch
  870.      
  871.      cp5.addButton("BackingStyle")
  872.      .setPosition(20, 20)
  873.      .setSize(ButtonWidth, ButtonWidth)
  874.      .moveTo(g3)
  875.      .setCaptionLabel("")
  876.  
  877.      ;  
  878.      cp5.addTextarea("BackingStyleText")
  879.      .setPosition(20+ButtonWidth+10, 20)
  880.      .setSize(150,70)
  881.      .setLineHeight(14)
  882.      .setColor(color(text))
  883.      .setText("Change Backing Type")
  884.      .setFont(createFont("arial",14))
  885.      .moveTo(g3)    
  886.      ;
  887.      
  888.         // backing distance from edge slider
  889.      
  890.      cp5.addSlider("BackingEdgeDistance")
  891.      .setPosition(SmallHorizontalGap*4, 25)
  892.      .setSize(SliderWidth,SliderHeight)
  893.      .setRange(0,1)
  894.      .setValue(0.9)
  895.      .moveTo(g3)
  896.      .setCaptionLabel("")
  897.  
  898.      ;  
  899.      cp5.addTextarea("BackingDistanceText")
  900.      .setPosition(SmallHorizontalGap*4+SliderWidth+10, 25)
  901.      .setSize(150,70)
  902.      .setLineHeight(14)
  903.      .setColor(color(text))
  904.      .setText("Distance Backing Starts from the Edge")
  905.      .setFont(createFont("arial",14))
  906.      .moveTo(g3)    
  907.      ;
  908.     // number of circles, x
  909.      
  910.      cp5.addSlider("NumberofCirclesX")
  911.      .setPosition(SmallHorizontalGap, SmallVerticalGap+20 )
  912.      .setSize(SliderWidth,SliderHeight)
  913.      .setRange(0,22)
  914.      .setValue(6)
  915.      .moveTo(g3)
  916.      .setCaptionLabel("")
  917.      ;  
  918.      cp5.addTextarea("xcirclesText")
  919.      .setPosition(SmallHorizontalGap+SliderWidth+10, SmallVerticalGap+20+3 )
  920.      .setSize(150,70)
  921.      .setLineHeight(14)
  922.      .setColor(color(text))
  923.      .setText("# of Circles, Y")
  924.      .setFont(createFont("arial",12))
  925.      .moveTo(g3)    
  926.      ;
  927.         // number of circles, y
  928.      
  929.      cp5.addSlider("NumberofCirclesY")
  930.      .setPosition(SmallHorizontalGap, SmallVerticalGap*1.5+20 )
  931.      .setSize(SliderWidth,SliderHeight)
  932.      .setRange(0,22)
  933.      .setValue(6)
  934.      .moveTo(g3)
  935.      .setCaptionLabel("")
  936.      ;  
  937.      cp5.addTextarea("ycirclesText")
  938.      .setPosition(SmallHorizontalGap+SliderWidth+10, SmallVerticalGap*1.5+20+3 )
  939.      .setSize(150,70)
  940.      .setLineHeight(14)
  941.      .setColor(color(text))
  942.      .setText("# of Circles, X")
  943.      .setFont(createFont("arial",12))
  944.      .moveTo(g3)    
  945.      ;
  946.     // circle hole size
  947.      cp5.addSlider("CircleHoleSize")
  948.      .setPosition(SmallHorizontalGap, SmallVerticalGap*2+20 )
  949.      .setSize(SliderWidth,SliderHeight)
  950.      .setRange(0,0.95)
  951.      .setValue(0.3)
  952.      .moveTo(g3)
  953.      .setCaptionLabel("")
  954.      ;  
  955.      cp5.addTextarea("holesizecirclesText")
  956.      .setPosition(SmallHorizontalGap+SliderWidth+10, SmallVerticalGap*2+20+3 )
  957.      .setSize(150,70)
  958.      .setLineHeight(14)
  959.      .setColor(color(text))
  960.      .setText("Circle Hole Size")
  961.      .setFont(createFont("arial",12))
  962.      .moveTo(g3)    
  963.      ;
  964.  
  965.          // circle bake
  966.      cp5.addToggle("CircleBackBake")
  967.      .setPosition(SmallHorizontalGap, SmallVerticalGap*2.5+20 )
  968.      .setSize(ToggleWidth,ToggleHeight)
  969.      .setValue(false)
  970.      .setMode(ControlP5.SWITCH)
  971.      .moveTo(g3)
  972.      .setCaptionLabel("")
  973.      ;
  974.      cp5.addTextarea("createcirclesText")
  975.      .setPosition(SmallHorizontalGap+ToggleWidth+20, SmallVerticalGap*2.5+20+3 )
  976.      .setSize(150,70)
  977.      .setLineHeight(14)
  978.      .setColor(color(text))
  979.      .setText("Create the Hole Backing")
  980.      .setFont(createFont("arial",14))
  981.      .moveTo(g3)    
  982.      ;
  983.     // number of slats
  984.      
  985.      cp5.addSlider("NumberOfSlats")
  986.      .setPosition(SmallHorizontalGap*5+SliderWidth+10, SmallVerticalGap+20 )
  987.      .setSize(SliderWidth,SliderHeight)
  988.      .setRange(0,80)
  989.      .setValue(30)
  990.      .moveTo(g3)
  991.      .setCaptionLabel("")
  992.      ;  
  993.      cp5.addTextarea("slatnumberText")
  994.      .setPosition(SmallHorizontalGap*5+SliderWidth*2+20, SmallVerticalGap+20+3 )
  995.      .setSize(150,70)
  996.      .setLineHeight(14)
  997.      .setColor(color(text))
  998.      .setText("Number of Slats")
  999.      .setFont(createFont("arial",12))
  1000.      .moveTo(g3)    
  1001.      ;
  1002.     //slat width
  1003.      
  1004.      cp5.addSlider("SlatWidth")
  1005.      .setPosition(SmallHorizontalGap*5+SliderWidth+10, SmallVerticalGap*1.5+20 )
  1006.      .setSize(SliderWidth,SliderHeight)
  1007.      .setRange(0,1)
  1008.      .setValue(0.3)
  1009.      .moveTo(g3)
  1010.      .setCaptionLabel("")
  1011.      ;  
  1012.      cp5.addTextarea("slatwidthText")
  1013.      .setPosition(SmallHorizontalGap*5+SliderWidth*2+20, SmallVerticalGap*1.5+20+3 )
  1014.      .setSize(150,70)
  1015.      .setLineHeight(14)
  1016.      .setColor(color(text))
  1017.      .setText("Slat Gap Width")
  1018.      .setFont(createFont("arial",12))
  1019.      .moveTo(g3)    
  1020.      ;
  1021.   // slat angle
  1022.      
  1023.      cp5.addSlider("SlatAngle")
  1024.      .setPosition(SmallHorizontalGap*5+SliderWidth+10, SmallVerticalGap*2+20 )
  1025.      .setSize(SliderWidth,SliderHeight)
  1026.      .setRange(0,1)
  1027.      .setValue(0)
  1028.      .moveTo(g3)
  1029.      .setCaptionLabel("")
  1030.      ;  
  1031.      cp5.addTextarea("slatangleText")
  1032.      .setPosition(SmallHorizontalGap*5+SliderWidth*2+20, SmallVerticalGap*2+20+3 )
  1033.      .setSize(150,70)
  1034.      .setLineHeight(14)
  1035.      .setColor(color(text))
  1036.      .setText("Slat Angle")
  1037.      .setFont(createFont("arial",12))
  1038.      .moveTo(g3)    
  1039.      ;
  1040.       // slat bake
  1041.      cp5.addToggle("SlatBackBake")
  1042.      .setPosition(SmallHorizontalGap*5+SliderWidth+10, SmallVerticalGap*2.5+20 )
  1043.      .setSize(ToggleWidth,ToggleHeight)
  1044.      .setValue(false)
  1045.      .setMode(ControlP5.SWITCH)
  1046.      .moveTo(g3)
  1047.      .setCaptionLabel("")
  1048.      ;
  1049.      cp5.addTextarea("slatcreateText")
  1050.      .setPosition(SmallHorizontalGap*5+SliderWidth+ToggleWidth+20, SmallVerticalGap*2.5+20+3 )
  1051.      .setSize(150,70)
  1052.      .setLineHeight(14)
  1053.      .setColor(color(text))
  1054.      .setText("Create the Slats")
  1055.      .setFont(createFont("arial",14))
  1056.      .moveTo(g3)    
  1057.      
  1058.      ;
  1059.  
  1060. // Shelf Material Selection
  1061.      cp5.addButton("BackingMaterial")
  1062.      .setPosition(SmallHorizontalGap*5+10+ButtonWidth, 6+SmallVerticalGap*4.2)
  1063.      .setSize(ButtonWidth, ButtonWidth)
  1064.      .moveTo(g3)
  1065.      .setCaptionLabel("")
  1066.  
  1067.      ;
  1068.      cp5.addTextarea("backingmaterialText")
  1069.      .setPosition(SmallHorizontalGap*5+10+ButtonWidth*2+10, 6+SmallVerticalGap*4.2)
  1070.      .setSize(150,70)
  1071.      .setLineHeight(14)
  1072.      .setColor(color(text))
  1073.      .setText("Change Backing Material")
  1074.      .setFont(createFont("arial",14))
  1075.      .moveTo(g3)    
  1076.      
  1077.      ;
  1078. // Shelf Material Selection
  1079.      cp5.addButton("BackingFinalBake")  
  1080.      .setPosition(SmallHorizontalGap*10, 6+SmallVerticalGap*4.2)
  1081.      .setSize(ButtonWidth, ButtonWidth)
  1082.      .moveTo(g3)
  1083.      .setCaptionLabel("")
  1084.      ;
  1085.      cp5.addTextarea("backingbakeText")
  1086.      .setPosition(SmallHorizontalGap*10+10+ButtonWidth, 6+SmallVerticalGap*4.2)
  1087.      .setSize(150,70)
  1088.      .setLineHeight(14)
  1089.      .setColor(color(text))
  1090.      .setText("Bake Backing Material")
  1091.      .setFont(createFont("arial",14))
  1092.      .moveTo(g3)    
  1093.      
  1094.      ;
  1095.      
  1096.    }
  1097.  
  1098.    void draw() {
  1099.  
  1100.     background(150);
  1101.   //furnswitchlabel.draw(this);
  1102.     OscMessage ValueMessage = new OscMessage("/oneroom");
  1103.    
  1104.   //Are you wanting to edit the side or front shelving unit?
  1105.     if(SideorFrontToggle==true) {
  1106.       ValueMessage.add("0*True");
  1107.     } else {
  1108.       ValueMessage.add("0*False");
  1109.     }
  1110.  
  1111.    
  1112.  // Furniture Type Switch
  1113.    
  1114.     if(FurnSwitchValue == 1 ) {
  1115.       ValueMessage.add("1*True");
  1116.       delay(500);
  1117.       FurnSwitchValue = 0;
  1118.     } else {
  1119.       ValueMessage.add("1*False");
  1120.     }
  1121.    
  1122. //Which Piece of that Type Switch
  1123.    
  1124.     if(FurnObjectSwitchValue == 1 ) {
  1125.       ValueMessage.add("2*True");
  1126.       delay(500);
  1127.       FurnObjectSwitchValue = 0;
  1128.     } else {
  1129.       ValueMessage.add("2*False");
  1130.     }
  1131.  
  1132. //Horizontal Slider For Rectangle Creation
  1133.     ValueMessage.add("3*"+HorizontalPointValue);
  1134.    
  1135. //Vertical Slider For Rectangle Creation
  1136.     ValueMessage.add("4*"+VerticalPointValue);
  1137.  
  1138. //Switch for next point in Framing Rectangle
  1139.    
  1140.     if(NextPointSwitchValue == 1 ) {
  1141.       ValueMessage.add("5*True");
  1142.       delay(500);
  1143.       NextPointSwitchValue = 0;
  1144.     } else {
  1145.       ValueMessage.add("5*False");
  1146.     }
  1147.  
  1148. //Switch for resetting rectangle points
  1149.    
  1150.     if(RecResetSwitchValue == 1 ) {
  1151.       ValueMessage.add("6*True");
  1152.       delay(500);
  1153.       RecResetSwitchValue = 0;
  1154.     } else {
  1155.       ValueMessage.add("6*False");
  1156.     }
  1157.  
  1158. //Switch for baking the wardrobe rectangle
  1159.    
  1160.     if(WardrobeRecBakeValue == 1 ) {
  1161.       ValueMessage.add("7*True");
  1162.       delay(500);
  1163.       WardrobeRecBakeValue = 0;
  1164.     } else {
  1165.       ValueMessage.add("7*False");
  1166.     }
  1167.  
  1168. //Switch for baking the shelf rectangle
  1169.    
  1170.     if(ShelfRecBakeValue == 1 ) {
  1171.       ValueMessage.add("8*True");
  1172.       delay(500);
  1173.       ShelfRecBakeValue = 0;
  1174.     } else {
  1175.       ValueMessage.add("8*False");
  1176.     }
  1177.  
  1178. //Switch for baking the desk rectangle
  1179.    
  1180.     if(DeskRecBakeValue == 1 ) {
  1181.       ValueMessage.add("9*True");
  1182.       delay(500);
  1183.       DeskRecBakeValue = 0;
  1184.     } else {
  1185.       ValueMessage.add("9*False");
  1186.     }
  1187.    
  1188.   //Switch Resetting the Leg Lines
  1189.    
  1190.     if(ResetLegLinesValue == 1 ) {
  1191.       ValueMessage.add("10*True");
  1192.       delay(500);
  1193.       ResetLegLinesValue = 0;
  1194.     } else {
  1195.       ValueMessage.add("10*False");
  1196.     }
  1197.  
  1198. //Switch for creating the outer shelf frames
  1199.    
  1200.     if(CreateOuterFrame==true) {
  1201.       ValueMessage.add("11*True");
  1202.     } else {
  1203.       ValueMessage.add("11*False");
  1204.     }
  1205.  
  1206.  
  1207.  
  1208.  
  1209. //Switch for baking the outer frame
  1210.     if(BakeOuterFrameValue == 1 ) {
  1211.       ValueMessage.add("12*True");
  1212.       delay(500);
  1213.       BakeOuterFrameValue = 0;
  1214.     } else {
  1215.       ValueMessage.add("12*False");
  1216.     }
  1217.  
  1218.   //Wardrobe - Do you want a top shelf?
  1219.     if(WTopShelfToggle==true) {
  1220.       ValueMessage.add("13*True");
  1221.     } else {
  1222.       ValueMessage.add("13*False");
  1223.     }
  1224.  
  1225.   //Wardrobe - Do you want a bottom shelf?
  1226.     if(WBottomShelfToggle==true) {
  1227.       ValueMessage.add("14*True");
  1228.     } else {
  1229.       ValueMessage.add("14*False");
  1230.     }
  1231.  
  1232.  
  1233. //Wardrobe Top Shelf Height
  1234.     ValueMessage.add("15*"+WTopShelfHeightValue);
  1235.  
  1236. //Wardrobe Bottom Shelf Height
  1237.     ValueMessage.add("16*"+WBottomShelfHeightValue);
  1238.  
  1239. //Wardrobe MAterial Selection
  1240.     if(WMaterialSelectionValue == 1 ) {
  1241.       ValueMessage.add("17*True");
  1242.       delay(500);
  1243.       WMaterialSelectionValue = 0;
  1244.     } else {
  1245.       ValueMessage.add("17*False");
  1246.     }
  1247. // Bake Wardrobe - backing
  1248.     if(BakeWardrobeValue == 1 ) {
  1249.       ValueMessage.add("18*True");
  1250.       delay(500);
  1251.       BakeWardrobeValue = 0;
  1252.     } else {
  1253.       ValueMessage.add("18*False");
  1254.     }
  1255.  
  1256.  
  1257. // Shelf Material Selection
  1258.    
  1259.     if(SMaterialSelectionValue == 1 ) {
  1260.       ValueMessage.add("19*True");
  1261.       delay(500);
  1262.       SMaterialSelectionValue = 0;
  1263.     } else {
  1264.       ValueMessage.add("19*False");
  1265.     }
  1266.  
  1267.   // Shelf Left Toggle
  1268.     if(ShelfLeftPanel==true) {
  1269.       ValueMessage.add("20*True");
  1270.     } else {
  1271.       ValueMessage.add("20*False");
  1272.     }
  1273.  
  1274. //Shelf Right Toggle
  1275.     if(ShelfRightPanel==true) {
  1276.       ValueMessage.add("21*True");
  1277.     } else {
  1278.       ValueMessage.add("21*False");
  1279.     }
  1280.  
  1281.  
  1282. //Number of Shelves
  1283.     ValueMessage.add("22*"+NumberOfShelvesValue);
  1284.  
  1285. // Shelf Thickness
  1286.     ValueMessage.add("23*"+ShelfThicknessValue);
  1287.  
  1288. // Which shelf type button
  1289.  
  1290.     if(ShelfTypeValue == 1 ) {
  1291.       ValueMessage.add("24*True");
  1292.       delay(500);
  1293.       ShelfTypeValue = 0;
  1294.     } else {
  1295.       ValueMessage.add("24*False");
  1296.     }
  1297. // REmove panel options toggle
  1298.    
  1299.     if(RemovePanelOptionsValue == 1 ) {
  1300.       ValueMessage.add("25*True");
  1301.       delay(500);
  1302.       RemovePanelOptionsValue = 0;
  1303.     } else {
  1304.       ValueMessage.add("25*False");
  1305.     }
  1306.  
  1307.  
  1308. //Remove Panel Options Slider
  1309.     ValueMessage.add("26*"+RemovePanelOptionsSliderValue);
  1310.  
  1311. // Shelves in or out
  1312.     if(ShelvesInOrOut==true) {
  1313.       ValueMessage.add("27*True");
  1314.     } else {
  1315.       ValueMessage.add("27*False");
  1316.     }
  1317.  
  1318. // Shelves in or out runner
  1319.     ValueMessage.add("28*"+ShelvesInOrOutRunnerValue);
  1320. //Shelves runner distance
  1321.     ValueMessage.add("29*"+ShelvesRunnerDistanceValue);
  1322. //Shelves Corner Radius
  1323.     ValueMessage.add("30*"+ShelvesCornerRadiusValue);
  1324.    
  1325. // Shelf Material Selection
  1326.    
  1327.     if(ShelvesMaterialOptionsValue == 1 ) {
  1328.       ValueMessage.add("31*True");
  1329.       delay(500);
  1330.       ShelvesMaterialOptionsValue = 0;
  1331.     } else {
  1332.       ValueMessage.add("31*False");
  1333.     }
  1334.  
  1335. // bake the shelves
  1336.    
  1337.     if(ShelvesBakeValue == 1 ) {
  1338.       ValueMessage.add("32*True");
  1339.       delay(500);
  1340.       ShelvesBakeValue = 0;
  1341.     } else {
  1342.       ValueMessage.add("32*False");
  1343.     }
  1344.  
  1345.     // backing type selection
  1346.    
  1347.     if(BackingStyleValue == 1 ) {
  1348.       ValueMessage.add("33*True");
  1349.       delay(500);
  1350.       BackingStyleValue = 0;
  1351.     } else {
  1352.       ValueMessage.add("33*False");
  1353.     }
  1354.  
  1355. //Distance backing edits start from the edge
  1356.     ValueMessage.add("34*"+BackingEdgeDistanceValue);
  1357.  
  1358.    
  1359. //number of circles, x
  1360.     ValueMessage.add("35*"+NumberofCirclesXValue);
  1361.  
  1362.    
  1363. //number of circles, y
  1364.     ValueMessage.add("36*"+NumberofCirclesYValue);
  1365.  
  1366.  //number of circles, x
  1367.     ValueMessage.add("37*"+CircleHoleSizeValue);
  1368.  
  1369.   //Are you wanting to edit the side or front shelving unit?
  1370.     if(CircleBackBake==true) {
  1371.       ValueMessage.add("38*True");
  1372.     } else {
  1373.       ValueMessage.add("38*False");
  1374.     }
  1375.  
  1376.  
  1377. //number of slats
  1378.     ValueMessage.add("39*"+NumberOfSlatsValue);
  1379.  
  1380. // width of slats
  1381.     ValueMessage.add("40*"+SlatWidthValue);
  1382.    
  1383. // slat angle
  1384.     ValueMessage.add("41*"+SlatAngleValue);
  1385.  
  1386.  
  1387. // slat bake
  1388.     if(SlatBackBake==true) {
  1389.       ValueMessage.add("42*True");
  1390.     } else {
  1391.       ValueMessage.add("42*False");
  1392.     }
  1393.  
  1394.  
  1395. // backing material selection
  1396.    
  1397.     if(BackingMaterialValue == 1 ) {
  1398.       ValueMessage.add("43*True");
  1399.       delay(500);
  1400.       BackingMaterialValue = 0;
  1401.     } else {
  1402.       ValueMessage.add("43*False");
  1403.     }
  1404.  
  1405. // final backing bae
  1406.    
  1407.     if(BackingFinalBakeValue == 1 ) {
  1408.       ValueMessage.add("44*True");
  1409.       delay(500);
  1410.       BackingFinalBakeValue = 0;
  1411.     } else {
  1412.       ValueMessage.add("44*False");
  1413.     }
  1414.  
  1415.     delay(80);
  1416.  
  1417.     oscP5.send(ValueMessage, myBroadcastLocation);
  1418.    
  1419.  
  1420.   }
  1421.  
  1422.  
  1423.  
  1424.   public void FurnSwitch(int value) {
  1425.    FurnSwitchValue = 1;
  1426.  }
  1427.  
  1428.  public void FurnObjectSwitch(int value) {
  1429.    FurnObjectSwitchValue = 1;
  1430.  }
  1431.  
  1432.  public void NextPointSwitch(int value) {
  1433.    NextPointSwitchValue = 1;
  1434.  }
  1435.  
  1436.  public void RecResetSwitch(int value) {
  1437.    RecResetSwitchValue = 1;
  1438.  }
  1439.  
  1440.  public void WardrobeRecBake(int value) {
  1441.    WardrobeRecBakeValue = 1;
  1442.  }
  1443.  
  1444.  public void ShelfRecBake(int value) {
  1445.    ShelfRecBakeValue = 1;
  1446.  }
  1447.  
  1448.  public void DeskRecBake(int value) {
  1449.    DeskRecBakeValue = 1;
  1450.  }
  1451.  
  1452.  public void ResetLegLines(int value) {
  1453.    ResetLegLinesValue = 1;
  1454.  }
  1455.  
  1456.  public void BakeOuterFrame(int value) {
  1457.    BakeOuterFrameValue = 1;
  1458.  }
  1459.  
  1460.  public void WMaterialSelection(int value) {
  1461.    WMaterialSelectionValue = 1;
  1462.  }
  1463.  
  1464.  public void BakeWardrobe(int value) {
  1465.    BakeWardrobeValue = 1;
  1466.  }
  1467.  
  1468.  public void SMaterialSelection(int value) {
  1469.    SMaterialSelectionValue = 1;
  1470.  }
  1471.  
  1472.  public void ShelfType(int value) {
  1473.    ShelfTypeValue = 1;
  1474.  }
  1475.  
  1476.  public void RemovePanelOptions(int value) {
  1477.    RemovePanelOptionsValue = 1;
  1478.  }
  1479.  
  1480.  public void ShelvesMaterialOptions(int value) {
  1481.    ShelvesMaterialOptionsValue = 1;
  1482.  }
  1483.  
  1484.  public void ShelvesBake(int value) {
  1485.    ShelvesBakeValue = 1;
  1486.  }
  1487.  
  1488.  public void BackingStyle(int value) {
  1489.    BackingStyleValue = 1;
  1490.  }
  1491.  
  1492.  public void BackingMaterial(int value) {
  1493.    BackingMaterialValue = 1;
  1494.  }
  1495.  
  1496.  public void BackingFinalBake(int value) {
  1497.    BackingFinalBakeValue = 1;
  1498.  }
  1499.  
  1500.  public void controlEvent(ControlEvent theEvent) {
  1501.  
  1502.   println(
  1503.     "## controlEvent / id:"+theEvent.controller().getId()+
  1504.     " / name:"+theEvent.controller().getName()+
  1505.     " / value:"+theEvent.controller().getValue() );
  1506.  
  1507.   if(theEvent.controller().getName()=="HorizontalPoint") {
  1508.     HorizontalPointValue =  theEvent.getValue();
  1509.   }
  1510.  
  1511.   if(theEvent.controller().getName()=="VerticalPoint") {
  1512.     VerticalPointValue =  theEvent.getValue();
  1513.   }
  1514.  
  1515.   if(theEvent.controller().getName()=="WTopShelfHeight") {
  1516.     WTopShelfHeightValue =  theEvent.getValue();
  1517.   }
  1518.  
  1519.   if(theEvent.controller().getName()=="WBottomShelfHeight") {
  1520.     WBottomShelfHeightValue =  theEvent.getValue();
  1521.   }
  1522.  
  1523.   if(theEvent.controller().getName()=="NumberOfShelves") {
  1524.     NumberOfShelvesValue =  theEvent.getValue();
  1525.    
  1526.   }
  1527.  
  1528.  
  1529.   if(theEvent.controller().getName()=="ShelfThickness") {
  1530.     ShelfThicknessValue =  theEvent.getValue();
  1531.    
  1532.   }
  1533.  
  1534.   if(theEvent.controller().getName()=="RemovePanelOptionsSlider") {
  1535.     RemovePanelOptionsSliderValue =  theEvent.getValue();
  1536.    
  1537.   }
  1538.  
  1539.   if(theEvent.controller().getName()=="ShelvesInOrOutRunner") {
  1540.     ShelvesInOrOutRunnerValue =  theEvent.getValue();
  1541.    
  1542.   }
  1543.   if(theEvent.controller().getName()=="ShelvesRunnerDistance") {
  1544.     ShelvesRunnerDistanceValue =  theEvent.getValue();
  1545.    
  1546.   }
  1547.   if(theEvent.controller().getName()=="ShelvesCornerRadius") {
  1548.     ShelvesCornerRadiusValue =  theEvent.getValue();
  1549.    
  1550.   }
  1551.  
  1552.   if(theEvent.controller().getName()=="BackingEdgeDistance") {
  1553.     BackingEdgeDistanceValue =  theEvent.getValue();
  1554.    
  1555.   }
  1556.  
  1557.   if(theEvent.controller().getName()=="NumberofCirclesX") {
  1558.     NumberofCirclesXValue =  theEvent.getValue();
  1559.    
  1560.   }
  1561.   if(theEvent.controller().getName()=="NumberofCirclesY") {
  1562.     NumberofCirclesYValue =  theEvent.getValue();
  1563.    
  1564.   }
  1565.   if(theEvent.controller().getName()=="CircleHoleSize") {
  1566.     CircleHoleSizeValue =  theEvent.getValue();
  1567.    
  1568.   }
  1569.   if(theEvent.controller().getName()=="NumberOfSlats") {
  1570.     NumberOfSlatsValue =  theEvent.getValue();
  1571.    
  1572.   }
  1573.   if(theEvent.controller().getName()=="SlatWidth") {
  1574.     SlatWidthValue =  theEvent.getValue();
  1575.    
  1576.   }
  1577.   if(theEvent.controller().getName()=="SlatAngle") {
  1578.     SlatAngleValue =  theEvent.getValue();
  1579.    
  1580.   }
  1581. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement