public void Clicked() { // initialize a move switch (m_CurrentTool) { case Tool.Line: m_PointerController.IncreaseSizeOfPointer(); // draw point ? drawing = Tool.Line; // TODO: m_DrawableLine.StartDrawing(m_Pointer.transform.position); break; case Tool.Area: if (m_PointerController.collidingObject != null && m_PointerController.collidingObject.name.Contains("Line")) { m_PointerController.IncreaseSizeOfPointer(); m_LineForArea = m_PointerController.collidingObject; drawing = Tool.Area; // TODO: change back m_DrawableArea.m_UpVec = m_LineForArea.transform.up; m_DrawableArea.m_YScale = m_LineForArea.transform.localScale.y; m_DrawableArea.StartDrawing(m_LineForArea.transform.position); Dragged(); // TODO: do we need? if so add to post start } break; case Tool.Volume: if (m_PointerController.collidingObject != null) { m_PointerController.IncreaseSizeOfPointer(); if (m_PointerController.collidingObject.transform.parent.gameObject.name.Contains("Area")) { m_AreaForVolume = m_PointerController.collidingObject.transform.parent.gameObject; drawing = Tool.Volume; // TODO: change back m_DrawableVolume.m_AreaLocalRotation = m_AreaForVolume.transform.localRotation; m_DrawableVolume.m_AreaLocalScale = m_AreaForVolume.transform.localScale; m_DrawableVolume.m_AreaForwardDir = m_AreaForVolume.transform.forward; m_DrawableVolume.StartDrawing(m_AreaForVolume.transform.position); } else if (m_PointerController.collidingObject.transform.name.Contains("Mesh")) { // start extruding mesh m_MeshForVolume = m_PointerController.collidingObject; drawing = Tool.Volume; initialPosition = m_MeshForVolume.transform.position; m_MeshCreatorController = m_MeshForVolume.GetComponent <MeshCreatorController>(); } Dragged(); } break; case Tool.Sphere: drawing = Tool.Sphere; m_DrawableSphere.StartDrawing(m_Pointer.transform.position); break; case Tool.Mesh: // TODO // maybe create a plane that we draw on with a grid (could make the grid lines variable in spacing) break; case Tool.None: default: drawing = Tool.None; break; } }