Search in sources :

Example 1 with Material

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;
}
Also used : Material(javax.media.j3d.Material)

Example 2 with Material

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;
}
Also used : ShaderAppearance(javax.media.j3d.ShaderAppearance) Material(javax.media.j3d.Material) ShaderAppearance(javax.media.j3d.ShaderAppearance) Appearance(javax.media.j3d.Appearance)

Example 3 with Material

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));
}
Also used : Cone(com.sun.j3d.utils.geometry.Cone) Font3D(javax.media.j3d.Font3D) Color3f(javax.vecmath.Color3f) Transform3D(javax.media.j3d.Transform3D) Material(javax.media.j3d.Material) Appearance(javax.media.j3d.Appearance) FontExtrusion(javax.media.j3d.FontExtrusion) Font(java.awt.Font) TransformGroup(javax.media.j3d.TransformGroup) Sphere(com.sun.j3d.utils.geometry.Sphere) Cylinder(com.sun.j3d.utils.geometry.Cylinder) Vector3d(javax.vecmath.Vector3d) AxisAngle4f(javax.vecmath.AxisAngle4f)

Aggregations

Material (javax.media.j3d.Material)3 Appearance (javax.media.j3d.Appearance)2 Cone (com.sun.j3d.utils.geometry.Cone)1 Cylinder (com.sun.j3d.utils.geometry.Cylinder)1 Sphere (com.sun.j3d.utils.geometry.Sphere)1 Font (java.awt.Font)1 Font3D (javax.media.j3d.Font3D)1 FontExtrusion (javax.media.j3d.FontExtrusion)1 ShaderAppearance (javax.media.j3d.ShaderAppearance)1 Transform3D (javax.media.j3d.Transform3D)1 TransformGroup (javax.media.j3d.TransformGroup)1 AxisAngle4f (javax.vecmath.AxisAngle4f)1 Color3f (javax.vecmath.Color3f)1 Vector3d (javax.vecmath.Vector3d)1