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);
        }
        private void SetGizmoPosition(SrGizmo gizmo)
        {
            if (_selectedObject == null || gizmo == null)
            {
                return;
            }
            var offSetData = _selectedObject.GetComponent <SrGizmoPositionOffset>();
            var offSet     = offSetData?.PositionOffset ?? Vector3.zero;

            gizmo.transform.position = _selectedObject.transform.position + offSet;
            gizmo.transform.rotation = _selectedObject.transform.rotation;
        }
 private void SetupGizmo(SrGizmo srGizmo, bool enableGizmo)
 {
     if (_selectedObject != null && enableGizmo)
     {
         SetGizmoPosition(srGizmo);
         srGizmo.gameObject.SetActive(true);
     }
     else
     {
         srGizmo.gameObject.SetActive(false);
         _selectedGizmoType = SrGizmoType.None;
     }
 }
 public IEnumerable <SrRestrictAxis> GetAxisRestriction(SrGizmo srGizmo)
 {
     return(_selectedObject?.GetComponents <SrRestrictAxis>()?.Where(ra => ra.GizmoType == srGizmo?.GizmoType) ?? Enumerable.Empty <SrRestrictAxis>());
 }
 private bool IsFullyRestricted(SrGizmo srGizmo)
 {
     return(_selectedObject?.GetComponents <SrRestrictAxis>()?.Any(ar =>
                                                                   ar.RestrictAxisTo == SrAxisType.None && ar.GizmoType == srGizmo.GizmoType) ?? false);
 }