public void CheckSnapping(MapEditorInSceneObject inSceneObj) { if (!GotSnappedObject) { IN_SCENE_OBJECT_TYPES objType = inSceneObj.inSceneObjectType; bool isVerticalLine = objType == IN_SCENE_OBJECT_TYPES.NORMAL_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.WHITE_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.RED_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.YELLOW_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.BLUE_VERTICAL_LINE; bool isHorizontalLine = objType == IN_SCENE_OBJECT_TYPES.NORMAL_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.WHITE_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.RED_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.YELLOW_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.BLUE_HORIZONTAL_LINE; if (borderType == SNAPPING_TYPE.VERTICAL && isVerticalLine) { if (!inSceneObj.SnappedTargetBorder) { GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } else { inSceneObj.SnappedTargetBorder.GotSnappedObject = false; GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } else if (borderType == SNAPPING_TYPE.HORIZONTAL && isHorizontalLine) { if (!inSceneObj.SnappedTargetBorder) { GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } else { inSceneObj.SnappedTargetBorder.GotSnappedObject = false; GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } } }
public void CheckSnapping(MapEditorInSceneObject inSceneObj) { if (!GotSnappedObject) { IN_SCENE_OBJECT_TYPES objType = inSceneObj.inSceneObjectType; bool isVerticalPortal = objType == IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_VERTICAL || objType == IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_VERTICAL; bool isHorizontalPortal = objType == IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_HORIZONTAL || objType == IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_HORIZONTAL; if (portalSnappingType == SNAPPING_TYPE.VERTICAL && isVerticalPortal) { if (!inSceneObj.SnappedTargetPortalSnapper) { GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } else { inSceneObj.SnappedTargetPortalSnapper.GotSnappedObject = false; GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } else if (portalSnappingType == SNAPPING_TYPE.HORIZONTAL && isHorizontalPortal) { if (!inSceneObj.SnappedTargetPortalSnapper) { GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } else { inSceneObj.SnappedTargetPortalSnapper.GotSnappedObject = false; GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } } }
public void Initialization() { BoxCollider boxCol = GetComponent <BoxCollider>(); Collider[] overlappedCols = Physics.OverlapBox(transform.position + boxCol.center, boxCol.size / 2f, transform.rotation, LayerMask.GetMask("MapEditorBorder")); if (overlappedCols.Length > 0) { if (overlappedCols[0].TryGetComponent(out MapEditorInSceneObject inSceneObj)) { IN_SCENE_OBJECT_TYPES objType = inSceneObj.inSceneObjectType; // Consider change to using bit operator (Don't do it for now as it will make the json data of old map wrong) bool isVerticalLine = objType == IN_SCENE_OBJECT_TYPES.NORMAL_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.WHITE_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.RED_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.YELLOW_VERTICAL_LINE || objType == IN_SCENE_OBJECT_TYPES.BLUE_VERTICAL_LINE; bool isHorizontalLine = objType == IN_SCENE_OBJECT_TYPES.NORMAL_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.WHITE_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.RED_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.YELLOW_HORIZONTAL_LINE || objType == IN_SCENE_OBJECT_TYPES.BLUE_HORIZONTAL_LINE; if (borderType == SNAPPING_TYPE.VERTICAL && isVerticalLine) { if (!inSceneObj.SnappedTargetBorder) { GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } else if (borderType == SNAPPING_TYPE.HORIZONTAL && isHorizontalLine) { if (!inSceneObj.SnappedTargetBorder) { GotSnappedObject = true; inSceneObj.SnappedTargetBorder = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } } } else { GotSnappedObject = false; } }
public void Initialization() { BoxCollider boxCol = GetComponent <BoxCollider>(); Collider[] overlappedCols = Physics.OverlapBox(transform.position + boxCol.center, boxCol.size / 2f, transform.rotation, LayerMask.GetMask("MapEditorPortal")); if (overlappedCols.Length > 0) { if (overlappedCols[0].TryGetComponent(out MapEditorInSceneObject inSceneObj)) { IN_SCENE_OBJECT_TYPES objType = inSceneObj.inSceneObjectType; bool isVerticalPortal = objType == IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_VERTICAL || objType == IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_VERTICAL; bool isHorizontalPortal = objType == IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_HORIZONTAL || objType == IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_HORIZONTAL; if (portalSnappingType == SNAPPING_TYPE.VERTICAL && isVerticalPortal) { if (!inSceneObj.SnappedTargetPortalSnapper) { GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } else if (portalSnappingType == SNAPPING_TYPE.HORIZONTAL && isHorizontalPortal) { if (!inSceneObj.SnappedTargetPortalSnapper) { GotSnappedObject = true; inSceneObj.SnappedTargetPortalSnapper = this; inSceneObj.InSceneObjData.mapGridIndex = transform.GetComponentInParent <MapGridMapEditor>().MapGridIndex; inSceneObj.InSceneObjData.borderDir = snappingDir; } } } } else { GotSnappedObject = false; } }
private void Update() { // If map finish initializing, option menu is off, level menu is off and the user not editing the value in the input fields if (MapEditing && !OptionMenuVisibility && !LevelSettingsVisibility && !MapEditorManager.Instance.EditingIF) { if (Input.GetMouseButtonDown(0)) { Ray mouseRay = cachedMainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit hit; LayerMask layerMask = LayerMask.GetMask("MapEditorBorder", "MapEditorOriginEndPoint", "MapEditorPortal"); if (selectingObject == null) { if (Physics.Raycast(mouseRay, out hit, cachedMainCamera.farClipPlane + 5.0f, layerMask)) { SelectObject(hit.collider.GetComponent <MapEditorInSceneObject>()); } } else { if (!Physics.Raycast(mouseRay, out hit, cachedMainCamera.farClipPlane + 5.0f, layerMask)) { if (CurrentGizmoMode == GIZMO_MODE.MOVE) { SwitchInputMode(INPUT_MODE.NONE); } } } } if (Input.GetMouseButtonDown(1)) { // If currently picking from sub-panel if (CurrentSelectedPanel != MAP_EDITING_PANEL.NONE) { // Reset it to none SwitchSelectedPanel(MAP_EDITING_PANEL.NONE); } SwitchInputMode(INPUT_MODE.NONE); } if (Input.GetKeyDown(KeyCode.W)) { if (CurrentGizmoMode == GIZMO_MODE.MOVE) { return; } CurrentGizmoMode = GIZMO_MODE.MOVE; if (selectingObject) { SwitchGizmo(); } } else if (Input.GetKeyDown(KeyCode.E)) { if (CurrentGizmoMode == GIZMO_MODE.ROTATE) { return; } CurrentGizmoMode = GIZMO_MODE.ROTATE; if (selectingObject) { SwitchGizmo(); } } else if (Input.GetKeyDown(KeyCode.Delete)) { if (selectingObject) { DeleteObject(); } } // Accept Hot Key Input switch (CurrentSelectedPanel) { // No Panel Selected case MAP_EDITING_PANEL.NONE: if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.HORIZONTAL_LINE); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.VERTICAL_LINE); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.ORIGIN_POINT); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.DESTINATION_POINT); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.PORTAL); } break; case MAP_EDITING_PANEL.HORIZONTAL_LINE: // Horizontal Line Panel Selected if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.NORMAL_HORIZONTAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.WHITE_HORIZONTAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.RED_HORIZONTAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.YELLOW_HORIZONTAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.BLUE_HORIZONTAL_LINE)); SwitchSelectedPanel(0); } break; case MAP_EDITING_PANEL.VERTICAL_LINE: // Vertical Line Panel Selected if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.NORMAL_VERTICAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.WHITE_VERTICAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.RED_VERTICAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.YELLOW_VERTICAL_LINE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha5)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.BLUE_VERTICAL_LINE)); SwitchSelectedPanel(0); } break; case MAP_EDITING_PANEL.ORIGIN_POINT: if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_WHITE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_RED)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_YELLOW)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_BLUE)); SwitchSelectedPanel(0); } break; case MAP_EDITING_PANEL.DESTINATION_POINT: // Destination Point Panel Selected if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_WHITE)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_RED)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha3)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_YELLOW)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha4)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_BLUE)); SwitchSelectedPanel(0); } break; case MAP_EDITING_PANEL.PORTAL: if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.PORTAL_1ST_SET); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SwitchSelectedPanel(MAP_EDITING_PANEL.PORTAL_2ND_SET); } break; case MAP_EDITING_PANEL.PORTAL_1ST_SET: if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_HORIZONTAL)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_VERTICAL)); SwitchSelectedPanel(0); } break; case MAP_EDITING_PANEL.PORTAL_2ND_SET: if (Input.GetKeyDown(KeyCode.Alpha1)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_HORIZONTAL)); SwitchSelectedPanel(0); } else if (Input.GetKeyDown(KeyCode.Alpha2)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } SelectObject(MapEditorManager.Instance.CreateInSceneObj(IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_VERTICAL)); SwitchSelectedPanel(0); } break; } } // If map finish initializing and the user not editing input fields if (MapEditing && !MapEditorManager.Instance.EditingIF) { if (Input.GetKeyDown(KeyCode.Tab)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } MapEditorManager.Instance.ToggleOptionMenu(); } if (Input.GetKeyDown(KeyCode.LeftShift)) { if (selectingObject) { SwitchInputMode(INPUT_MODE.NONE); } MapEditorManager.Instance.ToggleLevelSettingsMenu(); } } if (MapEditing && CurrentInputMode == INPUT_MODE.SELECTING && CurrentGizmoMode == GIZMO_MODE.MOVE) { Ray ray = cachedMainCamera.ScreenPointToRay(Input.mousePosition); RaycastHit raycastHit; IN_SCENE_OBJECT_TYPES objType = selectingObject.inSceneObjectType; LayerMask targetMask = default; switch (objType) { case IN_SCENE_OBJECT_TYPES.NORMAL_HORIZONTAL_LINE: case IN_SCENE_OBJECT_TYPES.WHITE_HORIZONTAL_LINE: case IN_SCENE_OBJECT_TYPES.RED_HORIZONTAL_LINE: case IN_SCENE_OBJECT_TYPES.YELLOW_HORIZONTAL_LINE: case IN_SCENE_OBJECT_TYPES.BLUE_HORIZONTAL_LINE: case IN_SCENE_OBJECT_TYPES.NORMAL_VERTICAL_LINE: case IN_SCENE_OBJECT_TYPES.WHITE_VERTICAL_LINE: case IN_SCENE_OBJECT_TYPES.RED_VERTICAL_LINE: case IN_SCENE_OBJECT_TYPES.YELLOW_VERTICAL_LINE: case IN_SCENE_OBJECT_TYPES.BLUE_VERTICAL_LINE: targetMask = LayerMask.GetMask("MapEditorBorderSnapper"); break; case IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_WHITE: case IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_RED: case IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_YELLOW: case IN_SCENE_OBJECT_TYPES.ORIGIN_POINT_BLUE: case IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_WHITE: case IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_RED: case IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_YELLOW: case IN_SCENE_OBJECT_TYPES.DESTINATION_POINT_BLUE: targetMask = LayerMask.GetMask("MapEditorBoxSnapper"); break; case IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_HORIZONTAL: case IN_SCENE_OBJECT_TYPES.PORTAL_1ST_SET_VERTICAL: case IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_HORIZONTAL: case IN_SCENE_OBJECT_TYPES.PORTAL_2ND_SET_VERTICAL: targetMask = LayerMask.GetMask("MapEditorPortalSnapper"); break; } if (Physics.Raycast(ray, out raycastHit, 100.0f, targetMask)) { if (raycastHit.transform.TryGetComponent(out MapLayoutBorder mapLayoutBorder)) { mapLayoutBorder.CheckSnapping(selectingObject); } else if (raycastHit.transform.TryGetComponent(out MapLayoutBoxSnapper mapLayoutBoxSnapper)) { mapLayoutBoxSnapper.CheckSnapping(selectingObject); } else if (raycastHit.transform.TryGetComponent(out MapLayoutPortalSnapper mapLayoutPortalSnapper)) { mapLayoutPortalSnapper.CheckSnapping(selectingObject); } } } }