void DrawLine() { if (node.lineInfo.pts.Count <= 2) { rData.l.st = false; } RepaintGetDirty(); if (LineEditMode()) { LineEditUpdate(); } else { LinePlaceUpdate(); } DrawPoints(); //Draw Cursor if (focusedWindow == this) { if (al_rectMain.Contains(mousePosOut + new Vector2(0, al_startY)) && drawRect.Contains(mousePos)) { if (LineEditMode()) { Cursor.visible = true; } else { GUI.DrawTexture(new Rect(mousePos.x - brushSize * 1f, mousePos.y - brushSize * 1f, brushSize * 2f, brushSize * 2f), SWEditorUI.Texture(SWUITex.cursor)); GUI.DrawTexture(new Rect(mousePos.x - 8, mousePos.y - 8, 16, 16), SWEditorUI.Texture(SWUITex.cursorCenter)); Cursor.visible = false; } } else { Cursor.visible = true; } } //Key Command if (Event.current.type == EventType.KeyDown) { if (Event.current.keyCode == KeyCode.Return) { if (node.lineInfo.pts.Count <= 1) { return; } node.data.dirty = true; SWTextureProcess.ProcessRemap_Line(node.textureEx, node.lineInfo, brushSizeUV); } if (Event.current.keyCode == KeyCode.C) { SWUndo.Record(node.lineInfo); node.lineInfo.pts.Clear(); } } }
protected override void DrawExtra() { base.DrawExtra(); DrawModuleTitle("Image"); Tooltip_Rec(SWTipsText.Right_ImageModule, new Rect(rightUpRect.x, GUILayoutUtility.GetLastRect().y, rightUpRect.width, GUILayoutUtility.GetLastRect().height)); EffectDataColor _data = data.effectDataColor; UI_Color("Color", ref _data.color, ref _data.hdr, delegate(SWBaseInfo arg1, bool arg2) { SWUndo.Record(info.effector); }, true, true); Tooltip_Rec(SWTipsText.Right_Color, new Rect(rightUpRect.x, GUILayoutUtility.GetLastRect().y, rightUpRect.width, GUILayoutUtility.GetLastRect().height)); GUILayout.BeginHorizontal(); var temp = (SWOutputOP)UI_PopEnum("Blend Op", _data.op, true); if (_data.op != temp) { SWUndo.Record(info.effector); _data.op = temp; } GUILayout.EndHorizontal(); Tooltip_Rec(SWTipsText.Right_BlendOp, new Rect(rightUpRect.x, GUILayoutUtility.GetLastRect().y, rightUpRect.width, GUILayoutUtility.GetLastRect().height)); Tooltip_Rec(SWTipsText.Right_BlendFactor, new Rect(rightUpRect.x, GUILayoutUtility.GetLastRect().yMax, rightUpRect.width, GUILayoutUtility.GetLastRect().height)); Factor_Pick(ref _data.param, true, "Blend Factor"); }
public static void ProcessMask_DrawLine(SWTexture2DEx tex, Vector2 _startUV, Vector2 _endUV, SWBrush brush) { SWUndo.RegisterCompleteObjectUndo(tex); SWTexThread_TexDrawLine t = new SWTexThread_TexDrawLine(tex, brush); t.Process(_startUV, _endUV); }
protected override void DrawNodeWindow(int id) { base.DrawNodeWindow(id); SelectTexture(); Rect rL = new Rect(gap, NodeHeight - 1.84f * (gap + buttonHeight), contentWidth * 0.5f, buttonHeight); Rect rR = new Rect(gap + contentWidth * 0.5f, NodeHeight - 1.84f * (gap + buttonHeight), contentWidth * 0.5f, 0.8f * buttonHeight); GUI.Label(rL, "Depth", SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight)); var dep = EditorGUI.IntField(rR, "", data.depth); if (dep != 0 && dep != data.depth) { SWUndo.Record(this); data.depth = dep; } if (texture != null) { if (GUI.Button(rectBotButton, "Edit", SWEditorUI.MainSkin.button)) { SWWindowEffectImage.ShowEditor(this); } } DrawNodeWindowEnd(); }
protected void InitRightUp() { ePopup_blendMode = new SWEnumPopup(new string[] { "Off", "Blend", "Add", "Mul" }, (int)(data.shaderBlend + 1), null, delegate(int index) { SWUndo.Record(this); data.shaderBlend = (SWShaderBlend)(index - 1); } ); ePopup_renderOrder = new SWEnumPopup(typeof(SWShaderQueue), (int)data.shaderQueue, true, null, delegate(int index) { SWUndo.Record(this); data.shaderQueue = (SWShaderQueue)index; } ); ePopup_renderType = new SWEnumPopup(typeof(SWRenderType), (int)data.rt, false, null, delegate(int index) { SWUndo.Record(this); data.rt = (SWRenderType)index; } ); }
public override void KeyCmd_HotkeyDown(KeyCode code) { base.KeyCmd_HotkeyDown(code); if (rData.mode == DrawRemapMode.dir) { if (code == KeyCode.LeftBracket) { SWUndo.Record(this); rData.d.pb += -1; } if (code == KeyCode.RightBracket) { SWUndo.Record(this); rData.d.pb += 1; } } else { if (code == KeyCode.LeftBracket) { SWUndo.Record(this); brushSize += -1; } if (code == KeyCode.RightBracket) { SWUndo.Record(this); brushSize += 1; } } }
void CodeParamOutput() { GUILayout.Label("Output:", SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight), GUILayout.Width(SWGlobalSettings.LabelWidth)); Tooltip_Rec(SWTipsText.Code_Output); GUILayout.BeginHorizontal(); var newName = EditorGUILayout.TextField(nodeCode.dataCode.output.name, GUILayout.Width(SWGlobalSettings.LabelWidth)); if (newName != nodeCode.dataCode.output.name) { SWUndo.Record(this); nodeCode.dataCode.output.name = newName; } var tempType = SelectTypeOutput(nodeCode.dataCode.output.type, 50); if (tempType != nodeCode.dataCode.output.type) { SWUndo.Record(this); nodeCode.dataCode.output.type = tempType; nodeCode.data.codeType = nodeCode.dataCode.output.type; } GUILayout.EndHorizontal(); }
void DrawSpBase() { var sp = (Sprite)EditorGUI.ObjectField(rectArea, sprite, typeof(Sprite), true); if (sprite != sp) { //step 1 :record for undo Object[] objs = { this, SWWindowMain.Instance }; SWUndo.Record(objs); if (sp != null) { sprite = sp; InitForSp(); Texture2D t2d = SWCommon.SpriteGetTexture2D(sprite); float x = sprite.rect.x / (float)t2d.width; float y = sprite.rect.y / (float)t2d.height; float width = sprite.rect.width / t2d.width; float height = sprite.rect.height / t2d.height; SWWindowMain.Instance.data.spriteRect = new Rect(x, y, width, height); } else { sprite = sp; SWWindowMain.Instance.data.spriteRect = new Rect(0, 0, 1, 1); } } }
public override void UI2Data(SWBaseInfo info, bool dorecord = true) { base.UI2Data(info, dorecord); if (dorecord) { SWUndo.Record(this); ArrowOff = info.mousePosRotated - info.imageRect.center; if (Event.current.shift) { if (Mathf.Abs(ArrowOff.x) > Mathf.Abs(ArrowOff.y)) { ArrowOff = new Vector2(ArrowOff.x, 0); } else { ArrowOff = new Vector2(0, ArrowOff.y); } } } info.effector.data.effectData.t_speed = new Vector2(ArrowOff.x * factor, -ArrowOff.y * factor); Matrix4x4 m = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -info.angle)), Vector3.one); info.effector.data.effectData.t_speed = m.MultiplyVector(info.effector.data.effectData.t_speed); }
public override void UI2Data(SWBaseInfo info, bool dorecord = true) { base.UI2Data(info, dorecord); if (dorecord) { SWUndo.Record(info); var vFrom = info.mousePosLast - info.imageRect.center; var vTo = info.mousePos - info.imageRect.center; var q = Quaternion.FromToRotation(vFrom, vTo); float v = q.eulerAngles.z; if (v > 180) { v -= 360; } info.angle += v; //Debug.Log (string.Format ("last pos:{0} pos:{1} ro:{2} angle:{3}", info.mousePosRotatedLast,info.mousePosRotated,v, info.angle)); if (OpTool_Move.Instance != null) { Matrix4x4 m = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -v)), Vector3.one); OpTool_Move.Instance.ArrowOff = m.MultiplyVector(OpTool_Move.Instance.ArrowOff); } } info.effector.data.effectData.r_angle = -info.angle * Mathf.Deg2Rad; }
public static void ProcessMask_Invert(SWTexture2DEx tex) { SWUndo.RegisterCompleteObjectUndo(tex); SWTexThread_Invert t = new SWTexThread_Invert(tex, null); t.Process(null); }
public static void ProcessTexture_Clean(SWTexture2DEx tex) { SWUndo.RegisterCompleteObjectUndo(tex); Color[] colors = new Color[tex.width * tex.height]; tex.SetPixels(colors); tex.Apply(); }
protected override void OnClick(SWSlot item, Vector2 mp) { base.OnClick(item, mp); SWUndo.Record(this); selection = slots.IndexOf(item); delegat(item, mp); }
public static void ProcessMask_Dropper(SWTexture2DEx tex, SWTexture2DEx texSource, Vector2 _uv, SWBrush _brush, float tolerance) { SWUndo.RegisterCompleteObjectUndo(tex); SWTexThread_ColorRange t = new SWTexThread_ColorRange(tex, texSource, _brush); t.Process(_uv, tolerance); }
public static void ProcessMask_Wand(SWTexture2DEx tex, SWTexture2DEx texSource, Vector2 _uv, SWBrush _brush, float tolerance) { SWUndo.RegisterCompleteObjectUndo(tex); texSource.filterMode = FilterMode.Point; SWTexThread_Wand t = new SWTexThread_Wand(tex, texSource, _brush); t.Process(_uv, tolerance); }
void DrawExtra_NormalMap() { if (!SWWindowMain.Instance.SupportNormalMap()) return; //Title and toggle GUILayout.Space (rightupSpacing); GUILayout.BeginHorizontal (); DrawModuleTitle ("Normal Map"); var tmp0 = EditorGUILayout.Toggle(data.nm); if (data.nm != tmp0) { SWUndo.Record (info.effector); data.nm = tmp0; } GUILayout.EndHorizontal (); Tooltip_Rec (SWTipsText.Right_SpriteLight_NormalMapModule,new Rect(rightUpRect.x,GUILayoutUtility.GetLastRect ().y,rightUpRect.width,GUILayoutUtility.GetLastRect ().height)); if (data.nm == false) return; //Normal Tex GUILayout.BeginHorizontal (); GUILayout.Label ("Normal Map",SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight), GUILayout.Width(SWGlobalSettings.LabelWidthLong)); var tex = (Texture2D)EditorGUILayout.ObjectField(info.effector.textureNormalMap,typeof(Texture2D), false,GUILayout.Width (SWGlobalSettings.FieldWidth)); if (tex != info.effector.textureNormalMap) { SWUndo.Record (info.effector); info.effector.textureNormalMap = tex; if (tex != null) { string adbPath = AssetDatabase.GetAssetPath (tex); var tImporter = AssetImporter.GetAtPath (adbPath) as TextureImporter; if (tImporter.textureType != TextureImporterType.NormalMap) { tImporter.textureType = TextureImporterType.NormalMap; AssetDatabase.ImportAsset( adbPath); AssetDatabase.Refresh (); } } } GUILayout.EndHorizontal (); Tooltip_Rec (SWTipsText.Right_SpriteLight_NormalMapTex,new Rect(rightUpRect.x,GUILayoutUtility.GetLastRect ().y,rightUpRect.width,GUILayoutUtility.GetLastRect ().height)); if (info.effector.UseNormalMap ()) { //Importance GUILayout.BeginHorizontal (); GUILayout.Label ("Importance", SWEditorUI.Style_Get (SWCustomStyle.eTxtSmallLight), GUILayout.Width (SWGlobalSettings.LabelWidthLong)); var nmi = EditorGUILayout.FloatField (data.nmi, GUILayout.Width (SWGlobalSettings.FieldWidth)); nmi = Mathf.Clamp01 (nmi); if (data.nmi != nmi) { SWUndo.Record (info.effector); data.nmi = nmi; } GUILayout.EndHorizontal (); Tooltip_Rec (SWTipsText.Right_SpriteLight_NormalMapImportance, new Rect (rightUpRect.x, GUILayoutUtility.GetLastRect ().y, rightUpRect.width, GUILayoutUtility.GetLastRect ().height)); //Factor Tooltip_Rec (SWTipsText.Right_SpriteLight_NormalMapFactor, new Rect (rightUpRect.x, GUILayoutUtility.GetLastRect ().yMax, rightUpRect.width, GUILayoutUtility.GetLastRect ().height)); Factor_Pick (ref data.nmf, true, "Factor"); } }
public override void Data2UI(SWBaseInfo info, bool dorecord = true) { base.Data2UI(info); if (dorecord) { SWUndo.Record(info); } info.angle = -info.effector.data.effectData.r_angle * Mathf.Rad2Deg; }
public override void Data2UI(SWBaseInfo info, bool dorecord = true) { base.Data2UI(info); if (dorecord) { SWUndo.Record(this); } offset = new Vector2(0, -info.effector.data.effectData.s_speed.x / factor); }
public override void Data2UI(SWBaseInfo info, bool dorecord = true) { base.Data2UI(info); if (dorecord) { SWUndo.Record(this); } factor = 1f / info.baseRect.size.x * Mathf.PI * 2; offset.x = -info.effector.data.effectData.r_speed / factor; }
protected void SelectTextureGray() { var tex = (Texture2D)EditorGUI.ObjectField(rectArea, textureGray, typeof(Texture2D), true); if (tex != textureGray) { SWUndo.Record(this); textureGray = tex; } }
public static void ProcessMask_DrawPoint(SWTexture2DEx tex, Vector2 _uv, SWBrush _brush) { colorStartBuffer = tex.GetPixels(); brushBuffer = new float[tex.width, tex.height]; SWUndo.RegisterCompleteObjectUndo(tex); SWTexThread_TexDrawPoint t = new SWTexThread_TexDrawPoint(tex, _brush); t.Process(_uv); }
public override void UI2Data(SWBaseInfo info, bool dorecord = true) { base.UI2Data(info, dorecord); if (dorecord) { SWUndo.Record(this); Vector2 Move = info.mousePosRotated - info.mousePosRotatedLast; offset += new Vector2(Move.x, 0); } info.effector.data.effectData.r_speed = -offset.x * factor; }
public override void UI2Data(SWBaseInfo info, bool dorecord = true) { base.UI2Data(info, dorecord); if (dorecord) { SWUndo.Record(info); Vector2 Move = info.mousePosRotated - info.mousePosRotatedLast; info.imageRect = info.imageRect.ScaleSizeBy(new Vector2(1f, 1 - Move.y / info.imageRect.height)); } info.effector.data.effectData.s_scale = new Vector2(info.imageRect.size.x / info.baseRect.size.x, info.imageRect.size.y / info.baseRect.size.y); }
public static void ProcessRemap_Line(SWTexture2DEx tex, RemapLineInfo info, float size) { SWUndo.RegisterCompleteObjectUndo(tex); if (info.stitch) { ProcessRemap_LineStitch(tex, info, size); } else { ProcessRemap_LineNormal(tex, info, size); } }
protected override void DrawNodeWindow(int id) { base.DrawNodeWindow(id); GUILayout.Space(7); GUILayout.BeginHorizontal(); GUILayout.Space(7); GUILayout.BeginVertical(); float labelWith = 42; EffectDataColor _data = data.effectDataColor; string name = _data.hdr ? "[HDR]" : "Color"; GUILayout.BeginHorizontal(); GUILayout.Label(name, SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight), GUILayout.Width(labelWith)); var rect = GUILayoutUtility.GetLastRect(); if (SWCommon.GetMouseDown(1)) { if (rect.Contains(Event.current.mousePosition)) { data.effectDataColor.hdr = !data.effectDataColor.hdr; } } _data.color = EditorGUILayout.ColorField(new GUIContent(""), _data.color, true, true, _data.hdr, null, GUILayout.Width(128 - labelWith)); GUILayout.EndHorizontal(); GUILayout.Space(2); GUILayout.BeginHorizontal(); GUILayout.Label("Op", SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight), GUILayout.Width(labelWith)); _data.op = (SWOutputOP)EditorGUILayout.EnumPopup(_data.op, GUILayout.Width(128 - labelWith)); GUILayout.EndHorizontal(); GUILayout.Space(2); SWWindowMain.Instance.Factor_Pick(ref _data.param, PickParamType.node, "Factor", null, 128); GUILayout.Space(2); GUILayout.BeginHorizontal(); GUILayout.Label("Depth", SWEditorUI.Style_Get(SWCustomStyle.eTxtSmallLight), GUILayout.Width(labelWith)); var dep = EditorGUILayout.IntField(data.depth, GUILayout.Width(128 - labelWith)); if (dep != 0 && dep != data.depth) { SWUndo.Record(this); data.depth = dep; } GUILayout.EndHorizontal(); GUILayout.EndVertical(); GUILayout.EndHorizontal(); DrawNodeWindowEnd(); }
void DrawLine() { //Add Point if (SWCommon.GetMouseDown(0) && al_rectMain.Contains(mousePosOut + new Vector2(0, al_startY))) { if (!al_rectMain.Contains(mousePosOut + new Vector2(0, al_startY))) { return; } if (!drawRect.Contains(mousePos)) { return; } SWUndo.Record(info); Vector2 m = Event.current.mousePosition; m = m - drawRect.position; m = SWTextureProcess.TexUV(size, size, (int)m.x, (int)m.y); RemapWayPoint pt = new RemapWayPoint(); pt.uv = m; pt.mousePos = mousePos; pt.matArrow = new Material(SWEditorUI.GetShader("RectTRS")); info.pts.Add(pt); } DrawPoints(); //Draw Cursor if (focusedWindow == this) { if (al_rectMain.Contains(mousePosOut + new Vector2(0, al_startY)) && drawRect.Contains(mousePos)) { GUI.DrawTexture(new Rect(mousePos.x - brushSize * 1f, mousePos.y - brushSize * 1f, brushSize * 2f, brushSize * 2f), SWEditorUI.Texture(SWUITex.cursor)); GUI.DrawTexture(new Rect(mousePos.x - 8, mousePos.y - 8, 16, 16), SWEditorUI.Texture(SWUITex.cursorCenter)); Cursor.visible = false; } else { Cursor.visible = true; } } //Key Command if (Event.current.type == EventType.keyDown) { if (Event.current.keyCode == KeyCode.Return) { node.data.dirty = true; SWTextureProcess.ProcessRemap_Line(node.textureEx, info, brushSizeUV); } } }
protected void TexShowChnEnum() { Rect rect = new Rect(al_leftWidth + 10, al_topHeight + 30, 40, 10); var c = (SWTexShowChannel)EditorGUI.EnumPopup(rect, "", texShowChannel); if (texShowChannel != c) { SWUndo.Record(this); texShowChannel = c; TexShowChnEnumSet(); } }
public override void Data2UI(SWBaseInfo info, bool dorecord = true) { base.Data2UI(info); if (dorecord) { SWUndo.Record(info); } var center = info.imageRect.center; info.imageRect.size = new Vector2(info.effector.data.effectData.s_scale.x * info.baseRect.size.x, info.effector.data.effectData.s_scale.y * info.baseRect.size.y); info.imageRect.center = center; }
public override void Data2UI(SWBaseInfo info, bool dorecord = true) { base.Data2UI(info); if (dorecord) { SWUndo.Record(this); } factor = 1f / info.baseRect.size.x; ArrowOff = new Vector2(info.effector.data.effectData.t_speed.x / factor, -info.effector.data.effectData.t_speed.y / factor); Matrix4x4 m2 = Matrix4x4.TRS(Vector3.zero, Quaternion.Euler(new Vector3(0, 0, -info.angle)), Vector3.one); ArrowOff = m2.MultiplyVector(ArrowOff); }
public static void ProcessRemap_Line(SWTexture2DEx tex, RemapLineInfo info, float size) { SWUndo.RegisterCompleteObjectUndo(tex); //if (info.stitch) if (SWWindowDrawRemap.Instance.rData.l.st) { ProcessRemap_LineStitch(tex, info, size); } else { ProcessRemap_LineNormal(tex, info, size); } }