public void SetChirality(Chirality whichHand) { if (whichHand == _chirality) { return; } else { Transform currentPalm; Transform targetPalm; if (_chirality == Chirality.Left) { currentPalm = _leftPalm; targetPalm = _rightPalm; } else { currentPalm = _rightPalm; targetPalm = _leftPalm; } Vector3 curLocal = transform.localPosition; this.transform.rotation = MirrorUtil.GetMirroredRotation(this.transform.rotation, currentPalm, targetPalm); this.transform.parent = targetPalm; this.transform.localPosition = new Vector3(-curLocal.x, curLocal.y, curLocal.z); _chirality = whichHand; OnAnchorChiralityChanged(_chirality); } }
protected override void DoOnAnchorChiralityChanged(Chirality newChirality) { base.DoOnAnchorChiralityChanged(newChirality); if (newChirality != DisplayingChirality) { _brushControlsMoveable.A.localPosition = new Vector3(-_brushControlsMoveable.A.localPosition.x, _brushControlsMoveable.A.localPosition.y, _brushControlsMoveable.A.localPosition.z); _brushControlsMoveable.A.rotation = MirrorUtil.GetMirroredRotation(_brushControlsMoveable.A.rotation, this.transform); if (!IsWorkstation) { _brushControlsMoveable.MoveToA(); } DisplayingChirality = newChirality; } }
protected override void DoOnAnchorChiralityChanged(Chirality newChirality) { base.DoOnAnchorChiralityChanged(newChirality); if (newChirality != DisplayingChirality) { for (int i = 0; i < _menuButtonMoveables.Length; i++) { _menuButtonMoveables[i].A.localPosition = new Vector3(-_menuButtonMoveables[i].A.localPosition.x, _menuButtonMoveables[i].A.localPosition.y, _menuButtonMoveables[i].A.localPosition.z); _menuButtonMoveables[i].A.rotation = MirrorUtil.GetMirroredRotation(_menuButtonMoveables[i].A.rotation, _menuButtonMoveables[i].transform.parent); if (!IsWorkstation) { _menuButtonMoveables[i].MoveToA(); } } DisplayingChirality = newChirality; } }