// Token: 0x060000B2 RID: 178 RVA: 0x0000A11C File Offset: 0x0000831C private bool guiSlider(float margin, TextureModifier.DirtyValue dirtyValue) { float num = dirtyValue.Value; GUILayout.BeginHorizontal(new GUILayoutOption[0]); try { GUILayout.Label(dirtyValue.Name, TextureModifier.uiParams.lStyle, new GUILayoutOption[] { GUILayout.Width(64f) }); GUILayout.Label(num.ToString("F0"), TextureModifier.uiParams.lStyle, new GUILayoutOption[] { GUILayout.Width(32f) }); GUILayout.BeginVertical(new GUILayoutOption[0]); GUILayout.Space(margin * 5f); num = GUILayout.HorizontalSlider(num, dirtyValue.Min, dirtyValue.Max, new GUILayoutOption[0]); GUILayout.EndVertical(); GUILayout.Space(margin * 3f); } finally { GUILayout.EndHorizontal(); } if (NumberUtil.Equals(dirtyValue.Value, num, 0.001f)) { return(false); } dirtyValue.Value = num; return(true); }
private bool guiSlider(float margin, DirtyValue dirtyValue) { var val = dirtyValue.Value; GUILayout.BeginHorizontal(); try { GUILayout.Label(dirtyValue.Name, uiParams.lStyle, GUILayout.Width(64)); GUILayout.Label(val.ToString("F0"), uiParams.lStyle, GUILayout.Width(32)); GUILayout.BeginVertical(); GUILayout.Space(margin * 5f); val = GUILayout.HorizontalSlider(val, dirtyValue.Min, dirtyValue.Max); GUILayout.EndVertical(); GUILayout.Space(margin * 3); } finally { GUILayout.EndHorizontal(); } if (NumberUtil.Equals(dirtyValue.Value, val)) { return(false); } dirtyValue.Value = val; return(true); }
// Token: 0x0600032D RID: 813 RVA: 0x0001A014 File Offset: 0x00018214 private bool DrawSlider(ref float sliderVal, float min, float max) { float val = sliderVal; bool flag = this.DrawSlider(delegate() { float num = GUILayout.HorizontalSlider(val, min, max, new GUILayoutOption[] { GUILayout.ExpandWidth(true) }); if (!NumberUtil.Equals(num, val, this.epsilon)) { if (val >= min && max >= val) { val = num; return(true); } if (min < num && num < max) { val = num; return(true); } } return(false); }); if (flag) { sliderVal = val; } return(flag); }
private bool DrawSlider(ref float sliderVal, float min, float max) { var val = sliderVal; var changed = DrawSlider(() => { var slidVal = GUILayout.HorizontalSlider(val, min, max, GUILayout.ExpandWidth(true)); if (!NumberUtil.Equals(slidVal, val, epsilon)) // スライダー変更時のみ { if (val < min || max < val) { // スライダーの範囲外の場合:スライダーを移動したケースを検知 if (min < slidVal && slidVal < max) { val = slidVal; return(true); } } else { val = slidVal; return(true); } } return(false); }); if (changed) { sliderVal = val; } return(changed); }
// Token: 0x06000307 RID: 775 RVA: 0x00018908 File Offset: 0x00016B08 public void Update(float value) { if (!NumberUtil.Equals(this.val, value, 0.001f)) { base.Set(value); } }
// RGB -> HSL 変換 public static Vector4 RGBToHsl(Color c) { c.r = Mathf.Clamp01(c.r); c.g = Mathf.Clamp01(c.g); c.b = Mathf.Clamp01(c.b); float max = Mathf.Max(c.r, Mathf.Max(c.g, c.b)); float min = Mathf.Min(c.r, Mathf.Min(c.g, c.b)); float h = 0f; float s = 0f; float l = (max + min) / 2f; float d = max - min; // FIXME float compare if (!NumberUtil.Equals(d, 0f)) { s = (l > 0.5f) ? (d / (2f - max - min)) : (d / (max + min)); if (NumberUtil.Equals(max, c.r)) { h = (c.g - c.b) / d + (c.g < c.b ? 6f : 0f); } else if (NumberUtil.Equals(max, c.g)) { h = (c.b - c.r) / d + 2f; } else { h = (c.r - c.g) / d + 4f; } h /= 6f; } return(new Vector4(h, s, l, c.a)); }
// Token: 0x0600030E RID: 782 RVA: 0x00018C10 File Offset: 0x00016E10 internal void ShowCheckBox(string label, EditValue edit, Action <float> func) { GUILayout.BeginHorizontal(new GUILayoutOption[0]); try { GUILayout.Label(label, this.uiParams.lStyle, new GUILayoutOption[] { this.optItemHeight }); GUILayout.Space((float)this.uiParams.marginL); float num = edit.val; GUIContent content = NumberUtil.Equals(num, 0f, 0.001f) ? ResourceHolder.Instance.Checkoff : ResourceHolder.Instance.Checkon; if (GUILayout.Button(content, this.bStyleCenter, new GUILayoutOption[] { GUILayout.Width(50f) })) { num = 1f - num; edit.Set(num); func(num); } } finally { GUILayout.EndHorizontal(); } }
private bool drawSlider(ref float sliderVal, float min, float max) { bool changed = false; GUILayout.BeginVertical(); try { GUILayout.Space(sliderMargin); GUILayoutOption opt = GUILayout.ExpandWidth(true); //GUILayout.Width(uiParams.colorRect.width * 0.65f); var slidVal = GUILayout.HorizontalSlider(sliderVal, min, max, opt); if (!NumberUtil.Equals(slidVal, sliderVal, EPSILON)) // スライダー変更時のみ { if (sliderVal > max || sliderVal < min) { // スライダーの範囲外の場合:スライダーを移動したケースを検知 if (slidVal < max && slidVal > min) { sliderVal = slidVal; changed = true; } } else { sliderVal = slidVal; changed = true; } } } finally { GUILayout.EndVertical(); } return(changed); }
public void Update(float value) { if (!NumberUtil.Equals(val, value)) { Set(value); } }
// HSL -> RGB 変換 public static Color HslToRGB(Vector4 hsl) { Color c; c.a = hsl.w; float h = hsl.x; float s = hsl.y; float l = hsl.z; if (NumberUtil.Equals(s, 0f)) { c.r = l; c.g = l; c.b = l; } else { float y = (l < 0.5f) ? (l * (1f + s)) : ((l + s) - l * s); float x = 2f * l - y; c.r = Hue(x, y, h + 1f / 3f); c.g = Hue(x, y, h); c.b = Hue(x, y, h - 1f / 3f); } return(c); }
public void TestTranslate() { identMatrix.Translate(5, 7); Point point = Point.Create(10, 20); Point tPoint = identMatrix.TransformPoint(point); Assert.IsTrue(NumberUtil.Equals(15, tPoint.X), "wrong X value " + tPoint.X); Assert.IsTrue(NumberUtil.Equals(27, tPoint.Y), "wrong Y value " + tPoint.Y); }
public void TestScale() { identMatrix.Scale(2.0f, 0.5f); Point point = Point.Create(10, 20); Point sPoint = identMatrix.TransformPoint(point); Assert.IsTrue(NumberUtil.Equals(20.0f, sPoint.X), "wrong X value " + sPoint.X); Assert.IsTrue(NumberUtil.Equals(10.0f, sPoint.Y), "wrong Y value " + sPoint.Y); }
// Token: 0x06000372 RID: 882 RVA: 0x0001EFC0 File Offset: 0x0001D1C0 private bool DrawTextField(float val, ref float editedVal) { string text = val.ToString("F3"); string text2 = GUILayout.TextField(text, ACCTexturesView.uiParams.textStyleSC, new GUILayoutOption[] { ACCTexturesView.optInputWidth }); return(!(text == text2) && float.TryParse(text2, out editedVal) && !NumberUtil.Equals(val, editedVal, 0.001f)); }
public void TestConcatenatedTransformations() { identMatrix.Rotate((float)Math.PI / 2.0f); identMatrix.Scale(0.5f, 0.5f); identMatrix.Translate(0.0f, 5.0f); Point ctPoint = identMatrix.TransformPoint(10, 0); Assert.IsTrue(NumberUtil.Equals(0.0f, ctPoint.X), "wrong X value " + ctPoint.X); Assert.IsTrue(NumberUtil.Equals(10.0f, ctPoint.Y), "wrong Y value " + ctPoint.Y); }
public void FilterTexture(Texture2D dstTex, Texture2D srcTex, FilterParam filterParam) { float outputBase = filterParam.OutputMin * 0.01f; float outputScale = (filterParam.OutputMax - filterParam.OutputMin) * 0.01f; float inputDelta = filterParam.InputMax - filterParam.InputMin; if (inputDelta < 0.001f) { inputDelta = 0.01f; // ゼロ除算を避けるため } float mid = filterParam.InputMid; if (mid < 0.001f) { mid = 0.01f; // NegativeInfinityを避けるため } float inputExp = Mathf.Log(mid * 0.01f) / Mathf.Log(0.5f); float inputBase = (-filterParam.InputMin / (inputDelta)); float inputScale = 1f / (inputDelta * 0.01f); float hue = filterParam.Hue / 360f; float saturation = filterParam.Saturation / 100f; float lightness = filterParam.Lightness / 100f; Filter(dstTex, srcTex, (color) => { Color c = color; c.r = Mathf.Clamp01(c.r * inputScale + inputBase); c.g = Mathf.Clamp01(c.g * inputScale + inputBase); c.b = Mathf.Clamp01(c.b * inputScale + inputBase); if (!NumberUtil.Equals(inputExp, 1f)) { c.r = Mathf.Pow(c.r, inputExp); c.g = Mathf.Pow(c.g, inputExp); c.b = Mathf.Pow(c.b, inputExp); } Vector4 hsl = ColorUtil.RGBToHsl(c); hsl.x = (hsl.x + hue) % 1f; hsl.y *= saturation; hsl.z *= lightness; c = ColorUtil.HslToRGB(hsl); c.r = c.r * outputScale + outputBase; c.g = c.g * outputScale + outputBase; c.b = c.b * outputScale + outputBase; return(c); }); }
/// <summary> /// Determines whether the specified Point's X and Y values is equal to the current Point with /// with a small epsilon error margin. /// </summary> public bool Equals(Point other) { if (other == this) { return(true); } if (other == null) { return(false); } return(NumberUtil.Equals(X, other.X) && NumberUtil.Equals(Y, other.Y)); }
/// <summary> /// Determines whether this instance is equal the specified other with a small Epsilon error margin. /// </summary> public bool IsEqual(Rectangle other) { if (other == this) { return(true); } if (other == null) { return(false); } return(NumberUtil.Equals(X, other.X) && NumberUtil.Equals(Y, other.Y) && NumberUtil.Equals(Width, other.Width) && NumberUtil.Equals(Height, other.Height)); }
private bool DrawTextField(float val, ref float editedVal) { var txt = val.ToString("F3"); var editedTxt = GUILayout.TextField(txt, uiParams.textStyleSC, optInputWidth); if (txt == editedTxt) { return(false); // 直接書き換えられたケース } if (!float.TryParse(editedTxt, out editedVal)) { return(false); } return(!NumberUtil.Equals(val, editedVal)); }
public void TestRotate() { identMatrix.Rotate((float)Math.PI / 2.0f); Point point = Point.Create(10, 0); Point rPoint = identMatrix.TransformPoint(point); Assert.IsTrue(NumberUtil.Equals(0, rPoint.X), "wrong X value " + rPoint.X); Assert.IsTrue(NumberUtil.Equals(10, rPoint.Y), "wrong Y value " + rPoint.Y); identMatrix.Identity(); identMatrix.Rotate((float)Math.PI); point.Y = 20; rPoint = identMatrix.TransformPoint(point); Assert.IsTrue(NumberUtil.Equals(-10, rPoint.X), "wrong X value " + rPoint.X); Assert.IsTrue(NumberUtil.Equals(-20, rPoint.Y), "wrong Y value " + rPoint.Y); }
// public void ReflectTo(Material m) { // m.SetFloat("_SetManualRenderQueue", renderQueue.val); // m.renderQueue = (int)renderQueue.val; // // if (type1.hasColor) { // m.SetColor(PROP_COLOR, color.val.Value); // } // if (type1.isLighted) { // m.SetColor(PROP_SHADOWC, shadowColor.val.Value); // m.SetFloat("_Shininess", shininess.val); // } // if (type1.isOutlined) { // m.SetColor(PROP_OUTLINEC, outlineColor.val.Value); // m.SetFloat("_OutlineWidth", outlineWidth.val); // } // if (type1.isToony) { // m.SetColor(PROP_RIMC, rimColor.val.Value); // m.SetFloat("_RimPower", rimPower.val); // m.SetFloat("_RimShift", rimShift.val); // } // if (type1.isHair) { // m.SetFloat("_HiRate", hiRate.val); // m.SetFloat("_HiPow", hiPow.val); // } // if (type1.isHair) { // m.SetFloat("_HiRate", hiRate.val); // m.SetFloat("_HiPow", hiPow.val); // } // if (type1.hasFloat1) { // m.SetFloat("_FloatValue1", floatVal1.val); // } // if (type1.hasFloat2) { // m.SetFloat("_FloatValue2", floatVal2.val); // } // if (type1.hasFloat3) { // m.SetFloat("_FloatValue3", floatVal3.val); // } // if (type1.hasCutoff) { // m.SetFloat("_Cutoff", cutoff.val); // } // } public bool hasChanged(ACCMaterial mate) { // 同一シェーダを想定 for (int i = 0; i < editColors.Length; i++) { if (this.editColors[i].val != mate.editColors[i].val) { return(true); } } for (int i = 0; i < editVals.Length; i++) { if (!NumberUtil.Equals(this.editVals[i].val, mate.editVals[i].val)) { return(true); } } return(false); }
public void TestBounds() { Quad quad = new Quad(10, 20); quad.X = -10; quad.Y = 10; quad.Rotation = NumberUtil.PIHALF; Rectangle bounds = quad.Bounds; Assert.IsTrue(NumberUtil.Equals(-30, bounds.X), "wrong bounds.x: " + bounds.X); Assert.IsTrue(NumberUtil.Equals(10, bounds.Y), "wrong bounds.y: " + bounds.Y); Assert.IsTrue(NumberUtil.Equals(20, bounds.Width), "wrong bounds.width: " + bounds.Width); Assert.IsTrue(NumberUtil.Equals(10, bounds.Height), "wrong bounds.height: " + bounds.Height); bounds = quad.BoundsInSpace(quad); Assert.IsTrue(NumberUtil.Equals(0, bounds.X), "wrong inner bounds.x: " + bounds.X); Assert.IsTrue(NumberUtil.Equals(0, bounds.Y), "wrong inner bounds.y: " + bounds.Y); Assert.IsTrue(NumberUtil.Equals(10, bounds.Width), "wrong inner bounds.width: " + bounds.Width); Assert.IsTrue(NumberUtil.Equals(20, bounds.Height), "wrong innter bounds.height: " + bounds.Height); }
public bool IsEqual(Matrix other) { if (other == this) { return(true); } else if (other == null) { return(false); } else { return(NumberUtil.Equals(A, other.A) && NumberUtil.Equals(B, other.B) && NumberUtil.Equals(C, other.C) && NumberUtil.Equals(D, other.D) && NumberUtil.Equals(Tx, other.Tx) && NumberUtil.Equals(Ty, other.Ty)); } }
internal void ShowCheckBox(string label, EditValue edit, Action <float> func) { GUILayout.BeginHorizontal(); try { GUILayout.Label(label, uiParams.lStyle, optItemHeight); GUILayout.Space(uiParams.marginL); var val = edit.val; var cont = NumberUtil.Equals(val, 0f) ? ResourceHolder.Instance.Checkoff : ResourceHolder.Instance.Checkon; if (!GUILayout.Button(cont, bStyleCenter, GUILayout.Width(50))) { return; } val = 1 - val; edit.Set(val); func(val); } finally { GUILayout.EndHorizontal(); } }
// Token: 0x06000139 RID: 313 RVA: 0x0000C670 File Offset: 0x0000A870 public void Init(ACCMaterial edited) { this.editedMat = edited; if (!this.onlyModel && !string.IsNullOrEmpty(this.filename)) { LogUtil.Debug(new object[] { "load material file", this.filename }); this.srcMat = ACCMaterialEx.Load(this.filename); this.shaderChanged = (this.editedMat.type != this.srcMat.type); } if (edited.type.isTrans) { if (Math.Abs(edited.renderQueue.val - 2000f) < 0.01f) { this.needPmat = false; } else { this.needPmat = true; string matName = (this.srcMat != null) ? this.srcMat.name2 : edited.name; float renderQueue = MaterialUtil.GetRenderQueue(matName); if (renderQueue < 0f) { this.needPmatChange = true; } LogUtil.DebugF("render queue: src={0}, edited={1}", new object[] { renderQueue, edited.renderQueue }); this.needPmatChange |= !NumberUtil.Equals(edited.renderQueue.val, renderQueue, 0.01f); this.pmatExport = this.needPmatChange; } } if (!this.shaderChanged && this.srcMat != null) { this.hasParamChanged = this.editedMat.HasChanged(this.srcMat); } this.editname = this.editedMat.material.name; Maid currentMaid = MaidHolder.Instance.CurrentMaid; foreach (ShaderPropTex shaderPropTex in this.editedMat.type.texProps) { LogUtil.Debug(new object[] { "propName:", shaderPropTex.key }); Texture texture = this.editedMat.material.GetTexture(shaderPropTex.propId); TextureModifier.FilterParam filter = ACCTexturesView.GetFilter(currentMaid, this.slotName, this.editedMat.material, shaderPropTex.propId); bool flag = filter != null && !filter.HasNotChanged(); bool flag2 = false; ACCTextureEx acctextureEx; if (texture != null && this.srcMat != null && this.srcMat.texDic.TryGetValue(shaderPropTex.key, out acctextureEx)) { flag2 = (acctextureEx.editname != texture.name); } TargetTexture value = new TargetTexture(flag, flag2, texture) { filter = filter }; this.texDic[shaderPropTex.key] = value; this.hasTexColorChanged = (this.hasTexColorChanged || flag); this.hasTexFileChanged = (this.hasTexFileChanged || flag2); } LogUtil.Debug(new object[] { "target material initialized" }); }
public void Init(ACCMaterial edited) { editedMat = edited; // ファイルからマテリアル情報をロード if (onlyModel) { // modelファイルからマテリアルのロード } else if (!string.IsNullOrEmpty(filename)) { LogUtil.Debug("load material file", filename); srcMat = ACCMaterialEx.Load(filename); shaderChanged = (editedMat.type != srcMat.type); } // pmat チェック // 透過型のみを対象とし、 // 1. マテリアル名に対応するpmatが存在しない場合 // 2. renderQueueが変更されている場合 if (edited.type.isTrans) { // renderqueueがデフォルト値であれば変更不要 if (Math.Abs(edited.renderQueue.val - 2000) < 0.01f) { needPmat = false; } else { needPmat = true; var matName = (srcMat != null)? srcMat.name2 : edited.name; var srcRq = MaterialUtil.GetRenderQueue(matName); // 既存のマテリアル名に対応するpmatが存在しない => 変更必要 if (srcRq < 0) { needPmatChange = true; } LogUtil.DebugF("render queue: src={0}, edited={1}", srcRq, edited.renderQueue); needPmatChange |= !NumberUtil.Equals(edited.renderQueue.val, srcRq, 0.01f); pmatExport = needPmatChange; } } if (!shaderChanged) { // TODO modelロードでsrcMatを作成した場合は条件削除可能 if (srcMat != null) { hasParamChanged = editedMat.HasChanged(srcMat); } } editname = editedMat.material.name; var maid = MaidHolder.Instance.CurrentMaid; // テクスチャの変更フラグチェック foreach (var texProp in editedMat.type.texProps) { //foreach (string propName in editedMat.type1.texPropNames) { LogUtil.Debug("propName:", texProp.key); var tex = editedMat.material.GetTexture(texProp.propId); var filter = ACCTexturesView.GetFilter(maid, slotName, editedMat.material, texProp.propId); var colorChanged = (filter != null) && !filter.HasNotChanged(); var fileChanged = false; if (tex != null && srcMat != null) { ACCTextureEx baseTex; if (srcMat.texDic.TryGetValue(texProp.key, out baseTex)) { fileChanged = (baseTex.editname != tex.name); } } var trgtTex = new TargetTexture(colorChanged, fileChanged, tex) { filter = filter }; texDic[texProp.key] = trgtTex; hasTexColorChanged |= colorChanged; hasTexFileChanged |= fileChanged; } LogUtil.Debug("target material initialized"); }
private bool DrawSliders(string label, ref Vector2 val, float min, float max, Func <Vector2> GetDefault, bool useLog = false) { var changed = false; var sliderMax = (useLog) ? Mathf.Log10(max) : max; var sliderMin = (useLog) ? Mathf.Log10(min) : min; GUILayout.BeginHorizontal(); try { GUILayout.Label(label, uiParams.lStyleS, optLabelWidth); var editedVal = val.x; if (DrawTextField(val.x, ref editedVal)) { if (editedVal > max) { editedVal = max; } else if (editedVal < min) { editedVal = min; } val.x = editedVal; changed = true; } GUILayout.BeginVertical(); GUILayout.Space(sliderMargin); var srcVal = useLog ? Mathf.Log10(val.x) : val.x; var slidVal = GUILayout.HorizontalSlider(srcVal, sliderMin, sliderMax, GUILayout.ExpandWidth(true)); GUILayout.EndVertical(); if (!NumberUtil.Equals(srcVal, slidVal)) { val.x = useLog ? Mathf.Pow(10f, slidVal) : slidVal; changed = true; } } finally { GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); try { var editedVal = val.y; if (GUILayout.Button("reset", uiParams.bStyleSC, optLabelWidth)) { val = GetDefault(); changed = true; } if (DrawTextField(val.y, ref editedVal)) { if (editedVal > max) { editedVal = max; } else if (editedVal < min) { editedVal = min; } val.y = editedVal; changed = true; } GUILayout.BeginVertical(); GUILayout.Space(sliderMargin); var srcVal = useLog ? Mathf.Log10(val.y) : val.y; var slidVal = GUILayout.HorizontalSlider(srcVal, sliderMin, sliderMax, GUILayout.ExpandWidth(true)); GUILayout.EndVertical(); if (!NumberUtil.Equals(srcVal, slidVal)) { val.y = useLog ? Mathf.Pow(10f, slidVal) : slidVal; changed = true; } } finally { GUILayout.EndHorizontal(); } return(changed); }
bool CheckMatrixValues(Matrix matrix, float a, float b, float c, float d, float tx, float ty) { return(NumberUtil.Equals(a, matrix.A) && NumberUtil.Equals(b, matrix.B) && NumberUtil.Equals(b, matrix.B) && NumberUtil.Equals(c, matrix.C) && NumberUtil.Equals(tx, matrix.Tx) && NumberUtil.Equals(ty, matrix.Ty)); }
// Token: 0x060000DB RID: 219 RVA: 0x0000AD70 File Offset: 0x00008F70 public bool HasChanged(ACCMaterial mate) { return(this.editColors.Where((EditColor t, int i) => t.val != mate.editColors[i].val).Any <EditColor>() || this.editVals.Where((EditValue t, int i) => !NumberUtil.Equals(t.val, mate.editVals[i].val, 0.001f)).Any <EditValue>()); }
// Token: 0x06000373 RID: 883 RVA: 0x0001F024 File Offset: 0x0001D224 private bool DrawSliders(string label, ref Vector2 val, float min, float max, Func <Vector2> GetDefault, bool useLog = false) { bool result = false; float rightValue = useLog ? Mathf.Log10(max) : max; float leftValue = useLog ? Mathf.Log10(min) : min; GUILayout.BeginHorizontal(new GUILayoutOption[0]); try { GUILayout.Label(label, ACCTexturesView.uiParams.lStyleS, new GUILayoutOption[] { ACCTexturesView.optLabelWidth }); float num = val.x; if (this.DrawTextField(val.x, ref num)) { if (num > max) { num = max; } else if (num < min) { num = min; } val.x = num; result = true; } GUILayout.BeginVertical(new GUILayoutOption[0]); GUILayout.Space(ACCTexturesView.sliderMargin); float num2 = useLog ? Mathf.Log10(val.x) : val.x; float num3 = GUILayout.HorizontalSlider(num2, leftValue, rightValue, new GUILayoutOption[] { GUILayout.ExpandWidth(true) }); GUILayout.EndVertical(); if (!NumberUtil.Equals(num2, num3, 0.001f)) { val.x = (useLog ? Mathf.Pow(10f, num3) : num3); result = true; } } finally { GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(new GUILayoutOption[0]); try { float num4 = val.y; if (GUILayout.Button("reset", ACCTexturesView.uiParams.bStyleSC, new GUILayoutOption[] { ACCTexturesView.optLabelWidth })) { val = GetDefault(); result = true; } if (this.DrawTextField(val.y, ref num4)) { if (num4 > max) { num4 = max; } else if (num4 < min) { num4 = min; } val.y = num4; result = true; } GUILayout.BeginVertical(new GUILayoutOption[0]); GUILayout.Space(ACCTexturesView.sliderMargin); float num5 = useLog ? Mathf.Log10(val.y) : val.y; float num6 = GUILayout.HorizontalSlider(num5, leftValue, rightValue, new GUILayoutOption[] { GUILayout.ExpandWidth(true) }); GUILayout.EndVertical(); if (!NumberUtil.Equals(num5, num6, 0.001f)) { val.y = (useLog ? Mathf.Pow(10f, num6) : num6); result = true; } } finally { GUILayout.EndHorizontal(); } return(result); }
public bool HasChanged(ACCMaterial mate) { // 同一シェーダを想定 return(editColors.Where((t, i) => t.val != mate.editColors[i].val).Any() || editVals.Where((t, i) => !NumberUtil.Equals(t.val, mate.editVals[i].val)).Any()); }