use of javax.media.j3d.Material in project ffx by mjschnie.
the class RendererCache method materialFactory.
/**
* <p>
* materialFactory</p>
*
* @param col a {@link javax.vecmath.Color3f} object.
* @return a {@link javax.media.j3d.Material} object.
*/
public static Material materialFactory(Color3f col) {
if (col == null) {
return null;
}
Material mat = materials.get(col);
if (mat == null) {
mat = new Material(col, BLACK, col, WHITE, 75.0f);
mat.setLightingEnable(true);
materials.put(col, mat);
}
return mat;
}
use of javax.media.j3d.Material in project ffx by mjschnie.
the class RendererCache method createAppearance.
private static Appearance createAppearance(Color3f col, ViewModel polygonType) {
Appearance ap = null;
if (shaderProgram != null) {
ShaderAppearance sap = new ShaderAppearance();
sap.setShaderProgram(shaderProgram);
ap = sap;
}
if (ap == null) {
ap = new Appearance();
}
Material mat = materialFactory(col);
ap.setMaterial(mat);
ap.setRenderingAttributes(renderingAttributes);
ap.setColoringAttributes(coloringAttributes);
ap.setLineAttributes(lineAttributes);
ap.setPointAttributes(pointAttributes);
if (polygonType == RendererCache.ViewModel.FILL) {
ap.setPolygonAttributes(fillPolygonAttributes);
fillAppearances.put(col, ap);
} else if (polygonType == RendererCache.ViewModel.POINTS) {
ap.setPolygonAttributes(pointPolygonAttributes);
pointAppearances.put(col, ap);
} else {
ap.setPolygonAttributes(linePolygonAttributes);
lineAppearances.put(col, ap);
}
return ap;
}
use of javax.media.j3d.Material in project ffx by mjschnie.
the class GraphicsAxis method createAxis.
/**
* <p>
* createAxis</p>
*/
public void createAxis() {
Appearance ap = new Appearance();
Color3f col = new Color3f(Color.lightGray);
Color3f black = new Color3f(Color.black);
Color3f white = new Color3f(Color.white);
Material mat = new Material(col, black, col, white, 50.0f);
mat.setLightingEnable(true);
ap.setMaterial(mat);
// X-Axis
Cone xcone = new Cone(2.0f, 3.0f, ap);
xcone.setUserData(this);
Transform3D xconeT3d = new Transform3D();
xconeT3d.setTranslation(new Vector3d(10.0f, 0.0f, 0.0f));
xconeT3d.setRotation(new AxisAngle4f(0.0f, 0.0f, 1.0f, (float) Math.PI / -2.0f));
TransformGroup xconeTG = new TransformGroup(xconeT3d);
xconeTG.addChild(xcone);
Cylinder xcylinder = new Cylinder(1.0f, 9.0f, ap);
xcylinder.setUserData(this);
Transform3D xcyT3d = new Transform3D();
xcyT3d.setTranslation(new Vector3d(4.5, 0.0, 0.0));
xcyT3d.setRotation(new AxisAngle4f(0.0f, 0.0f, 1.0f, (float) Math.PI / 2.0f));
TransformGroup xcyTG = new TransformGroup(xcyT3d);
xcyTG.addChild(xcylinder);
setCapabilities(xcone, xcylinder);
addChild(xconeTG);
addChild(xcyTG);
// Y-Axis
Cone ycone = new Cone(2.0f, 3.0f, ap);
ycone.setUserData(this);
Transform3D yconeT3d = new Transform3D();
yconeT3d.setTranslation(new Vector3d(0.0f, 10.0f, 0.0f));
TransformGroup yconeTG = new TransformGroup(yconeT3d);
yconeTG.addChild(ycone);
Cylinder ycylinder = new Cylinder(1.0f, 9.0f, ap);
ycylinder.setUserData(this);
Transform3D ycyT3d = new Transform3D();
ycyT3d.setTranslation(new Vector3d(0.0, 4.5, 0.0));
TransformGroup ycyTG = new TransformGroup(ycyT3d);
ycyTG.addChild(ycylinder);
setCapabilities(ycone, ycylinder);
addChild(yconeTG);
addChild(ycyTG);
// Z-Axis
Cone zcone = new Cone(2.0f, 3.0f, ap);
zcone.setUserData(this);
Transform3D zconeT3d = new Transform3D();
zconeT3d.setTranslation(new Vector3d(0.0f, 0.0f, 10.0f));
zconeT3d.setRotation(new AxisAngle4f(1.0f, 0.0f, 0.0f, (float) Math.PI / 2.0f));
TransformGroup zconeTG = new TransformGroup(zconeT3d);
zconeTG.addChild(zcone);
Cylinder zcylinder = new Cylinder(1.0f, 9.0f, ap);
zcylinder.setUserData(this);
Transform3D zcyT3d = new Transform3D();
zcyT3d.setTranslation(new Vector3d(0.0, 0.0, 4.5));
zcyT3d.setRotation(new AxisAngle4f(1.0f, 0.0f, 0.0f, (float) Math.PI / 2.0f));
TransformGroup zcyTG = new TransformGroup(zcyT3d);
zcyTG.addChild(zcylinder);
setCapabilities(zcone, zcylinder);
addChild(zconeTG);
addChild(zcyTG);
Sphere sphere = new Sphere(1.0f, ap);
if (!sphere.getShape().getGeometry(0).isCompiled() && !sphere.getShape().getGeometry(0).isLive()) {
PickTool.setCapabilities(sphere.getShape(), PickTool.INTERSECT_COORD);
}
addChild(sphere);
// Labels
ap = new Appearance();
col = new Color3f(Color.green);
mat = new Material(col, black, col, white, 50.0f);
mat.setLightingEnable(true);
ap.setMaterial(mat);
Font font = new Font("Arial", Font.PLAIN, 4);
Font3D font3d = new Font3D(font, new FontExtrusion());
addChild(createAxisLabel("X", font3d, ap, 11.0, 0.0, 0.0));
addChild(createAxisLabel("Y", font3d, ap, 0.0, 11.0, 0.0));
addChild(createAxisLabel("Z", font3d, ap, 0.0, 0.0, 11.0));
}
Aggregations