Java 类javafx.scene.shape.Shape3D 实例源码
项目:openjfx-8u-dev-tests
文件:MultipleLightingTestApp.java
protected Group buildGroup() {
material = new PhongMaterial();
material.setDiffuseColor(Color.ANTIQUEWHITE);
material.setSpecularColor(Color.rgb(255, 255, 255));
material.setSpecularPower(4);
ss = new SemiSphere(2, 120, 120);
Shape3D sh = ss.getMesh();
// Shape3D sh = new Sphere();
sh.setMaterial(material);
sh.setScaleX(SCALE);
sh.setScaleY(SCALE);
sh.setScaleZ(SCALE);
light1Group = new Group();
light2Group = new Group();
light1mv = new GroupMover(light1Group);
light2mv = new GroupMover(light2Group);
root = new Group(light1mv.getGroup(), light2mv.getGroup(), ss.getGroup());
rootmv = new GroupMover(root);
return rootmv.getGroup();
}
项目:UDOONeoController
文件:Sensors3DViewController.java
private void rotate3Dto(Shape3D shape, float tx, float ty, float tz){
if (rotationToInProgress){
return;
}
//System.out.printf("rotate3Dto:%s %f | %f | %f\n", shape.getId(), tx, ty, tz);
rotationToInProgress = true;
Rotate rxBox = new Rotate(0, 0, 0, 0, Rotate.X_AXIS);
Rotate ryBox = new Rotate(0, 0, 0, 0, Rotate.Y_AXIS);
Rotate rzBox = new Rotate(0, 0, 0, 0, Rotate.Z_AXIS);
float rx = tx - originX;
float ry = ty - originY;
float rz = tz - originZ;
rxBox.setAngle(rx);
ryBox.setAngle(ry);
rzBox.setAngle(rz);
shape.getTransforms().addAll(rxBox, ryBox, rzBox);
originX = tx;
originY = ty;
originZ = tz;
rotationToInProgress = false;
}
项目:fr.xs.jtk
文件:ScatterPlot.java
public void setXYZData(List<Double> xData, List<Double> yData, List<Double> zData, List<Color> colors) {
xAxisData = xData;
yAxisData = yData;
zAxisData = zData;
scatterDataGroup.getChildren().clear();
//for now we will always default to x axis
//later we could maybe dynamically determine the smallest axis and then
//uses 0's for the other axes that are larger.
for(int i=0;i<xAxisData.size();i++) {
final Shape3D dataSphere = createDefaultNode(nodeRadius);
double translateY = 0.0;
double translateZ = 0.0;
if(!yAxisData.isEmpty() && yAxisData.size() > i)
translateY = yAxisData.get(i);
if(!zAxisData.isEmpty() && zAxisData.size() > i)
translateZ = zAxisData.get(i);
dataSphere.setTranslateX(xAxisData.get(i));
dataSphere.setTranslateY(translateY);
dataSphere.setTranslateZ(translateZ);
dataSphere.setMaterial(new PhongMaterial(colors.get(i)));
scatterDataGroup.getChildren().add(dataSphere);
}
}
项目:FXyzLib
文件:ScatterPlot.java
public void setXYZData(List<Double> xData, List<Double> yData, List<Double> zData, List<Color> colors) {
xAxisData = xData;
yAxisData = yData;
zAxisData = zData;
scatterDataGroup.getChildren().clear();
//for now we will always default to x axis
//later we could maybe dynamically determine the smallest axis and then
//uses 0's for the other axes that are larger.
for(int i=0;i<xAxisData.size();i++) {
final Shape3D dataSphere = createDefaultNode(nodeRadius);
double translateY = 0.0;
double translateZ = 0.0;
if(!yAxisData.isEmpty() && yAxisData.size() > i)
translateY = yAxisData.get(i);
if(!zAxisData.isEmpty() && zAxisData.size() > i)
translateZ = zAxisData.get(i);
dataSphere.setTranslateX(xAxisData.get(i));
dataSphere.setTranslateY(translateY);
dataSphere.setTranslateZ(translateZ);
dataSphere.setMaterial(new PhongMaterial(colors.get(i)));
scatterDataGroup.getChildren().add(dataSphere);
}
}
项目:FX3DAndroid
文件:ScatterPlot.java
public void setXYZData(List<Double> xData, List<Double> yData, List<Double> zData, List<Color> colors) {
xAxisData = xData;
yAxisData = yData;
zAxisData = zData;
scatterDataGroup.getChildren().clear();
//for now we will always default to x axis
//later we could maybe dynamically determine the smallest axis and then
//uses 0's for the other axes that are larger.
for(int i=0;i<xAxisData.size();i++) {
final Shape3D dataSphere = createDefaultNode(nodeRadius);
double translateY = 0.0;
double translateZ = 0.0;
if(!yAxisData.isEmpty() && yAxisData.size() > i)
translateY = yAxisData.get(i);
if(!zAxisData.isEmpty() && zAxisData.size() > i)
translateZ = zAxisData.get(i);
dataSphere.setTranslateX(xAxisData.get(i));
dataSphere.setTranslateY(translateY);
dataSphere.setTranslateZ(translateZ);
dataSphere.setMaterial(new PhongMaterial(colors.get(i)));
scatterDataGroup.getChildren().add(dataSphere);
}
}
项目:minecraft-jfx-skin
文件:SkinCanvas.java
protected void bindMaterial(Group group) {
Material material = createMaterial();
for (Node node : group.getChildren())
if (node instanceof Shape3D)
((Shape3D) node).setMaterial(material);
else if (node instanceof SkinMultipleCubes)
((SkinMultipleCubes) node).updateSkin(skin);
else if (node instanceof Group)
bindMaterial((Group) node);
}
项目:openjfx-8u-dev-tests
文件:CameraTestGroupBuilder.java
public Group buildGroup() {
initMaterials();
meshView = new Shape3D[(int) Math.pow(side, 3) - (int) Math.pow(side - 2, 3)];
int i = 0;
for (int x = 0; x < side; x++) {
for (int y = 0; y < side; y++) {
for (int z = 0; z < side; z++) {
if (x == 0 || y == 0 || z == 0 || z == side - 1 || y == side - 1 || x == side - 1) {
meshView[i] = new Sphere(radius);
meshView[i].setMaterial(getMtrl(x, y, z));
meshView[i].setScaleX(SCALE);
meshView[i].setScaleY(SCALE);
meshView[i].setScaleZ(SCALE);
meshView[i].setTranslateX((x - (side) / 2) * SCALE * 2 * radius + SCALE * radius);
meshView[i].setTranslateY((y - (side) / 2) * SCALE * 2 * radius + SCALE * radius);
meshView[i].setTranslateZ((z - (side) / 2) * SCALE * 2 * radius + SCALE * radius);
i++;
}
}
}
}
root = new Group(meshView);
root.setFocusTraversable(true);
grp = new Group(root);
return grp;
}
项目:openjfx-8u-dev-tests
文件:DepthTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Sphere(1),
new Sphere(1),
};
result[1].setTranslateX(1);
result[0].setTranslateX(-1);
return result;
}
项目:openjfx-8u-dev-tests
文件:DepthTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Box(2, 2, 2),
new Box(2, 2, 2)
};
result[1].setTranslateX(1.5);
result[0].setTranslateX(-1.5);
return result;
}
项目:openjfx-8u-dev-tests
文件:DepthTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Cylinder(1.3, 2),
new Cylinder(1.3, 2)
};
result[1].setTranslateX(2);
result[0].setTranslateX(-1);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Sphere(1),
new Sphere(1.5)
};
result[1].setTranslateX(1.5);
result[1].setTranslateY(1.5);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Box(4, 4, 1),
new Box(2, 2, 2)
};
result[0].setRotationAxis(Rotate.Y_AXIS);
result[0].setRotate(45);
result[1].setRotationAxis(Rotate.X_AXIS);
result[1].setRotate(45);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Box(2, 2, 2),
new Cylinder(1, 4)
};
result[0].setTranslateX(1);
result[0].setRotationAxis(Rotate.Y_AXIS);
result[0].setRotate(45);
result[1].setRotationAxis(Rotate.X_AXIS);
result[1].setRotate(45);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Cylinder(1, 4),
new Cylinder(1, 4)
};
result[0].setTranslateX(1);
result[0].setRotationAxis(Rotate.Y_AXIS);
result[0].setRotate(45);
result[1].setRotationAxis(Rotate.X_AXIS);
result[1].setRotate(45);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Box(2, 2, 2),
new Sphere(2)
};
result[1].setTranslateX(1);
result[1].setTranslateY(1);
result[0].setRotationAxis(Rotate.Y_AXIS);
result[0].setRotate(45);
return result;
}
项目:openjfx-8u-dev-tests
文件:IntersectionTestApp.java
@Override
protected Shape3D[] getShapes() {
Shape3D[] result = {
new Cylinder(1.5, 4),
new Sphere(1.5)
};
result[1].setTranslateX(1);
return result;
}
项目:openjfx-8u-dev-tests
文件:SingleLightingTestApp.java
protected Group buildGroup() {
material = new PhongMaterial(Color.RED);
ss = new SemiSphere();
Shape3D sh = ss.getMesh();
sh.setMaterial(material);
sh.setScaleX(SCALE);
sh.setScaleY(SCALE);
sh.setScaleZ(SCALE);
lightGroup = new Group();
lightmv = new GroupMover(lightGroup);
root = new Group(lightmv.getGroup(), ss.getGroup());
rootmv = new GroupMover(root);
return rootmv.getGroup();
}
项目:eavp
文件:FXVertexViewTester.java
/**
* Test that the edge can be drawn transparently
*/
@Test @Ignore
public void checkTransparency() {
// Create a view for a vertex
FXVertexView view = new FXVertexView(new Vertex(0, 0, 0));
// The view should start off opaque
assertFalse(view.isTransparent());
// Make the view transparent
view.setTransparentMode(true);
// Check that the transparency flag is set
assertTrue(view.isTransparent());
// Whether a sphere shape has been found while searching the JavaFX
// node's children.
boolean sphereFound = false;
// Get the group containing the node
Representation<Group> representation = view.getRepresentation();
// Search all of the node's children
for (Node node : (representation.getData()).getChildren()) {
// If the child is a 3D shape, it should be transparent
if (node instanceof Shape3D) {
assertTrue(((Shape3D) node).getOpacity() == 0d);
sphereFound = true;
break;
}
}
// A child sphere corresponding to the vertex should have been found
assertTrue(sphereFound);
}
项目:eavp
文件:FXVertexViewTester.java
/**
* Test that the vertex can be drawn in wireframe mode
*/
@Test @Ignore
public void checkWireframe() {
// Create a view for a vertex
FXVertexView view = new FXVertexView(new Vertex(0, 0, 0));
// The view should start off opaque
assertFalse(view.isWireframe());
// Make the view transparent
view.setWireframeMode(true);
// Check that the transparency flag is set
assertTrue(view.isWireframe());
// Whether a sphere shape has been found while searching the JavaFX
// node's children.
boolean sphereFound = false;
// Get the group containing the node
Representation<Group> representation = view.getRepresentation();
// Search all of the node's children
for (Node node : (representation.getData()).getChildren()) {
// If the child is a 3D shape, it should be transparent
if (node instanceof Shape3D) {
assertTrue(((Shape3D) node).getDrawMode() == DrawMode.LINE);
sphereFound = true;
break;
}
}
// A child sphere corresponding to the vertex should have been found
assertTrue(sphereFound);
}
项目:fr.xs.jtk
文件:ScatterPlot.java
private Shape3D createDefaultNode(double radius) {
switch(defaultNodeType) {
case SPHERE: return new Sphere(radius);
case CUBE: return new Box(radius, radius, radius);
default: return new Box(radius, radius, radius);
}
}
项目:FXyzLib
文件:ScatterPlot.java
private Shape3D createDefaultNode(double radius) {
switch(defaultNodeType) {
case SPHERE: return new Sphere(radius);
case CUBE: return new Box(radius, radius, radius);
default: return new Box(radius, radius, radius);
}
}
项目:javafx-dpi-scaling
文件:AdjusterTest.java
@Test
public void testGetShape3DAdjuster() {
Adjuster adjuster = Adjuster.getAdjuster(Shape3D.class);
assertThat(adjuster, is(instanceOf(NodeAdjuster.class)));
assertThat(adjuster.getNodeClass(), is(sameInstance(Node.class)));
}
项目:FX3DAndroid
文件:ScatterPlot.java
private Shape3D createDefaultNode(double radius) {
switch(defaultNodeType) {
case SPHERE: return new Sphere(radius);
case CUBE: return new Box(radius, radius, radius);
default: return new Box(radius, radius, radius);
}
}
项目:openjfx-8u-dev-tests
文件:BoxTestApp.java
@Override
public Shape3D getShape() {
box = new Box(2, 2, 2);
return box;
}
项目:openjfx-8u-dev-tests
文件:MeshTestApp.java
@Override
protected Shape3D getShape() {
triMesh = buildTriMesh();
meshView = new MeshView(triMesh);
return meshView;
}
项目:openjfx-8u-dev-tests
文件:LightScopeTestApp.java
private Group buildSingle(Shape3D shape) {
Group grp = new Group(shape);
nodes.add(shape);
return grp;
}
项目:eavp
文件:FXLinearEdgeViewTester.java
/**
* Test that the edge can be drawn transparently
*/
@Test @Ignore
public void checkTransparency() {
// Create a view for an edge
FXVertexController v1 = new FXVertexController(new Vertex(0, 0, 0),
new FXVertexView(new Vertex(0, 0, 0)));
FXVertexController v2 = new FXVertexController(new Vertex(1, 1, 1),
new FXVertexView(new Vertex(1, 1, 1)));
LinearEdge edge = new LinearEdge(v1, v2);
FXLinearEdgeView view = new FXLinearEdgeView(edge);
// The view should start off opaque
assertFalse(view.isTransparent());
// Make the view transparent
view.setTransparentMode(true);
// Check that the transparency flag is set
assertTrue(view.isTransparent());
// Whether a clinder shape has been found while searching the JavaFX
// node's
// children.
boolean edgeFound = false;
// Get the group containing the node
Representation<Group> representation = view.getRepresentation();
// Search all of the node's children
for (Node node : (representation.getData()).getChildren()) {
// If the child is a 3D shape, it should be transparent
if (node instanceof Shape3D) {
assertTrue(((Shape3D) node).getOpacity() == 0d);
edgeFound = true;
break;
}
}
// A child box corresponding to the cube should have been found
assertTrue(edgeFound);
}
项目:eavp
文件:FXLinearEdgeViewTester.java
/**
* Test that the edge can be drawn transparently
*/
@Test @Ignore
public void checkWireframe() {
// Create a view for an edge
FXVertexController v1 = new FXVertexController(new Vertex(0, 0, 0),
new FXVertexView(new Vertex(0, 0, 0)));
FXVertexController v2 = new FXVertexController(new Vertex(1, 1, 1),
new FXVertexView(new Vertex(1, 1, 1)));
LinearEdge edge = new LinearEdge(v1, v2);
FXLinearEdgeView view = new FXLinearEdgeView(edge);
// The view should start off opaque
assertFalse(view.isWireframe());
// Make the view transparent
view.setWireframeMode(true);
// Check that the transparency flag is set
assertTrue(view.isWireframe());
// Whether a clinder shape has been found while searching the JavaFX
// node's children.
boolean edgeFound = false;
// Get the group containing the node
Representation<Group> representation = view.getRepresentation();
// Search all of the node's children
for (Node node : (representation.getData()).getChildren()) {
// If the child is a 3D shape, it should be transparent
if (node instanceof Shape3D) {
assertTrue(((Shape3D) node).getDrawMode() == DrawMode.LINE);
edgeFound = true;
break;
}
}
// A child box corresponding to the cube should have been found
assertTrue(edgeFound);
}
项目:eavp
文件:FXViewer.java
/**
* <p>
* Hooks up JavaFX picking with JFace selections.
* </p>
*/
protected void wireSelectionHandling() {
scene.setOnMousePressed(new EventHandler<MouseEvent>() {
Group lastSelection = null;
@Override
public void handle(MouseEvent event) {
// Pick
PickResult pickResult = event.getPickResult();
Node intersectedNode = pickResult.getIntersectedNode();
if (intersectedNode == null) {
return;
}
if (!(intersectedNode instanceof Shape3D)) {
return;
}
// Resolve the parent
Group nodeParent = (Group) intersectedNode.getParent();
if (nodeParent == lastSelection) {
return;
}
// Resolve the shape
IRenderElement modelShape = (IRenderElement) nodeParent
.getProperties().get(ShapeController.class);
if (modelShape == null) {
return;
}
// Create and set the viewer selection
// (event gets fired in parent class)
FXSelection selection = new FXSelection(modelShape);
setSelection(selection);
lastSelection = nodeParent;
}
});
}
项目:eavp
文件:FXMeshViewer.java
/**
* The function called whenever the user clicks the mouse while in Edit
* mode.
*
* @param event
* The event that prompted the invocation of this function.
*/
private void handleEditModeClick(MouseEvent event) {
// Get the mouse position
mousePosX = event.getSceneX();
mousePosY = event.getSceneY();
mouseOldX = event.getSceneX();
mouseOldY = event.getSceneY();
// Get the user's selection
PickResult pickResult = event.getPickResult();
Node intersectedNode = pickResult.getIntersectedNode();
if (intersectedNode instanceof Shape3D) {
// Resolve the parent
Group nodeParent = (Group) intersectedNode.getParent();
// Resolve the shape
IController modelShape = (IController) nodeParent.getProperties()
.get(IController.class);
// If the user clicked a vertex, handle it
if (modelShape instanceof VertexController) {
// If shift is down, add the vertex to the selection
if (event.isShiftDown()) {
selectedVertices.add(modelShape);
modelShape.setProperty(MeshProperty.SELECTED, "True");
}
// If shift is not down and control is, either add the
// vertex to the selection if it is not present already
// or remove it if it is.
else if (event.isControlDown()) {
if (selectedVertices.contains(modelShape)) {
selectedVertices.remove(modelShape);
modelShape.setProperty(MeshProperty.SELECTED, "False");
}
else {
selectedVertices.add(modelShape);
modelShape.setProperty(MeshProperty.SELECTED, "True");
}
}
// If nothing is pressed, select that vertex and nothing
// else
else {
clearSelection();
selectedVertices.add(modelShape);
modelShape.setProperty(MeshProperty.SELECTED, "True");
}
}
}
}
项目:fr.xs.jtk
文件:BillboardBehavior.java
/**
* Updates the transformation matrix.
* can change the Translate for fixed distance
*/
default void updateMatrix(){
Transform cam = getOther().getLocalToSceneTransform(),
self = getBillboardNode().getLocalToSceneTransform();
Bounds b;
double cX,
cY,
cZ;
if(!(getBillboardNode() instanceof Shape3D)){
b = getBillboardNode().getBoundsInLocal();
cX = b.getWidth() / 2;
cY = b.getHeight() / 2;
cZ = b.getDepth() / 2;
}else{
cX = self.getTx();
cY = self.getTy();
cZ = self.getTz();
}
Point3D camPos = new Point3D(cam.getTx(), cam.getTy(), cam.getTz());
Point3D selfPos = new Point3D(cX, cY, cZ);
Vector3D up = Vector3D.UP,
forward = new Vector3D(
(selfPos.getX()) - camPos.getX(),
(selfPos.getY()) - camPos.getY(),
(selfPos.getZ()) - camPos.getZ()
).toNormal(),
right = up.crossProduct(forward).toNormal();
up = forward.crossProduct(right).toNormal();
switch(getBillboardMode()){
case SPHERICAL:
affine.setMxx(right.x); affine.setMxy(up.x); affine.setMzx(forward.x);
affine.setMyx(right.y); affine.setMyy(up.y); affine.setMzy(forward.y);
affine.setMzx(right.z); affine.setMzy(up.z); affine.setMzz(forward.z);
affine.setTx(cX * (1 - affine.getMxx()) - cY * affine.getMxy() - cZ * affine.getMxz());
affine.setTy(cY * (1 - affine.getMyy()) - cX * affine.getMyx() - cZ * affine.getMyz());
affine.setTz(cZ * (1 - affine.getMzz()) - cX * affine.getMzx() - cY * affine.getMzy());
break;
case CYLINDRICAL:
affine.setMxx(right.x); affine.setMxy(0); affine.setMzx(forward.x);
affine.setMyx(0); affine.setMyy(1); affine.setMzy(0);
affine.setMzx(right.z); affine.setMzy(0); affine.setMzz(forward.z);
affine.setTx(cX * (1 - affine.getMxx()) - cY * affine.getMxy() - cZ * affine.getMxz());
affine.setTy(cY * (1 - affine.getMyy()) - cX * affine.getMyx() - cZ * affine.getMyz());
affine.setTz(cZ * (1 - affine.getMzz()) - cX * affine.getMzx() - cY * affine.getMzy());
break;
}
}
项目:FXyzLib
文件:BillboardBehavior.java
/**
* Updates the transformation matrix.
* can change the Translate for fixed distance
*/
default void updateMatrix(){
Transform cam = getOther().getLocalToSceneTransform(),
self = getBillboardNode().getLocalToSceneTransform();
Bounds b;
double cX,
cY,
cZ;
if(!(getBillboardNode() instanceof Shape3D)){
b = getBillboardNode().getBoundsInLocal();
cX = b.getWidth() / 2;
cY = b.getHeight() / 2;
cZ = b.getDepth() / 2;
}else{
cX = self.getTx();
cY = self.getTy();
cZ = self.getTz();
}
Point3D camPos = new Point3D(cam.getTx(), cam.getTy(), cam.getTz());
Point3D selfPos = new Point3D(cX, cY, cZ);
Vector3D up = Vector3D.UP,
forward = new Vector3D(
(selfPos.getX()) - camPos.getX(),
(selfPos.getY()) - camPos.getY(),
(selfPos.getZ()) - camPos.getZ()
).toNormal(),
right = up.crossProduct(forward).toNormal();
up = forward.crossProduct(right).toNormal();
switch(getBillboardMode()){
case SPHERICAL:
affine.setMxx(right.x); affine.setMxy(up.x); affine.setMzx(forward.x);
affine.setMyx(right.y); affine.setMyy(up.y); affine.setMzy(forward.y);
affine.setMzx(right.z); affine.setMzy(up.z); affine.setMzz(forward.z);
affine.setTx(cX * (1 - affine.getMxx()) - cY * affine.getMxy() - cZ * affine.getMxz());
affine.setTy(cY * (1 - affine.getMyy()) - cX * affine.getMyx() - cZ * affine.getMyz());
affine.setTz(cZ * (1 - affine.getMzz()) - cX * affine.getMzx() - cY * affine.getMzy());
break;
case CYLINDRICAL:
affine.setMxx(right.x); affine.setMxy(0); affine.setMzx(forward.x);
affine.setMyx(0); affine.setMyy(1); affine.setMzy(0);
affine.setMzx(right.z); affine.setMzy(0); affine.setMzz(forward.z);
affine.setTx(cX * (1 - affine.getMxx()) - cY * affine.getMxy() - cZ * affine.getMxz());
affine.setTy(cY * (1 - affine.getMyy()) - cX * affine.getMyx() - cZ * affine.getMyz());
affine.setTz(cZ * (1 - affine.getMzz()) - cX * affine.getMzx() - cY * affine.getMzy());
break;
}
}
项目:VRL-JFXVis
文件:UGXReader.java
/**Adds the low resolution interaction to the low resolution model.
* Do not use this on the high resolution model.
* @param shape the node (spheres,MeshViews) that should be selectable
**/
private void addLowResolutionInteraction(Shape3D shape){
shape.addEventHandler(MouseEvent.MOUSE_CLICKED, mouseClick -> {
if (mouseClick.getButton().toString().matches("SECONDARY")) {
Node pickedNode = mouseClick.getPickResult().getIntersectedNode();
if (debugMode) {
System.out.println("CLICKED NODE "+pickedNode);
}
//handleSelection(subsetNodeSelection, subsetNodeSelectionMaterial, pickedNode, new MeshView());
handleLowResolutionSelection(pickedNode);
}
});
}
项目:openjfx-8u-dev-tests
文件:ShapesTestCase.java
protected abstract Shape3D getShape();
项目:openjfx-8u-dev-tests
文件:BaseCase.java
protected abstract Shape3D[] getShapes();