Example #1
0
        public static PlaneQuadrantId GetQuadrantFromAxesSigns(PlaneId planeId, AxisSign firstAxisSign, AxisSign secondAxisSign)
        {
            PlaneQuadrantInfo quadrantInfo = _planeInfo[(int)planeId].
                                             QuadrantInfo.FindAll(item => item.FirstAxisSign == firstAxisSign && item.SecondAxisSign == secondAxisSign)[0];

            return(quadrantInfo.Quadrant);
        }
Example #2
0
 public PlaneDescriptor(PlaneId planeId, PlaneQuadrantId planeQuadrant)
 {
     _id                   = planeId;
     _quadrant             = planeQuadrant;
     _firstAxisDescriptor  = PlaneIdHelper.GetFirstAxisDescriptor(planeId, planeQuadrant);
     _secondAxisDescriptor = PlaneIdHelper.GetSecondAxisDescriptor(planeId, planeQuadrant);
 }
        public Plane GetPlane3D(PlaneId planeId, PlaneQuadrantId planeQuadrantId)
        {
            PlaneDescriptor planeDesc  = new PlaneDescriptor(planeId, planeQuadrantId);
            Vector3         firstAxis  = GetAxis3D(planeDesc.FirstAxisDescriptor);
            Vector3         secondAxis = GetAxis3D(planeDesc.SecondAxisDescriptor);

            return(new Plane(Vector3.Normalize(Vector3.Cross(firstAxis, secondAxis)), Position3D));
        }
Example #4
0
 public static int PlaneIdToSecondAxisIndex(PlaneId planeId)
 {
     if (planeId == PlaneId.XY)
     {
         return(1);
     }
     if (planeId == PlaneId.ZX)
     {
         return(0);
     }
     return(2);
 }
        public void MakeSliderPlane(GizmoTransform sliderPlaneTransform, PlaneId planeId, GizmoLineSlider3D firstAxisSlider, GizmoLineSlider3D secondAxisSlider, Camera camera)
        {
            PlaneQuadrantId quadrantId = sliderPlaneTransform.Get3DQuadrantFacingCamera(planeId, camera);

            AlignToQuadrant(sliderPlaneTransform, planeId, quadrantId, true);

            Vector3 firstQdrAxis  = sliderPlaneTransform.GetAxis3D(PlaneIdHelper.GetFirstAxisDescriptor(planeId, quadrantId));
            Vector3 secondQdrAxis = sliderPlaneTransform.GetAxis3D(PlaneIdHelper.GetSecondAxisDescriptor(planeId, quadrantId));
            Vector3 sliderOffset  = firstQdrAxis * secondAxisSlider.GetRealSizeAlongDirection(camera, firstQdrAxis) * 0.5f +
                                    secondQdrAxis * firstAxisSlider.GetRealSizeAlongDirection(camera, secondQdrAxis) * 0.5f;

            if (LookAndFeel.PlaneType == GizmoPlane3DType.Quad)
            {
                SetQuadCornerPosition(QuadCorner.BottomLeft, sliderPlaneTransform.Position3D + sliderOffset);
            }
        }
        public void AlignToQuadrant(GizmoTransform transform, PlaneId planeId, PlaneQuadrantId quadrantId, bool alignXToFirstAxis)
        {
            Plane plane = transform.GetPlane3D(planeId, quadrantId);

            if (alignXToFirstAxis)
            {
                AxisDescriptor secondAxisDesc = PlaneIdHelper.GetSecondAxisDescriptor(planeId, quadrantId);
                Vector3        secondAxis     = Gizmo.Transform.GetAxis3D(secondAxisDesc);
                _transform.Rotation3D = Quaternion.LookRotation(plane.normal, secondAxis);
            }
            else
            {
                AxisDescriptor firstAxisDesc = PlaneIdHelper.GetFirstAxisDescriptor(planeId, quadrantId);
                Vector3        firstAxis     = Gizmo.Transform.GetAxis3D(firstAxisDesc);
                _transform.Rotation3D = Quaternion.LookRotation(plane.normal, firstAxis);
            }
        }
        public PlaneQuadrantId Get3DQuadrantFacingCamera(PlaneId planeId, Camera camera)
        {
            int axisIndex0 = PlaneIdHelper.PlaneIdToFirstAxisIndex(planeId);
            int axisIndex1 = PlaneIdHelper.PlaneIdToSecondAxisIndex(planeId);

            AxisSign sign0 = AxisSign.Positive;
            AxisSign sign1 = AxisSign.Positive;
            Vector3  axis0 = GetAxis3D(axisIndex0, sign0);
            Vector3  axis1 = GetAxis3D(axisIndex1, sign1);

            if (!camera.IsPointFacingCamera(Position3D, axis0))
            {
                sign0 = AxisSign.Negative;
            }
            if (!camera.IsPointFacingCamera(Position3D, axis1))
            {
                sign1 = AxisSign.Negative;
            }

            return(PlaneIdHelper.GetQuadrantFromAxesSigns(planeId, sign0, sign1));
        }
 private GizmoPlaneSlider3DSettings GetDblSliderSettings(PlaneId planeId)
 {
     return(_dblSliderSettings[(int)planeId]);
 }
 public void ConnectDblSliderSettings(GizmoPlaneSlider3D dblSlider, PlaneId planeId)
 {
     dblSlider.SharedSettings = GetDblSliderSettings(planeId);
 }
Example #10
0
        public static AxisSign GetSecondAxisSign(PlaneId planeId, PlaneQuadrantId planeQuadrant)
        {
            PlaneQuadrantInfo quadrantInfo = _planeInfo[(int)planeId].QuadrantInfo.FindAll(item => item.Quadrant == planeQuadrant)[0];

            return(quadrantInfo.SecondAxisSign);
        }
Example #11
0
 public static AxisDescriptor GetSecondAxisDescriptor(PlaneId planeId, PlaneQuadrantId planeQuadrant)
 {
     return(new AxisDescriptor(PlaneIdToSecondAxisIndex(planeId), GetSecondAxisSign(planeId, planeQuadrant)));
 }
 private GizmoPlaneSlider3DLookAndFeel GetDblSliderLookAndFeel(PlaneId planeId)
 {
     return(_dblSlidersLookAndFeel[(int)planeId]);
 }
 public void ConnectDblSliderLookAndFeel(GizmoPlaneSlider3D slider, PlaneId planeId)
 {
     slider.SharedLookAndFeel = GetDblSliderLookAndFeel(planeId);
 }
 public void SetDblSliderVisible(PlaneId planeId, bool isVisible)
 {
     _dblSliderVis[(int)planeId] = isVisible;
 }
 public bool IsDblSliderVisible(PlaneId planeId)
 {
     return(_dblSliderVis[(int)planeId]);
 }