are the bounds set?  I didn't have much time to look at your code, but
typically the issue is with the bounds....
or you have no lights?


   Mario

Mariusz Zaczek
NASA - Johnson Space Center
Automated Vehicles and Orbit Analysis / DM35
Flight Design and Dynamics Division
Mission Operations Directorate
Bldg: 30A     Room: 3040A

Disclaimer: "The opinions, observations and comments expressed in my email
             are strictly my own and do not necessarily reflect those of
NASA."

"Failure is never quite so frightening as regret." - Cliff's wife (The Dish)


-----Original Message-----
From: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED] Behalf Of David Murtagh
Sent: Saturday, February 14, 2004 8:02 AM
To: [EMAIL PROTECTED]
Subject: [JAVA3D] Frustration!!!


Hi all,

Anyone give me any pointers as to why nothing is appearing in my scene. Its
probably something easy but its driving me mad.
Thanks,
Dave.

Wall Class:
import java.applet.*;
import java.awt.*;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.keyboard.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.*;
import com.sun.j3d.loaders.*;
import java.io.*;


import java.util.*;


public class Wall extends Applet
{
        private void buildMultiTexturedWall(Appearance floorAp , int
roomSize, Point3d p1,Point3d p2)
        {
                TransformGroup transformGroup = null;

                BranchGroup     bg = new BranchGroup();

                Vector3d dir = new Vector3d(p2.x - p1.x, p2.y - p1.y, p2.z -
p1.z);

                double wallLength =     Math.sqrt(dir.x*dir.x +
dir.y*dir.y);

                int     itePlan = (int) wallLength/roomSize;

                int     iteZ = (int) dir.z/roomSize;

                Vector3d dirScaled = new Vector3d(dir.x/itePlan,
dir.y/itePlan, roomSize);

                for     (int j = 0;     j <     iteZ; j++)
                {
                        for     (int i = 0;     i <     itePlan; i++)
                        {
                                GeometryArray floor     = new
QuadArray(4,QuadArray.COORDINATES |
                                QuadArray.TEXTURE_COORDINATE_2);

floor.setCapability(QuadArray.ALLOW_COLOR_WRITE|TransformGroup.ALLOW_TRANSFO
RM_READ

|TransformGroup.ALLOW_TRANSFORM_WRITE|Group.ALLOW_CHILDREN_EXTEND|
                                Group.ALLOW_CHILDREN_READ|
Group.ALLOW_CHILDREN_WRITE);

                                Point3d pp0     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z
                                + j*dirScaled.z);

                                Point3d pp1     = new Point3d(p1.x +
(i+1)*dirScaled.x , p1.y +
                                (i+1)*dirScaled.y ,     p1.z +
j*dirScaled.z);

                                Point3d pp2     = new Point3d(p1.x +
(i+1)*dirScaled.x, p1.y +
                                (i+1)*dirScaled.y, p1.z +
(j+1)*dirScaled.z);

                                Point3d pp3     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z       +
                                (j+1)*dirScaled.z);

                                if ((p1.x <     0.0) && (p2.x < 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.x > 0.0) && (p2.x > 0.0))
                                {
                                        floor.setCoordinate(3,pp0);
                                        floor.setCoordinate(2,pp1);
                                        floor.setCoordinate(1,pp2);
                                        floor.setCoordinate(0,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.y > 0.0) && (p2.y > 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(3, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(2, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(1, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(0, new
Point2f(1, 0));
                                }
                                else if ((p1.y < 0.0) && (p2.y < 0.0))
                                {
                                floor.setCoordinate(3,pp0);
                                floor.setCoordinate(2,pp1);
                                floor.setCoordinate(1,pp2);
                                floor.setCoordinate(0,pp3);

                                floor.setTextureCoordinate(3, new Point2f(0,
0));
                                floor.setTextureCoordinate(2, new Point2f(0,
1));
                                floor.setTextureCoordinate(1, new Point2f(1,
1));
                                floor.setTextureCoordinate(0, new Point2f(1,
0));
                                }


                        Shape3D floorShape3D = new Shape3D(floor, floorAp);

floorShape3D.getGeometry().setCapability(Geometry.ALLOW_INTERSECT);

                        bg.addChild(floorShape3D);
                }
        }

        transformGroup.addChild(bg); //added multiTexture
        }
}

And a test class:

import java.applet.*;
import java.awt.*;
import java.awt.Frame;
import java.awt.event.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import com.sun.j3d.utils.behaviors.keyboard.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import javax.swing.*;
import com.sun.j3d.loaders.*;
import java.io.*;
import com.sun.j3d.utils.image.TextureLoader;

import java.util.*;


public class test extends Applet
{
        BranchGroup branchGroup;
        Canvas3D c;
        SimpleUniverse u;
        private BoundingSphere bounds;
                String imageName;


    public BranchGroup createSceneGraph()
    {
                BranchGroup objRoot = new BranchGroup();
                TransformGroup objTrans = new TransformGroup();

objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
                objRoot.addChild(objTrans);
                return objRoot;
    }


    //////////////////////////////////////////////
    //Adds the wall to the scene
    private BranchGroup addWall()
    {
        Appearance floorAp = new Appearance();
        String filename = "stripe.gif";
        TextureLoader loader = new TextureLoader(filename, null);
        ImageComponent2D image = loader.getImage();

        if(image == null)
        {
            System.out.println("load failed for texture: "+filename);
        }

              // can't use parameterless constuctor
              Texture2D texture = new Texture2D(Texture.BASE_LEVEL,
Texture.RGBA,
                                                image.getWidth(),
image.getHeight());
              texture.setImage(0, image);
              //texture.setEnable(false);

              floorAp.setTexture(texture);

              floorAp.setTransparencyAttributes(
                   new
TransparencyAttributes(TransparencyAttributes.FASTEST, 0.1f));

            BranchGroup branchGroup = new BranchGroup();
            WallManager wall = new WallManager(branchGroup);

                Point3d p1 = new Point3d(10,1,1);
                Point3d p2 = new Point3d(1,0,10);

                //something here. Think its coordinates. Look up point3d
coordinates!!!!!!!!
                wall.buildMultiTexturedWall(floorAp, 40, p1, p2);

                bounds = new BoundingSphere(new Point3d(0.0,0.0,0.0),
100.0);
        branchGroup.compile();

        return branchGroup;
     }

    public void buildMultiTexturedWall(Appearance floorAp, int roomSize,
Point3d p1,Point3d p2)
        {
                TransformGroup transformGroup = null;

                BranchGroup     bg = new BranchGroup();

                Vector3d dir = new Vector3d(p2.x - p1.x, p2.y - p1.y, p2.z -
p1.z);

                double wallLength =     Math.sqrt(dir.x*dir.x +
dir.y*dir.y);

                int     itePlan = (int) wallLength/roomSize;

                int     iteZ = (int) dir.z/roomSize;

                Vector3d dirScaled = new Vector3d(dir.x/itePlan,
dir.y/itePlan, roomSize);

                for     (int j = 0;     j <     iteZ; j++)
                {
                        for     (int i = 0;     i <     itePlan; i++)
                        {
                                GeometryArray floor     = new
QuadArray(4,QuadArray.COORDINATES |
                                QuadArray.TEXTURE_COORDINATE_2);

floor.setCapability(QuadArray.ALLOW_COLOR_WRITE|TransformGroup.ALLOW_TRANSFO
RM_READ

|TransformGroup.ALLOW_TRANSFORM_WRITE|Group.ALLOW_CHILDREN_EXTEND|
                                Group.ALLOW_CHILDREN_READ|
Group.ALLOW_CHILDREN_WRITE);

                                Point3d pp0     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z
                                + j*dirScaled.z);

                                Point3d pp1     = new Point3d(p1.x +
(i+1)*dirScaled.x , p1.y +
                                (i+1)*dirScaled.y ,     p1.z +
j*dirScaled.z);

                                Point3d pp2     = new Point3d(p1.x +
(i+1)*dirScaled.x, p1.y +
                                (i+1)*dirScaled.y, p1.z +
(j+1)*dirScaled.z);

                                Point3d pp3     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z       +
                                (j+1)*dirScaled.z);

                                if ((p1.x <     0.0) && (p2.x < 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.x > 0.0) && (p2.x > 0.0))
                                {
                                        floor.setCoordinate(3,pp0);
                                        floor.setCoordinate(2,pp1);
                                        floor.setCoordinate(1,pp2);
                                        floor.setCoordinate(0,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.y > 0.0) && (p2.y > 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(3, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(2, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(1, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(0, new
Point2f(1, 0));
                                }
                                else if ((p1.y < 0.0) && (p2.y < 0.0))
                                {
                                floor.setCoordinate(3,pp0);
                                floor.setCoordinate(2,pp1);
                                floor.setCoordinate(1,pp2);
                                floor.setCoordinate(0,pp3);

                                floor.setTextureCoordinate(3, new Point2f(0,
0));
                                floor.setTextureCoordinate(2, new Point2f(0,
1));
                                floor.setTextureCoordinate(1, new Point2f(1,
1));
                                floor.setTextureCoordinate(0, new Point2f(1,
0));
                                }


                                Shape3D floorShape3D = new Shape3D(floor,
floorAp);

floorShape3D.getGeometry().setCapability(Geometry.ALLOW_INTERSECT);

                                bg.addChild(floorShape3D);
                        }
                }

        transformGroup.addChild(bg); //added multiTexture
        }


         public void init()
        {

            setLayout(new BorderLayout());
            GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
            c = new Canvas3D(config);
            add("Center", c);
            u = new SimpleUniverse(c);


                BranchGroup scene = createSceneGraph();
                u.addBranchGraph(addWall());
                        u.addBranchGraph(scene);

        }


    public static void main(String[] args)
    {
        Frame frame = new MainFrame(new test(), 600, 400);
    }
}


wall Manager:
import java.io.*;
import javax.media.j3d.*;
import javax.vecmath.*;

public class WallManager
{
        BranchGroup branchGroup;

        public WallManager(BranchGroup b)
        {
                branchGroup = b;
        }

        public void buildMultiTexturedWall(Appearance floorAp , int
roomSize, Point3d p1,Point3d p2)
        {
                TransformGroup transformGroup = null;

                BranchGroup     bg = new BranchGroup();

                Vector3d dir = new Vector3d(p2.x - p1.x, p2.y - p1.y, p2.z -
p1.z);

                double wallLength =     Math.sqrt(dir.x*dir.x +
dir.y*dir.y);

                int     itePlan = (int) wallLength/roomSize;

                int     iteZ = (int) dir.z/roomSize;

                Vector3d dirScaled = new Vector3d(dir.x/itePlan,
dir.y/itePlan, roomSize);

                for     (int j = 0;     j <     iteZ; j++)
                {
                        for     (int i = 0;     i <     itePlan; i++)
                        {
                                GeometryArray floor     = new
QuadArray(4,QuadArray.COORDINATES |
                                QuadArray.TEXTURE_COORDINATE_2);

floor.setCapability(QuadArray.ALLOW_COLOR_WRITE|TransformGroup.ALLOW_TRANSFO
RM_READ

|TransformGroup.ALLOW_TRANSFORM_WRITE|Group.ALLOW_CHILDREN_EXTEND|
                                Group.ALLOW_CHILDREN_READ|
Group.ALLOW_CHILDREN_WRITE);

                                Point3d pp0     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z
                                + j*dirScaled.z);

                                Point3d pp1     = new Point3d(p1.x +
(i+1)*dirScaled.x , p1.y +
                                (i+1)*dirScaled.y ,     p1.z +
j*dirScaled.z);

                                Point3d pp2     = new Point3d(p1.x +
(i+1)*dirScaled.x, p1.y +
                                (i+1)*dirScaled.y, p1.z +
(j+1)*dirScaled.z);

                                Point3d pp3     = new Point3d(p1.x +
i*dirScaled.x, p1.y + i*dirScaled.y, p1.z       +
                                (j+1)*dirScaled.z);

                                if ((p1.x <     0.0) && (p2.x < 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.x > 0.0) && (p2.x > 0.0))
                                {
                                        floor.setCoordinate(3,pp0);
                                        floor.setCoordinate(2,pp1);
                                        floor.setCoordinate(1,pp2);
                                        floor.setCoordinate(0,pp3);

                                        floor.setTextureCoordinate(0, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(1, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(2, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(3, new
Point2f(1, 0));
                                }

                                else if ((p1.y > 0.0) && (p2.y > 0.0))
                                {
                                        floor.setCoordinate(0,pp0);
                                        floor.setCoordinate(1,pp1);
                                        floor.setCoordinate(2,pp2);
                                        floor.setCoordinate(3,pp3);

                                        floor.setTextureCoordinate(3, new
Point2f(0, 0));
                                        floor.setTextureCoordinate(2, new
Point2f(0, 1));
                                        floor.setTextureCoordinate(1, new
Point2f(1, 1));
                                        floor.setTextureCoordinate(0, new
Point2f(1, 0));
                                }
                                else if ((p1.y < 0.0) && (p2.y < 0.0))
                                {
                                floor.setCoordinate(3,pp0);
                                floor.setCoordinate(2,pp1);
                                floor.setCoordinate(1,pp2);
                                floor.setCoordinate(0,pp3);

                                floor.setTextureCoordinate(3, new Point2f(0,
0));
                                floor.setTextureCoordinate(2, new Point2f(0,
1));
                                floor.setTextureCoordinate(1, new Point2f(1,
1));
                                floor.setTextureCoordinate(0, new Point2f(1,
0));
                                }


                                Shape3D floorShape3D = new Shape3D(floor,
floorAp);

floorShape3D.getGeometry().setCapability(Geometry.ALLOW_INTERSECT);

                                bg.addChild(floorShape3D);
                        }
                }

        }
}

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to