private Vector3 ApplyTransformScale(SrGizmoAxis axis, Vector3 offSet) { switch (axis.SrAxis) { case SrAxisType.X: offSet = Camera.transform.right * GetTranslateScaleDelta(SrAxisType.X); offSet = new Vector3(offSet.x, 0.0f, 0.0f); break; case SrAxisType.Y: offSet = Camera.transform.up * GetTranslateScaleDelta(SrAxisType.Y); offSet = new Vector3(0.0f, offSet.y, 0.0f); break; case SrAxisType.Z: offSet = Camera.transform.right * GetTranslateScaleDelta(SrAxisType.Z); offSet = new Vector3(0.0f, 0.0f, offSet.z); break; case SrAxisType.None: break; default: throw new ArgumentOutOfRangeException(); } return(offSet); }
private bool RestrictedAxis(SrGizmo srGizmo, SrGizmoAxis srGizmoAxis) { var axisRestriction = GetAxisRestriction(srGizmo); var srRestrictAxises = axisRestriction as SrRestrictAxis[] ?? axisRestriction.ToArray(); var axisRestrictionCount = srRestrictAxises.Count(ar => ar.GizmoType == srGizmo.GizmoType); return(srRestrictAxises.Any(ar => ar.GizmoType == srGizmo.GizmoType && ar.RestrictAxisTo == srGizmoAxis.SrAxis) || axisRestrictionCount == 0); }