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); }
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)); }
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); }
public static AxisSign GetSecondAxisSign(PlaneId planeId, PlaneQuadrantId planeQuadrant) { PlaneQuadrantInfo quadrantInfo = _planeInfo[(int)planeId].QuadrantInfo.FindAll(item => item.Quadrant == planeQuadrant)[0]; return(quadrantInfo.SecondAxisSign); }
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]); }