当前位置: 首页>>代码示例>>Java>>正文


Java MeshView.setCullFace方法代码示例

本文整理汇总了Java中javafx.scene.shape.MeshView.setCullFace方法的典型用法代码示例。如果您正苦于以下问题:Java MeshView.setCullFace方法的具体用法?Java MeshView.setCullFace怎么用?Java MeshView.setCullFace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在javafx.scene.shape.MeshView的用法示例。


在下文中一共展示了MeshView.setCullFace方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildGroup

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
@Override
protected Group buildGroup() {
    mb = new MeshBuilder();
    triangleMesh = mb.getTriangleMesh();
    meshView = new MeshView(triangleMesh);
    material = new PhongMaterial();
    material.setDiffuseColor(Color.LIGHTGRAY);
    material.setSpecularColor(Color.rgb(30, 30, 30));
    meshView.setMaterial(material);
    //Set Wireframe mode
    meshView.setDrawMode(DrawMode.FILL);
    meshView.setCullFace(CullFace.BACK);
    meshView.setScaleX(SCALE);
    meshView.setScaleY(SCALE);
    meshView.setScaleZ(SCALE);
    grp = new Group(meshView);
    return grp;

}
 
开发者ID:teamfx,项目名称:openjfx-8u-dev-tests,代码行数:20,代码来源:MeshPickingAbstractApp.java

示例2: getAsMeshViews

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
public List<MeshView> getAsMeshViews() {
    List<MeshView> result = new ArrayList<>(meshes.size());

    for (int i = 0; i < meshes.size(); i++) {

        Mesh mesh = meshes.get(i);
        Material mat = materials.get(i);

        MeshView view = new MeshView(mesh);
        view.setMaterial(mat);
        view.setCullFace(CullFace.NONE);

        result.add(view);
    }

    return result;
}
 
开发者ID:lyrachord,项目名称:FX3DAndroid,代码行数:18,代码来源:MeshContainer.java

示例3: buildMeshView

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
public MeshView buildMeshView(String key) {
    MeshView meshView = new MeshView();
    meshView.setId(key);
    meshView.setMaterial(materials.get(key));
    meshView.setMesh(meshes.get(key));
    meshView.setCullFace(CullFace.NONE);
    return meshView;
}
 
开发者ID:gluonhq,项目名称:gluon-samples,代码行数:9,代码来源:ObjImporter.java

示例4: setHeightData

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
public void setHeightData(float[][] arrayY, int spacing, Color color, boolean ambient, boolean fill) {
    material = new PhongMaterial();
    material.setSpecularColor(color);
    material.setDiffuseColor(color);

    mesh = new TriangleMesh();

    // Fill Points
    for (int x = 0; x < arrayY.length; x++) {
        for (int z = 0; z < arrayY[0].length; z++) {
            mesh.getPoints().addAll(x * spacing, arrayY[x][z], z * spacing);
        }
    }

    //for now we'll just make an empty texCoordinate group
    mesh.getTexCoords().addAll(0, 0);
    int total = arrayY.length * arrayY.length;
    int nextRow = arrayY.length;
    //Add the faces "winding" the points generally counter clock wise
    for (int i = 0; i < total - nextRow -1; i++) {
        //Top upper left triangle
        mesh.getFaces().addAll(i,0,i+nextRow,0,i+1,0);
        //Top lower right triangle
        mesh.getFaces().addAll(i+nextRow,0,i+nextRow + 1,0,i+1,0);
        
        //Bottom            
    }
    //Create a viewable MeshView to be added to the scene
    //To add a TriangleMesh to a 3D scene you need a MeshView container object
    meshView = new MeshView(mesh);
    //The MeshView allows you to control how the TriangleMesh is rendered
    if(fill) { 
        meshView.setDrawMode(DrawMode.FILL);
    } else {
        meshView.setDrawMode(DrawMode.LINE); //show lines only by default
    }
    meshView.setCullFace(CullFace.BACK); //Removing culling to show back lines

    getChildren().add(meshView);
    meshView.setMaterial(material);
    if (ambient) {
        selfLight.getScope().add(meshView);
        if(!getChildren().contains(selfLight))
            getChildren().add(selfLight);
    }
    else if(getChildren().contains(selfLight))
        getChildren().remove(selfLight);
    setDepthTest(DepthTest.ENABLE);
}
 
开发者ID:sanke69,项目名称:fr.xs.jtk,代码行数:50,代码来源:SurfacePlot.java

示例5: PolyLine3D

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
public PolyLine3D(List<Point3D> points, int width, Color color) {
    this.points = points;
    this.width = width;
    this.color = color;
    setDepthTest(DepthTest.ENABLE);        
    mesh  = new TriangleMesh();
    //add each point. For each point add another point shifted on Z axis by width
    //This extra point allows us to build triangles later
    for(Point3D point: points) {
        mesh.getPoints().addAll(point.x,point.y,point.z);
        mesh.getPoints().addAll(point.x,point.y,point.z+width);
    }
    //add dummy Texture Coordinate
    mesh.getTexCoords().addAll(0,0); 
    //Now generate trianglestrips for each line segment
    for(int i=2;i<points.size()*2;i+=2) {  //add each segment
        //Vertices wound counter-clockwise which is the default front face of any Triange
        //These triangles live on the frontside of the line facing the camera
        mesh.getFaces().addAll(i,0,i-2,0,i+1,0); //add primary face
        mesh.getFaces().addAll(i+1,0,i-2,0,i-1,0); //add secondary Width face
        //Add the same faces but wind them clockwise so that the color looks correct when camera is rotated
        //These triangles live on the backside of the line facing away from initial the camera
        mesh.getFaces().addAll(i+1,0,i-2,0,i,0); //add primary face
        mesh.getFaces().addAll(i-1,0,i-2,0,i+1,0); //add secondary Width face
    }
    //Need to add the mesh to a MeshView before adding to our 3D scene 
    meshView = new MeshView(mesh);
    meshView.setDrawMode(DrawMode.FILL);  //Fill so that the line shows width
    material = new PhongMaterial(color);
    material.setDiffuseColor(color);
    material.setSpecularColor(color);
    meshView.setMaterial(material); 
    //Make sure you Cull the Back so that no black shows through
    meshView.setCullFace(CullFace.BACK);

    //Add some ambient light so folks can see it
    AmbientLight light = new AmbientLight(Color.WHITE);
    light.getScope().add(meshView);
    getChildren().add(light);
    getChildren().add(meshView);           
}
 
开发者ID:sanke69,项目名称:fr.xs.jtk,代码行数:42,代码来源:PolyLine3D.java

示例6: draw

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
public static Group draw(float[] footprint, float zLevel, float HEIGHT) {

		Group box = new Group();
		int y = 0;

		// for each footprint coordinate make a rectangle
		int n = footprint.length - 2;

		// one side of the box
		for (int k = 0; k < n; k = k + 2) {

			float[] points = { footprint[k], y + zLevel, footprint[k + 1], footprint[k + 2], y + zLevel,
					footprint[k + 3], footprint[k + 2], y + zLevel + HEIGHT, footprint[k + 3], footprint[k],
					y + zLevel + HEIGHT, footprint[k + 1] };
			float[] texCoords = { 1, 1, 1, 0, 0, 1, 0, 0 };
			int[] faces = { 0, 0, 2, 2, 1, 1, 0, 0, 3, 3, 2, 2 };
			int[] faces2 = { 0, 0, 1, 1, 2, 2, 0, 0, 2, 2, 3, 3 };

			TriangleMesh mesh1 = new TriangleMesh();
			mesh1.getPoints().setAll(points);
			mesh1.getTexCoords().setAll(texCoords);
			mesh1.getFaces().setAll(faces);

			TriangleMesh mesh2 = new TriangleMesh();
			mesh2.getPoints().setAll(points);
			mesh2.getTexCoords().setAll(texCoords);
			mesh2.getFaces().setAll(faces2);

			final MeshView rectangle1 = new MeshView(mesh1);
			rectangle1.setMaterial(new PhongMaterial(Color.web("#FF0000", 0.25)));
			rectangle1.setCullFace(CullFace.BACK);

			final MeshView rectangle2 = new MeshView(mesh2);
			rectangle2.setMaterial(new PhongMaterial(Color.web("#FF0000", 0.25)));
			rectangle2.setCullFace(CullFace.BACK);

			final MeshView wire1 = new MeshView(mesh1);
			wire1.setMaterial(new PhongMaterial(Color.web("#000000", 0.5)));
			wire1.setCullFace(CullFace.BACK);
			wire1.setDrawMode(DrawMode.LINE);

			final MeshView wire2 = new MeshView(mesh2);
			wire2.setMaterial(new PhongMaterial(Color.web("#000000", 0.5)));
			wire2.setCullFace(CullFace.BACK);
			wire2.setDrawMode(DrawMode.LINE);

			// add to group
			box.getChildren().addAll(rectangle1, wire1, rectangle2, wire2);
		}

		return box;
	}
 
开发者ID:lyrachord,项目名称:FX3DAndroid,代码行数:53,代码来源:ScadaApplication.java

示例7: buildSTL

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
/**Creates a visualization of a .stl file.
     * 
     * @param filePath the absolute file path of the .stl file
     * @param color the color the visualized file should have
     * @param ambient enables ambient light on the geometry
     * @param fill renders the faces or just shows the lines
     * @return the visualized STL file as a group node
     */
    private Group buildSTL (String filePath,Color color, boolean ambient, boolean fill){
        
        STLReader reader = new STLReader(filePath);
        reader.start();
        reader.getFacetPoints(0);
        reader.getNormal(0);
        
//        reader.readFromAscii();
        float[] vertices = reader.getVerticesFloatArray();
        float[] normals = reader.getNormalsFloatArray();
        
        TriangleMesh mesh = new TriangleMesh();
        
        mesh.getPoints().addAll(vertices);
        mesh.getTexCoords().addAll(0,0);
        
        
        for (int i = 0; i < vertices.length/3 ; i+=3) {
            mesh.getFaces().addAll(i,0, i+1,0,i+2,0);
        }
        
        MeshView meshView = new MeshView(mesh);

        
        Group customGroup2 = new Group();
        customGroup2.getChildren().add(meshView);
        
        if (null != color) {
            PhongMaterial material = new PhongMaterial(color);
            meshView.setMaterial(material);
        }
        if (ambient) {
            AmbientLight light = new AmbientLight(Color.WHITE);
            light.getScope().add(meshView);
            customGroup2.getChildren().add(light);
        }
        if(fill) { 
            meshView.setDrawMode(DrawMode.FILL);
        } else {
            meshView.setDrawMode(DrawMode.LINE); //show lines only by default
        }
        meshView.setCullFace(CullFace.BACK); //Removing culling to show back lines

        return customGroup2;
    }
 
开发者ID:VRL-Studio,项目名称:VRL-JFXVis,代码行数:54,代码来源:Main.java

示例8: compile

import javafx.scene.shape.MeshView; //导入方法依赖的package包/类
private void compile(String code) {

        csgObject = null;

        clearLog();

        viewGroup.getChildren().clear();

        try {

            CompilerConfiguration cc = new CompilerConfiguration();

            cc.addCompilationCustomizers(
                    new ImportCustomizer().
                    addStarImports("eu.mihosoft.vrl.v3d",
                            "eu.mihosoft.vrl.v3d.samples").
                    addStaticStars("eu.mihosoft.vrl.v3d.Transform"));

            GroovyShell shell = new GroovyShell(getClass().getClassLoader(),
                    new Binding(), cc);

            Script script = shell.parse(code);

            Object obj = script.run();

            if (obj instanceof CSG) {

                CSG csg = (CSG) obj;

                csgObject = csg;

                MeshContainer meshContainer = csg.toJavaFXMesh();

                final MeshView meshView = meshContainer.getAsMeshViews().get(0);

                setMeshScale(meshContainer,
                        viewContainer.getBoundsInLocal(), meshView);

                PhongMaterial m = new PhongMaterial(Color.RED);

                meshView.setCullFace(CullFace.NONE);

                meshView.setMaterial(m);

                viewGroup.layoutXProperty().bind(
                        viewContainer.widthProperty().divide(2));
                viewGroup.layoutYProperty().bind(
                        viewContainer.heightProperty().divide(2));

                viewContainer.boundsInLocalProperty().addListener(
                        (ov, oldV, newV) -> {
                            setMeshScale(meshContainer, newV, meshView);
                        });

                VFX3DUtil.addMouseBehavior(meshView,
                        viewContainer, MouseButton.PRIMARY);

                viewGroup.getChildren().add(meshView);

            } else {
                System.out.println(">> no CSG object returned :(");
            }

        } catch (Throwable ex) {
            ex.printStackTrace(System.err);
        }
    }
 
开发者ID:miho,项目名称:PiOnWheels,代码行数:68,代码来源:MainController.java


注:本文中的javafx.scene.shape.MeshView.setCullFace方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。