From 5e6a6f3319f0c4c687fe71952ac9ecc17792b83a Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 10 Jun 2019 20:37:18 -0400 Subject: [PATCH] Fix normal for mesh --- GroupEditor.java | 260 ++++++++++++++++++++++++++++++--------------------- 1 files changed, 152 insertions(+), 108 deletions(-) diff --git a/GroupEditor.java b/GroupEditor.java index a7eda89..3fdc5c4 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -74,7 +74,7 @@ this.copy = this.group = copy; //selectees = this.group.selectees; - SetupMenu2(objEditor); + SetupMenu2(this); //objEditor); SetupUI2(objEditor); objEditor.SetupUI(true); SetupViews(objEditor); @@ -148,27 +148,17 @@ //JTextField nameField; - void SetupMenu2(ObjEditor oe) + void SetupMenu2(GroupEditor oe) { - if (Globals.ADVANCED) - { - oe.cameraMenu.add(lookAtItem = new MenuItem("Set Interest")); - //cameraMenu.add(lookFromItem = new MenuItem("Look From Selection")); - //cameraMenu.add(switchItem = new MenuItem("Reverse View")); - editLeafItem = oe.cameraMenu.add(new MenuItem("Edit Leaf")); - oe.cameraMenu.add("-"); - openWindowItem = oe.cameraMenu.add(new MenuItem("Edit copy...")); - openWindowItem.addActionListener(this); - editLeafItem.addActionListener(this); - lookAtItem.addActionListener(this); - //lookFromItem.addActinoListener(this); - //switchItem.addActionListener(this); - } - Menu menu; oe.menuBar.add(menu = new Menu("Edit")); //editItem = menu.add(new MenuItem("Edit")); //editItem.addActionListener(this); + undoItem = menu.add(new MenuItem("Undo")); + undoItem.addActionListener(this); + redoItem = menu.add(new MenuItem("Redo")); + redoItem.addActionListener(this); + menu.add("-"); duplicateItem = menu.add(new MenuItem("Duplicate")); duplicateItem.addActionListener(this); cloneItem = menu.add(new MenuItem("Clone")); @@ -206,14 +196,97 @@ clearAllItem = menu.add(new MenuItem("Clear All")); clearAllItem.addActionListener(this); } + + menuBar.add(cameraMenu = new Menu("View")); + //cameraMenu.add(zBufferItem = new CheckboxMenuItem("Z Buffer")); + //zBufferItem.addActionListener(this); + //cameraMenu.add(normalLensItem = new MenuItem("Normal Lens")); + //normalLensItem.addActionListener(this); + cameraMenu.add(revertCameraItem = new MenuItem("Restore Camera")); + revertCameraItem.addActionListener(this); + + cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen")); + toggleFullScreenItem.addItemListener(this); + toggleFullScreenItem.setState(CameraPane.FULLSCREEN); + cameraMenu.add("-"); + + cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture")); + toggleTextureItem.addItemListener(this); + toggleTextureItem.setState(CameraPane.textureon); + + cameraMenu.add(toggleSwitchItem = new CheckboxMenuItem("Switch")); + toggleSwitchItem.addItemListener(this); + toggleSwitchItem.setState(CameraPane.SWITCH); + + cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles")); + toggleHandleItem.addItemListener(this); + toggleHandleItem.setState(CameraPane.HANDLES); + + cameraMenu.add(togglePaintItem = new CheckboxMenuItem("Paint mode")); + togglePaintItem.addItemListener(this); + togglePaintItem.setState(CameraPane.PAINTMODE); + + if (Globals.ADVANCED) + { + cameraMenu.add("-"); + cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live")); + toggleLiveItem.addItemListener(this); + toggleLiveItem.setState(Globals.isLIVE()); + cameraMenu.add(stepItem = new MenuItem("Step")); + stepItem.addActionListener(this); + // cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List")); + // toggleDLItem.addItemListener(this); + // toggleDLItem.setState(false); + + cameraMenu.add(toggleRenderItem = new CheckboxMenuItem("Render")); + toggleRenderItem.addItemListener(this); + toggleRenderItem.setState(!CameraPane.frozen); + + cameraMenu.add(toggleDebugItem = new CheckboxMenuItem("Debug")); + toggleDebugItem.addItemListener(this); + toggleDebugItem.setState(CameraPane.DEBUG); + + cameraMenu.add(toggleFrustumItem = new CheckboxMenuItem("Frustum")); + toggleFrustumItem.addItemListener(this); + toggleFrustumItem.setState(CameraPane.FRUSTUM); + + cameraMenu.add(toggleFootContactItem = new CheckboxMenuItem("Foot contact")); + toggleFootContactItem.addItemListener(this); + toggleFootContactItem.setState(CameraPane.FOOTCONTACT); + + cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline")); + toggleTimelineItem.addItemListener(this); + } + +// cameraMenu.add(toggleRootItem = new CheckboxMenuItem("Alternate Root")); +// toggleRootItem.addItemListener(this); +// toggleRootItem.setState(false); +// cameraMenu.add(animationItem = new CheckboxMenuItem("Animation")); +// animationItem.addItemListener(this); +// animationItem.setState(CameraPane.ANIMATION); + cameraMenu.add("-"); + cameraMenu.add(editCameraItem = new MenuItem("Save Camera")); + editCameraItem.addActionListener(this); + + if (Globals.ADVANCED) + { + oe.cameraMenu.add(lookAtItem = new MenuItem("Set Interest")); + //cameraMenu.add(lookFromItem = new MenuItem("Look From Selection")); + //cameraMenu.add(switchItem = new MenuItem("Reverse View")); + editLeafItem = oe.cameraMenu.add(new MenuItem("Edit Leaf")); + oe.cameraMenu.add("-"); + openWindowItem = oe.cameraMenu.add(new MenuItem("Edit copy...")); + openWindowItem.addActionListener(this); + editLeafItem.addActionListener(this); + lookAtItem.addActionListener(this); + //lookFromItem.addActinoListener(this); + //switchItem.addActionListener(this); + } + oe.menuBar.add(menu = new Menu("Setting")); if (Globals.ADVANCED) { - resetMeshItem = menu.add(new MenuItem("Reset All")); - resetMeshItem.addActionListener(this); - stepAllItem = menu.add(new MenuItem("Step All")); - stepAllItem.addActionListener(this); revertMeshItem = menu.add(new MenuItem("Revert Meshes")); revertMeshItem.addActionListener(this); resetreferencesItem = menu.add(new MenuItem("Reset Mesh References")); @@ -372,6 +445,10 @@ oe.menuBar.add(menu = new Menu("Attributes")); clearMaterialsItem = menu.add(new MenuItem("Clear Materials")); clearMaterialsItem.addActionListener(this); + resetAllItem = menu.add(new MenuItem("Reset All")); + resetAllItem.addActionListener(this); + stepAllItem = menu.add(new MenuItem("Step All")); + stepAllItem.addActionListener(this); menu.add("-"); liveleavesItem = menu.add(new MenuItem("Live Leaves")); liveleavesItem.addActionListener(this); @@ -443,19 +520,6 @@ oe.menuBar.add(menu = new Menu("Insert")); buildCreateMenu(menu); - oe.menuBar.add(menu = new Menu("Include")); - importOBJItem = menu.add(new MenuItem("OBJ file...")); - importOBJItem.addActionListener(this); - menu.add("-"); - import3DSItem = menu.add(new MenuItem("3DS file...")); - import3DSItem.addActionListener(this); - menu.add("-"); - importVRMLX3DItem = menu.add(new MenuItem("VRML/X3D file...")); - importVRMLX3DItem.addActionListener(this); - menu.add("-"); - importGFDItem = menu.add(new MenuItem("GrafreeD file...")); - importGFDItem.addActionListener(this); - oe.menuBar.add(menu = new Menu("Tools")); buildToolsMenu(menu); } @@ -493,7 +557,7 @@ //this.AddOptions(oe.toolbarPanel, oe.aConstraints); oe.toolbarPanel.add(liveCB = new cCheckBox("Live", Globals.isLIVE())); //, oe.aConstraints); - liveCB.setToolTipText("Enabled animation"); + liveCB.setToolTipText("Enable animation"); liveCB.addItemListener(this); oe.toolbarPanel.add(oneStepButton = new cButton("Step", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); @@ -729,6 +793,7 @@ buttonGroup.add(radioButton); radioButton.doClick(); } + void SetupViews(ObjEditor oe) { oe.SetupViews(); @@ -1854,31 +1919,6 @@ csg.addChild(child); child.addChild(csg); } else - - if (source == importGFDItem) - { - ImportGFD(); - } else - if (source == importVRMLX3DItem) - { - ImportVRMLX3D(); - } else - if (source == import3DSItem) - { - objEditor.ImportJME(new com.jmex.model.converters.MaxToJme(), "3ds", "Import 3DS"); - } else - if (source == importOBJItem) - { - //objEditor.ImportJME(new com.jmex.model.converters.ObjToJme(), "obj", "Import OBJ"); - FileDialog browser = new FileDialog(frame, "Import OBJ", FileDialog.LOAD); - browser.setVisible(true); - String filename = browser.getFile(); - if (filename != null && filename.length() > 0) - { - String fullname = browser.getDirectory() + filename; - makeSomething(ReadOBJ(fullname), true); - } - } else if (source == computeAOItem) { Globals.drawMode = CameraPane.OCCLUSION; @@ -1969,6 +2009,14 @@ if (source == cutItem || source == clearButton) { loadClipboard(true); + } else + if (source == undoItem) + { + Undo(); + } else + if (source == redoItem) + { + Redo(); } else if (source == duplicateItem) { @@ -2281,7 +2329,7 @@ { RevertMeshes(); } else - if (source == resetMeshItem) + if (source == resetAllItem) { ResetAll(); } else @@ -2993,7 +3041,7 @@ child.CloseUI(); listUI.remove(child); - child.editWindow = null; // ??????????? + //child.editWindow = null; // ??????????? } objEditor.ctrlPanel.FlushUI(); //objEditor.jTree.clearSelection(); @@ -3079,7 +3127,9 @@ frontView.object = group; sideView.object = group; } - group.editWindow = this; + +// fix "+" issue group.editWindow = this; + /* currentLayout = radio.layout; if (currentLayout == null) @@ -3092,7 +3142,20 @@ //group.attributes = -1; ResetModel(); refreshContents(true); - } + } else if (event.getSource() == editCameraItem) + { + cameraView.ProtectCamera(); + cameraView.repaint(); + return; + } else if (event.getSource() == revertCameraItem) + { + cameraView.RevertCamera(); + cameraView.repaint(); + return; + // } else if (event.getSource() == textureButton) + // { + // return; // true; + } else { //return super.action(event, arg); @@ -3652,7 +3715,16 @@ String pigment = Object3D.GetPigment(tex); //String bump = Object3D.GetBump(tex); - com.sun.opengl.util.texture.TextureData texturedata = Globals.theRenderer.GetTextureData(pigment, false, node.texres); + com.sun.opengl.util.texture.TextureData texturedata = null; + + try + { + texturedata = Globals.theRenderer.GetTextureData(pigment, false, node.texres); + } + catch (Exception e) + { + System.err.println("FAIL: " + node); + } double s = v.s; @@ -4124,7 +4196,7 @@ objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); Object3D elem = (Object3D)group.selection.elementAt(i); - if(elem != group) + if(elem != group || !newWindow) { // if (!(elem instanceof Composite)) // newWindow = false; @@ -4238,14 +4310,17 @@ objEditor.SetText(); // jan 2014 - if (flashIt && !Globals.isLIVE() && tps != null && tps.length > 0 && !(((Object3D) tps[0].getLastPathComponent()) instanceof Camera)) + if (flashIt && !Globals.isLIVE() && tps != null && tps.length > 0 && !(tps[0].getLastPathComponent() instanceof Camera)) CameraPane.flash = true; - if (tps != null && tps.length > 0 && ((Object3D) tps[0].getLastPathComponent()) instanceof Camera) + if (tps != null && tps.length > 0 && tps[0].getLastPathComponent() instanceof Camera) // a camera { - CameraPane.camerachangeframe = 0; // don't refuse it - Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent()); + if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) + { + CameraPane.camerachangeframe = 0; // don't refuse it + Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent()); + } // Globals.theRenderer.renderCamera = Globals.theRenderer.manipCamera; // Globals.theRenderer.eyeCamera = Globals.theRenderer.manipCamera; } @@ -4961,21 +5036,6 @@ } */ - void ImportGFD() - { - FileDialog browser = new FileDialog(objEditor.frame, "Import GrafreeD", FileDialog.LOAD); - browser.show(); - String filename = browser.getFile(); - if (filename != null && filename.length() > 0) - { - String fullname = browser.getDirectory() + filename; - - //Object3D readobj = - objEditor.ReadGFD(fullname, objEditor); - //makeSomething(readobj); - } - } - /* public void Callback(Object obj) { @@ -4999,23 +5059,6 @@ } */ - void ImportVRMLX3D() - { - if (Grafreed.standAlone) - { - /**/ - FileDialog browser = new FileDialog(objEditor.frame, "Import VRML/X3D", FileDialog.LOAD); - browser.show(); - String filename = browser.getFile(); - if (filename != null && filename.length() > 0) - { - String fullname = browser.getDirectory() + filename; - LoadVRMLX3D(fullname); - } - /**/ - } - } - String GetFile(String dialogName) { if (Grafreed.standAlone) @@ -5118,6 +5161,8 @@ private MenuItem lookFromItem; private MenuItem switchItem; private MenuItem cutItem; + private MenuItem undoItem; + private MenuItem redoItem; private MenuItem duplicateItem; private MenuItem cloneItem; private MenuItem cloneSupportItem; @@ -5131,7 +5176,7 @@ private MenuItem linkverticesItem; private MenuItem relinkverticesItem; private MenuItem setMasterItem; - private MenuItem resetMeshItem; + private MenuItem resetAllItem; private MenuItem stepAllItem; private MenuItem revertMeshItem; private MenuItem poseMeshItem; @@ -5264,11 +5309,6 @@ private MenuItem doubleItem; private MenuItem tripleItem; - private MenuItem importGFDItem; - private MenuItem importVRMLX3DItem; - private MenuItem import3DSItem; - private MenuItem importOBJItem; - private MenuItem computeAOItem; private MenuItem recompileItem; private MenuItem editScriptItem; @@ -5278,4 +5318,8 @@ private MenuItem analyzeItem; private MenuItem dumpItem; //boolean freezemodel = false; + + Menu cameraMenu; + MenuItem editCameraItem; + MenuItem revertCameraItem; } -- Gitblit v1.6.2