From 4ec7130da08861dc4aff0232dbce38f3471696a4 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 05 Aug 2019 20:41:17 -0400 Subject: [PATCH] Materials working. --- ObjEditor.java | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- GroupEditor.java | 8 gfd/materials.gfd | 0 icons/trash.png | 0 icons/shadericons/shadericon00018.png | 0 5 files changed, 322 insertions(+), 23 deletions(-) diff --git a/GroupEditor.java b/GroupEditor.java index d8844d1..5698ae1 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -948,12 +948,12 @@ updown.add(restoreButton = GetButton("icons/restore.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); restoreButton.setToolTipText("Undo (restore current version)"); restoreButton.addActionListener(this); - restoreButton.setEnabled(false); + //restoreButton.setEnabled(false); updown.add(replaceButton = GetButton("icons/replace.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); replaceButton.setToolTipText("Save (replace current version)"); replaceButton.addActionListener(this); - replaceButton.setEnabled(false); + //replaceButton.setEnabled(false); copyOptionsPanel.add(updown); @@ -2617,13 +2617,13 @@ { // Restore current version Restore(); - restoreButton.setEnabled(false); + //restoreButton.setEnabled(false); } else if (source == replaceButton) { // Overwrite current version Replace(); - replaceButton.setEnabled(false); + //replaceButton.setEnabled(false); } else if (source == nextVersionButton) { diff --git a/ObjEditor.java b/ObjEditor.java index 996442d..b86325c 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -1740,7 +1740,9 @@ void SetupMaterial(cGridBag materialpanel) { cGridBag presetpanel = new cGridBag().setVertical(true); + cLabel skin = GetLabel("icons/shadericons/shadericon00000.png", !Grafreed.NIMBUSLAF); + skin.setToolTipText("Skin"); skin.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) @@ -1769,8 +1771,116 @@ }); presetpanel.add(skin); - cLabel rough2 = GetLabel("icons/shadericons/shadericon00001.png", !Grafreed.NIMBUSLAF); - rough2.addMouseListener(new MouseAdapter() + cLabel lambert = GetLabel("icons/shadericons/shadericon00002.png", !Grafreed.NIMBUSLAF); + lambert.setToolTipText("Diffuse"); + lambert.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[2].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(lambert); + + cLabel diffuse2 = GetLabel("icons/shadericons/shadericon00003.png", !Grafreed.NIMBUSLAF); + diffuse2.setToolTipText("Diffuse2"); + diffuse2.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[3].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(diffuse2); + + cLabel diffusemoon = GetLabel("icons/shadericons/shadericon00004.png", !Grafreed.NIMBUSLAF); + diffusemoon.setToolTipText("Moon"); + diffusemoon.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[4].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(diffusemoon); + + cLabel diffusemoon2 = GetLabel("icons/shadericons/shadericon00005.png", !Grafreed.NIMBUSLAF); + diffusemoon2.setToolTipText("Moon2"); + diffusemoon2.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[5].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(diffusemoon2); + + cLabel diffusemoon3 = GetLabel("icons/shadericons/shadericon00006.png", !Grafreed.NIMBUSLAF); + diffusemoon3.setToolTipText("Moon3"); + diffusemoon3.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[6].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(diffusemoon3); + + cLabel diffusesheen = GetLabel("icons/shadericons/shadericon00007.png", !Grafreed.NIMBUSLAF); + diffusesheen.setToolTipText("Sheen"); + diffusesheen.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[7].get(0); + cMaterial material = object.material; + + sheenField.setFloat(material.sheen); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(diffusesheen); + + cLabel rough = GetLabel("icons/shadericons/shadericon00001.png", !Grafreed.NIMBUSLAF); + rough.setToolTipText("Rough metal"); + rough.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { @@ -1784,31 +1894,220 @@ applySelf(); } }); + presetpanel.add(rough); + + cLabel rough2 = GetLabel("icons/shadericons/shadericon00013.png", !Grafreed.NIMBUSLAF); + rough2.setToolTipText("Medium metal"); + rough2.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[13].get(0); + cMaterial material = object.material; + + shininessField.setFloat(material.shininess); + lightareaField.setFloat(material.lightarea); + + materialtouched = true; + applySelf(); + } + }); presetpanel.add(rough2); - presetpanel.add(GetLabel("icons/shadericons/shadericon00002.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00003.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00004.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00005.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00006.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00007.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00008.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00009.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00010.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00011.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00012.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00013.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00014.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00015.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00016.png", !Grafreed.NIMBUSLAF)); - presetpanel.add(GetLabel("icons/shadericons/shadericon00017.png", !Grafreed.NIMBUSLAF)); + cLabel shini0 = GetLabel("icons/shadericons/shadericon00014.png", !Grafreed.NIMBUSLAF); + shini0.setToolTipText("Shiny"); + shini0.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[14].get(0); + cMaterial material = object.material; + + shininessField.setFloat(material.shininess); + lightareaField.setFloat(material.lightarea); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(shini0); + + cLabel shini1 = GetLabel("icons/shadericons/shadericon00011.png", !Grafreed.NIMBUSLAF); + shini1.setToolTipText("Shiny2"); + shini1.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[11].get(0); + cMaterial material = object.material; + + shininessField.setFloat(material.shininess); + lightareaField.setFloat(material.lightarea); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(shini1); + + cLabel shini2 = GetLabel("icons/shadericons/shadericon00012.png", !Grafreed.NIMBUSLAF); + shini2.setToolTipText("Shiny3"); + shini2.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[12].get(0); + cMaterial material = object.material; + + shininessField.setFloat(material.shininess); + lightareaField.setFloat(material.lightarea); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(shini2); + + cLabel aniso = GetLabel("icons/shadericons/shadericon00008.png", !Grafreed.NIMBUSLAF); + aniso.setToolTipText("AnisoU"); + aniso.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[8].get(0); + cMaterial material = object.material; + + anisoField.setFloat(material.aniso); + anisoVField.setFloat(material.anisoV); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(aniso); + + cLabel aniso2 = GetLabel("icons/shadericons/shadericon00009.png", !Grafreed.NIMBUSLAF); + aniso2.setToolTipText("AnisoV"); + aniso2.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[9].get(0); + cMaterial material = object.material; + + anisoField.setFloat(material.aniso); + anisoVField.setFloat(material.anisoV); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(aniso2); + + cLabel aniso3 = GetLabel("icons/shadericons/shadericon00010.png", !Grafreed.NIMBUSLAF); + aniso3.setToolTipText("AnisoUV"); + aniso3.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[10].get(0); + cMaterial material = object.material; + + anisoField.setFloat(material.aniso); + anisoVField.setFloat(material.anisoV); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(aniso3); + + cLabel velvet0 = GetLabel("icons/shadericons/shadericon00015.png", !Grafreed.NIMBUSLAF); + velvet0.setToolTipText("Velvet"); + velvet0.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[15].get(0); + cMaterial material = object.material; + + diffusenessField.setFloat(material.factor); + selfshadowField.setFloat(material.diffuseness); + sheenField.setFloat(material.sheen); + shininessField.setFloat(material.shininess); + velvetField.setFloat(material.velvet); + shiftField.setFloat(material.shift); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(velvet0); + + cLabel bump0 = GetLabel("icons/shadericons/shadericon00016.png", !Grafreed.NIMBUSLAF); + bump0.setToolTipText("Bump texture"); + bump0.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[16].get(0); + cMaterial material = object.material; + + bumpField.setFloat(object.projectedVertices[0].x / 1000.0); + noiseField.setFloat(object.projectedVertices[0].y / 1000.0); + powerField.setFloat(object.projectedVertices[2].x / 1000.0); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(bump0); + + cLabel halo = GetLabel("icons/shadericons/shadericon00017.png", !Grafreed.NIMBUSLAF); + halo.setToolTipText("Halo"); + halo.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[17].get(0); + cMaterial material = object.material; + + opacityPowerField.setFloat(object.projectedVertices[2].y / 1000.0); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(halo); + + cLabel candle = GetLabel("icons/shadericons/shadericon00018.png", !Grafreed.NIMBUSLAF); + candle.setToolTipText("Candle"); + candle.addMouseListener(new MouseAdapter() + { + public void mouseClicked(MouseEvent e) + { + Object3D object = Grafreed.materials.versionlist[18].get(0); + cMaterial material = object.material; + + subsurfaceField.setFloat(material.subsurface); + shadowbiasField.setFloat(material.shadowbias); + ambientField.setFloat(material.ambient); + specularField.setFloat(material.specular); + lightareaField.setFloat(material.lightarea); + shininessField.setFloat(material.shininess); + + materialtouched = true; + applySelf(); + } + }); + presetpanel.add(candle); cGridBag panel = new cGridBag().setVertical(true); presetpanel.preferredWidth = 1; - materialpanel.add(panel); materialpanel.add(presetpanel); + materialpanel.add(panel); panel.preferredWidth = 8; diff --git a/gfd/materials.gfd b/gfd/materials.gfd index 35d0e08..ab69a8d 100644 --- a/gfd/materials.gfd +++ b/gfd/materials.gfd Binary files differ diff --git a/icons/shadericons/shadericon00018.png b/icons/shadericons/shadericon00018.png new file mode 100644 index 0000000..98ba99f --- /dev/null +++ b/icons/shadericons/shadericon00018.png Binary files differ diff --git a/icons/trash.png b/icons/trash.png index 5918dbe..b6237c3 100644 --- a/icons/trash.png +++ b/icons/trash.png Binary files differ -- Gitblit v1.6.2