using SC.XR.Unity.Module_InputSystem; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public abstract class AbstractDevicePartManipulation : IDevicePartManipulation { protected Dictionary eventDataDic; protected Transform targetTransform; protected MoveLogic moveLogic; protected RotateLogic rotateLogic; protected ScaleLogic scaleLogic; protected ManipulationHandler manipulationHandler; public virtual void OneDevicePartInit(ManipulationHandler manipulationHandler, Dictionary eventDataDic, Transform targetTransform, MoveLogic moveLogic, RotateLogic rotateLogic, ScaleLogic scaleLogic) { this.eventDataDic = eventDataDic; this.targetTransform = targetTransform; this.moveLogic = moveLogic; this.rotateLogic = rotateLogic; this.scaleLogic = scaleLogic; this.manipulationHandler = manipulationHandler; } public abstract Tuple OneDevicePartUpdate(); public virtual void TwoDevicePartInit(ManipulationHandler manipulationHandler, Dictionary eventDataDic, Transform targetTransform, MoveLogic moveLogic, RotateLogic rotateLogic, ScaleLogic scaleLogic) { this.eventDataDic = eventDataDic; this.targetTransform = targetTransform; this.moveLogic = moveLogic; this.rotateLogic = rotateLogic; this.scaleLogic = scaleLogic; this.manipulationHandler = manipulationHandler; } public abstract Tuple TwoDevicePartUpdate(Func scaleConstraint); }