Skip to content
A JavaFX 3D Visualization and Component Library
Branch: master
Clone or download
jperedadnr Merge pull request #93 from AlmasB/almasb-dev
Sampler window is now resizable via south-east corner
Latest commit 5c8773a May 29, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
FXyz-Client set min window dimension 800x600, extracted magic numbers into consta… May 29, 2019
FXyz-Core Add missing plugin for bintray upload Apr 30, 2019
FXyz-Importers Add missing plugin for bintray upload Apr 30, 2019
FXyz-Samples #80 Changes based on feedback Feb 17, 2019
gradle/wrapper #58 Update build files Jan 19, 2019
resources Added fxsampler screenshot Mar 24, 2018
.gitignore #54 Use implementation instead of compile Jan 27, 2019
.travis.yml imitate display on travis Feb 9, 2019
LICENSE #58 Update build files Jan 19, 2019
README.md Update readme, with MavenCentral artifacts May 1, 2019
THIRDPARTY-LICENSE.txt Fixed license headers, replaced GPL license with BSD, added third par… Sep 23, 2016
build.gradle Added Surface3DMesh that uses Delaunay triangulation Apr 29, 2019
fxyz-build.properties Add snapshot suffix Oct 14, 2018
fxyz-license.txt
gradle.properties Updated Project Feb 9, 2015
gradlew Move wrapper to root, bump version numbers, cleanup Apr 28, 2018
gradlew.bat Move wrapper to root, bump version numbers, cleanup Apr 28, 2018
settings.gradle issue-38: Created FXyz-Importers subproject Oct 14, 2018

README.md

FXyz3D

  • FXyz3D Core: Download

  • FXyz3D Client: Download

  • FXyz3D Importers: Download

A JavaFX 3D Visualization and Component Library

BSD-3 license

How to build

The project is managed by gradle. To build, type

./gradlew assemble

To deploy it to your local Maven repository, type:

./gradlew publishToMavenLocal

Use of FXyz3D Core

With FXyz3D there are many different 3D custom shapes. The following sample makes use of SpringMesh to create a 3D mesh of a spring.

Sample

Create a gradle project, edit the build.gradle file and add:

plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.7'
}

mainClassName = 'org.fxyz3d.Sample'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.fxyz3d:fxyz3d:0.5.0'
}

javafx {
    modules = [ 'javafx.controls' ]
}

and create a JavaFX Application class Sample under the org.fxyz3d package:

    @Override
    public void start(Stage primaryStage) throws Exception {
        PerspectiveCamera camera = new PerspectiveCamera(true);        
        camera.setNearClip(0.1);
        camera.setFarClip(10000.0);
        camera.setTranslateX(10);
        camera.setTranslateZ(-100);
        camera.setFieldOfView(20);
        
        CameraTransformer cameraTransform = new CameraTransformer();
        cameraTransform.getChildren().add(camera);
        cameraTransform.ry.setAngle(-30.0);
        cameraTransform.rx.setAngle(-15.0);
        
        SpringMesh spring = new SpringMesh(10, 2, 2, 8 * 2 * Math.PI, 200, 100, 0, 0);
        spring.setCullFace(CullFace.NONE);
        spring.setTextureModeVertices3D(1530, p -> p.f);
        
        Group group = new Group(cameraTransform, spring);
        
        Scene scene = new Scene(group, 600, 400, true, SceneAntialiasing.BALANCED);
        scene.setFill(Color.BISQUE);
        scene.setCamera(camera);
        
        primaryStage.setScene(scene);
        primaryStage.setTitle("FXyz3D Sample");
        primaryStage.show();
    }

Note: For more information on JavaFX 11, check this link.

FXSampler

To use the FXSampler and visualize all the samples and the different options available, run:

./gradlew run

There is a hidden side popup menu at the left, from where different samples can be selected. From the right panels different options can be applied dynamically to the 3D shape.

Custom image

You can create a custom image for your platform running:

./gradlew clean :FXyz-Samples:jlink  

And you can run it with Java 9+ on your platform:

FXyz-Samples/build/FXyz/bin/FXyzSamples

Special Thanks go to ControlsFX for providing the FXSampler framework. http://fxexperience.com/controlsfx/ Our Sampler uses a heavily modified version, due to being 3D.

You can’t perform that action at this time.