X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.shapeeditor%2Fsrc%2Forg%2Fsimantics%2Fproconf%2Fg3d%2Fshapeeditor%2Factions%2FLoadFolderAction.java;fp=org.simantics.g3d.shapeeditor%2Fsrc%2Forg%2Fsimantics%2Fproconf%2Fg3d%2Fshapeeditor%2Factions%2FLoadFolderAction.java;h=0000000000000000000000000000000000000000;hb=6b6fcff5d6c326feef07ccf8401f97911778fffe;hp=168f9a53cbbed48cf53d273d1a990d64b4fa2d54;hpb=504c111db40d78f4913badddd126b283b5504dbb;p=simantics%2F3d.git diff --git a/org.simantics.g3d.shapeeditor/src/org/simantics/proconf/g3d/shapeeditor/actions/LoadFolderAction.java b/org.simantics.g3d.shapeeditor/src/org/simantics/proconf/g3d/shapeeditor/actions/LoadFolderAction.java deleted file mode 100644 index 168f9a53..00000000 --- a/org.simantics.g3d.shapeeditor/src/org/simantics/proconf/g3d/shapeeditor/actions/LoadFolderAction.java +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007- VTT Technical Research Centre of Finland. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.proconf.g3d.shapeeditor.actions; - -import java.io.File; -import java.io.FilenameFilter; -import java.util.Stack; - -import org.eclipse.jface.action.Action; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.DirectoryDialog; -import org.simantics.proconf.g3d.base.ThreeDimensionalEditorBase; -import org.simantics.proconf.g3d.occ.geometry.OccTriangulator; - -import com.jme.bounding.BoundingBox; -import com.jme.renderer.ColorRGBA; -import com.jme.scene.Geometry; -import com.jme.scene.state.MaterialState; - - -public class LoadFolderAction extends Action { - private ThreeDimensionalEditorBase editor; - - public LoadFolderAction(ThreeDimensionalEditorBase editor) { - super("Load folder"); - this.editor = editor; - - } - - public void run() { - - DirectoryDialog loadDialog = new DirectoryDialog(editor.getRenderingComposite().getShell(), SWT.OPEN); - loadDialog.setText("Select directory"); - - String directory = loadDialog.open(); - if (directory != null) { - File file = new File(directory); - if (!file.isDirectory()) - return; - Stack directories = new Stack(); - directories.push(file); - boolean recursive = true; - while (!directories.empty()) { - File dir = directories.pop(); - - String[] files = dir.list(new PLYFilter()); - for (String filename : files) { - Geometry g = OccTriangulator.getGeometryFromFile(dir.getAbsolutePath() + "/" + filename)[0]; - MaterialState ms = editor.getRenderingComponent().getDisplaySystem().getRenderer().createMaterialState(); - ms.setAmbient(new ColorRGBA(0.f,0.f,0.f,0.f)); - ms.setEmissive(new ColorRGBA(0.f,0.f,0.f,0.f)); - ms.setShininess(128.f); - ms.setDiffuse(new ColorRGBA(0.8f,0.8f,0.8f,0.f)); - ms.setSpecular(new ColorRGBA(1.f,1.f,1.f,0.f)); - ms.setMaterialFace(MaterialState.MF_FRONT_AND_BACK); - if (g.getColorBuffer(0) != null) { - ms.setColorMaterial(MaterialState.CM_DIFFUSE); - } - g.setModelBound(new BoundingBox()); - g.updateModelBound(); - g.setRenderState(ms); - editor.getRenderingComponent().getShadowRoot().attachChild(g); - g.updateWorldBound(); - g.lock(); - - } - if (recursive) { - File[] newDirs = dir.listFiles(new DirectoryFilter()); - for (File d : newDirs) - directories.push(d); - } - } - - } - - - } - - protected class DirectoryFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - File file = new File(dir.getAbsolutePath() + "/" + name); - return file.isDirectory(); - } - } - - protected class PLYFilter implements FilenameFilter { - public boolean accept(File dir, String name) { - return (name.endsWith("ply")); - } - } - -}