コード例 #1
0
        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="gizmo">The gizmo which owns the slider.</param>
        /// <param name="handleId">The id of the slider handle.</param>
        /// <param name="capHandleId">The id of the slider's cap handle.</param>
        public GizmoLineSlider3D(Gizmo gizmo, int handleId, int capHandleId)
            : base(gizmo, handleId)
        {
            _segmentIndex  = Handle.Add3DShape(_segment);
            _boxIndex      = Handle.Add3DShape(_box);
            _cylinderIndex = Handle.Add3DShape(_cylinder);

            _cap3D = new GizmoCap3D(Gizmo, capHandleId);
            SetupSharedLookAndFeel();

            MapDirection(0, AxisSign.Positive);
            SetDragChannel(GizmoDragChannel.Offset);

            _controllerData.Gizmo         = Gizmo;
            _controllerData.Slider        = this;
            _controllerData.SliderHandle  = Handle;
            _controllerData.Segment       = _segment;
            _controllerData.Box           = _box;
            _controllerData.Cylinder      = _cylinder;
            _controllerData.SegmentIndex  = _segmentIndex;
            _controllerData.BoxIndex      = _boxIndex;
            _controllerData.CylinderIndex = _cylinderIndex;

            _controllers[(int)GizmoLine3DType.Thin]     = new GizmoThinLineSlider3DController(_controllerData);
            _controllers[(int)GizmoLine3DType.Box]      = new GizmoBoxLineSlider3DController(_controllerData);
            _controllers[(int)GizmoLine3DType.Cylinder] = new GizmoCylinderLineSlider3DController(_controllerData);

            _transform.Changed        += OnTransformChanged;
            Gizmo.PreUpdateBegin      += OnGizmoPreUpdateBegin;
            Gizmo.PreDragBeginAttempt += OnGizmoAttemptHandleDragBegin;
            Gizmo.PreHoverEnter       += OnGizmoHandleHoverEnter;
            Gizmo.PreHoverExit        += OnGizmoHandleHoverExit;
            Gizmo.PostEnabled         += OnGizmoPostEnabled;
            Gizmo.PostDisabled        += OnGizmoPostDisabled;

            AddTargetTransform(_transform);
            AddTargetTransform(Gizmo.Transform);
            _cap3D.RegisterTransformAsDragTarget(_offsetDrag);
            _cap3D.RegisterTransformAsDragTarget(_rotationDrag);
            _cap3D.RegisterTransformAsDragTarget(_scaleDrag);
            _transform.SetParent(Gizmo.Transform);
        }