private void UpdateVisuals() { if (PreviousSliderAxis != sliderAxis) { //UpdateSliderHandleOrientation(); UpdateSliderOrientation(); PreviousSliderAxis = sliderAxis; } }
////////////////////////////////////////////////////////// public PhysXSliderJoint(Body body1, Body body2) : base(body1, body2, new SliderAxis()) { axis = (SliderAxis)Axis; axis.joint = this; }
// public ODESliderJoint( Body body1, Body body2 ) : base( body1, body2, new SliderAxis() ) { axis = (SliderAxis)Axis; axis.joint = this; }
private void OnGUI() { PrepareStyles(); UpdatePickerCoordinates(); EditorGUI.BeginChangeCheck(); EditorGUI.BeginChangeCheck(); colourModel = (Colour.Model)EditorGUILayout.Popup("Colour Space", (int)colourModel, System.Enum.GetNames(typeof(Colour.Model))); sliderAxis = (SliderAxis)EditorGUILayout.Popup("Slider Axis", (int)sliderAxis, System.Enum.GetNames(typeof(SliderAxis))); workingSpace = (Colour.RGBSpace)EditorGUILayout.Popup("Working Colour Space", (int)workingSpace, System.Enum.GetNames(typeof(Colour.RGBSpace))); if (EditorGUI.EndChangeCheck()) { Double3 newPickFrac = GetPickerCoords(currentColourXYZ, colourModel, workingSpace); Double3 pick = newPickFrac * maxValue; pickerCoords = new Int4(Mathf.RoundToInt((float)pick.x), Mathf.RoundToInt((float)pick.y), Mathf.RoundToInt((float)pick.z), pickerCoords.w); } limitingSpace = (Colour.RGBSpace)EditorGUILayout.Popup("Limiting Colour Space", (int)limitingSpace, System.Enum.GetNames(typeof(Colour.RGBSpace))); if (EditorGUI.EndChangeCheck()) { pickerOutOfDate = sliderOutOfDate = true; } EditorGUILayout.Space(); EditorGUILayout.ColorField(currentColourRGB); minSize = maxSize = new Vector2(textureSize + 60, textureSize + 280); UpdateTextures(); GUI.DrawTexture(pickerRect, pickerTexture, ScaleMode.StretchToFill); GUI.DrawTexture(sliderRect, sliderTexture, ScaleMode.StretchToFill); for (int i = 0; i < altSliders; ++i) GUI.DrawTexture(sliderGroupRect[i], sliderGroupTexture[i], ScaleMode.StretchToFill); int circleSize = 8; int halfCircleSize = 4; if (Event.current.type == EventType.Repaint) { pickerBox.Draw(pickerRect, GUIContent.none, 0); pickerBox.Draw(sliderRect, GUIContent.none, 0); pickerCircle.Draw(new Rect(pickerCoords.x + 10 - halfCircleSize, ((textureSize - 1) - (pickerCoords.y)) + 120 - halfCircleSize, circleSize, circleSize), GUIContent.none, 0); sliderVertArrow.Draw(new Rect(textureSize + 18, (textureSize - 1) - (pickerCoords.z) + 117, 34, 8), GUIContent.none, 0); for (int i = 0; i < altSliders; ++i) { sliderHorizArrow.Draw(new Rect(pickerCoords[i] + 7, sliderGroupRect[i].yMin - 4, 16, 28), GUIContent.none, 0); pickerBox.Draw(sliderGroupRect[i], GUIContent.none, 0); } } Double4 pickerPosFraction = pickerCoords / maxValue; if (pickerOutOfDate == true || sliderOutOfDate == true) { Double4 arrangement = GetPickerArrangement(sliderAxis, pickerPosFraction); Colour pickedColour = GetWorkingSpaceColour(colourModel, workingSpace, arrangement); if (Colour.IsInsideGamut(pickedColour, limitingSpace)) { currentColourXYZ = pickedColour; currentColourRGB = (Color)Colour.To_RGB(pickedColour, workingSpace); } else { currentColourXYZ = new Colour(Double3.zero); currentColourRGB = Color.black; } } currentColourRGB.a = (float)pickerPosFraction.w; Repaint(); pickerOutOfDate = sliderOutOfDate = false; }
private Double4 GetPickerArrangement(SliderAxis currentAxis, Double4 v) { return GetPickerArrangement(currentAxis, v.x, v.y, v.z, v.w); }
private Double4 GetPickerArrangement(SliderAxis currentAxis, double x, double y, double z, double w) { Double4 arrangement = new Double4(); arrangement.w = w; switch (currentAxis) { case SliderAxis.X: arrangement.x = z; arrangement.y = x; arrangement.z = y; break; case SliderAxis.Y: arrangement.x = x; arrangement.y = z; arrangement.z = y; break; case SliderAxis.Z: arrangement.x = x; arrangement.y = y; arrangement.z = z; break; } return arrangement; }