3 using System.Collections.Generic;
23 public VRPNToolConnections(
string ff_server =
default(String),
bool ff_server_connected =
false,
string tracker_server =
default(String),
bool tracker_server_connected =
false,
string buttons_server =
default(String),
bool buttons_server_connected =
false) {
57 List<VRPNToolConnections>
connections =
new List<VRPNToolConnections>();
63 current_tool_index = 0;
65 tool_types_dropdown = transform.Find(
"Tools Canvas/Tools Dropdown").gameObject.GetComponent<Dropdown>();
66 tool_addition_button = transform.Find(
"Tools Canvas/Tools Addition Button").gameObject.GetComponent<Button>();
68 tools_dropdown = transform.Find(
"Tools Canvas/Tool Instances Dropdown").gameObject.GetComponent<Dropdown>();
69 tool_deletion_button = transform.Find(
"Tools Canvas/Tool Deletion Button").gameObject.GetComponent<Button>();
71 tool_ff_server_field = transform.Find(
"Connections Canvas/FF Server Field").gameObject.GetComponent<InputField>();
72 tool_tracker_server_field = transform.Find(
"Connections Canvas/Tracker Server Field").gameObject.GetComponent<InputField>();
73 tool_buttons_server_field = transform.Find(
"Connections Canvas/Buttons Server Field").gameObject.GetComponent<InputField>();
75 tool_ff_server_field.onValueChanged.AddListener(delegate{
ResetFieldColorBlock(tool_ff_server_field);});
76 tool_tracker_server_field.onValueChanged.AddListener(delegate{
ResetFieldColorBlock(tool_tracker_server_field);});
77 tool_buttons_server_field.onValueChanged.AddListener(delegate{
ResetFieldColorBlock(tool_buttons_server_field);});
79 tool_addition_button.onClick.AddListener(() =>
CreateTool());
80 tools_dropdown.onValueChanged.AddListener((
int tool_index) =>
SelectTool(tool_index));
81 tool_deletion_button.onClick.AddListener(() =>
DeleteTool());
83 tool_ff_server_toggle = transform.Find(
"Connections Canvas/FF Server Toggle").gameObject.GetComponent<Toggle>();
84 tool_tracker_server_toggle = transform.Find(
"Connections Canvas/Tracker Server Toggle").gameObject.GetComponent<Toggle>();
85 tool_buttons_server_toggle = transform.Find(
"Connections Canvas/Buttons Server Toggle").gameObject.GetComponent<Toggle>();
87 tool_ff_server_toggle.isOn =
false;
88 tool_tracker_server_toggle.isOn =
false;
89 tool_buttons_server_toggle.isOn =
false;
99 f.colors = ColorBlock.defaultColorBlock;
128 tool_ff_server_field.interactable =
true;
129 tool_ff_server_toggle.interactable =
true;
130 tool_tracker_server_field.interactable =
true;
131 tool_tracker_server_toggle.interactable =
true;
132 tool_buttons_server_field.interactable =
true;
133 tool_buttons_server_toggle.interactable =
true;
137 tool_ff_server_field.interactable =
false;
138 tool_ff_server_toggle.interactable =
false;
139 tool_tracker_server_field.interactable =
false;
140 tool_tracker_server_toggle.interactable =
false;
141 tool_buttons_server_field.interactable =
false;
142 tool_buttons_server_toggle.interactable =
false;
146 tool_ff_server_field.text =
"";
147 tool_tracker_server_field.text =
"";
148 tool_buttons_server_field.text =
"";
149 tool_ff_server_toggle.isOn =
false;
150 tool_tracker_server_toggle.isOn =
false;
151 tool_buttons_server_toggle.isOn =
false;
159 Dropdown.OptionData od =
new Dropdown.OptionData();
160 od.text = tool_type.ToString();
162 List<Dropdown.OptionData> lod =
new List<Dropdown.OptionData>();
166 connections.Add(connection_strings_instance);
168 tools_dropdown.AddOptions(lod);
170 tool_deletion_button.interactable =
true;
176 tools_dropdown.value = index;
180 int current_tool = tools_dropdown.value;
182 tools_dropdown.options.RemoveAt(current_tool);
184 connections.RemoveAt(current_tool);
186 tools_dropdown.value = 0;
188 if (tools_dropdown.options.Count == 0)
192 tools_dropdown.ClearOptions();
193 tool_deletion_button.interactable =
false;
200 Debug.Log(
"Tool Selection Callback");
201 Debug.Log(
"Selected tool: " + tool_index);
203 current_tool_index = tool_index;
223 catch (ArgumentOutOfRangeException) {
228 current_c.
ff_server = tool_ff_server_field.text;
251 catch (ArgumentOutOfRangeException) {
279 catch (ArgumentOutOfRangeException) {
301 Debug.Log(
"ConnectToFFServer");
303 if (result ==
false) {
304 ColorBlock cb = tool_ff_server_field.colors;
305 cb.normalColor =
new Color(1f, 0.4f, 0.4f);
306 cb.highlightedColor =
new Color(1f, 0.4f, 0.4f);
307 tool_ff_server_field.colors = cb;
308 tool_ff_server_toggle.isOn =
false;
310 tool_ff_server_field.interactable =
false;
315 Debug.Log(
"ConnectToTrackerServer");
317 if (result ==
false) {
318 ColorBlock cb = tool_tracker_server_field.colors;
319 cb.normalColor =
new Color(1f, 0.4f, 0.4f);
320 cb.highlightedColor =
new Color(1f, 0.4f, 0.4f);
321 tool_tracker_server_field.colors = cb;
322 tool_tracker_server_toggle.isOn =
false;
324 tool_tracker_server_field.interactable =
false;
329 Debug.Log(
"ConnectToButtonServer");
331 if (result ==
false) {
332 ColorBlock cb = tool_buttons_server_field.colors;
333 cb.normalColor =
new Color(1f, 0.4f, 0.4f);
334 cb.highlightedColor =
new Color(1f, 0.4f, 0.4f);
335 tool_buttons_server_field.colors = cb;
336 tool_buttons_server_toggle.isOn =
false;
338 tool_buttons_server_field.interactable =
false;
343 Debug.Log(
"DisconnectFromFFServer");
344 tool_ff_server_field.interactable =
true;
349 Debug.Log(
"DisconnectFromTrackerServer");
350 tool_tracker_server_field.interactable =
true;
355 Debug.Log(
"DisconnectFromButtonsServer");
356 tool_buttons_server_field.interactable =
true;
void ToggleFFServer(bool isOn)
bool DisconnectToolFromTracker(int tool_instance_index)
InputField tool_tracker_server_field
void DisableToolConnectionsPanel()
bool ConnectToolToTracker(int tool_instance_index, string vrpn_device)
void ToggleTrackerServer(bool isOn)
Dropdown tool_types_dropdown
void EmptyToolConnectionsPanel()
bool tracker_server_connected
void DisconnectFromTrackerServer(int tool_index)
static VRPN.VRPNManager getVRPNManager()
Toggle tool_tracker_server_toggle
void ResetFieldColorBlock(InputField f)
void ConnectToButtonsServer(int tool_index)
Toggle tool_buttons_server_toggle
bool ConnectToolToForceFeedback(int tool_instance_index, string vrpn_device)
bool RemoveTool(int tool_instance_index)
Toggle tool_ff_server_toggle
void ToggleButtonsServer(bool isOn)
Button tool_deletion_button
List< VRPNToolConnections > connections
InputField tool_ff_server_field
Button tool_addition_button
void EnableToolConnectionsPanel()
bool DisconnectToolFromButtons(int tool_instance_index)
void ConnectToFFServer(int tool_index)
int InstantiateTool(VRPNToolType tool_type)
void DisconnectFromFFServer(int tool_index)
bool ConnectToolToButtons(int tool_instance_index, string vrpn_device)
void SelectTool(int tool_index)
VRPNToolConnections(string ff_server=default(String), bool ff_server_connected=false, string tracker_server=default(String), bool tracker_server_connected=false, string buttons_server=default(String), bool buttons_server_connected=false)
bool DisconnectToolFromForceFeedback(int tool_instance_index)
void RestoreToolConnectionsState(VRPNToolConnections c)
InputField tool_buttons_server_field
void ConnectToTrackerServer(int tool_index)
bool buttons_server_connected
void DisconnectFromButtonsServer(int tool_index)