Hi Bram

Problem here isnt the transform its the box. I believe the values of
passed to a Box object are from center out, so a Box(1f,1f,1f) will
actually give a physical  cube with each  side length 2f..

So your value of 0.5f you use for x length is creating a  box of 1f
wide, youre then only moving 0.25 along x length (length/2.0f), 1/4 of
box width

I imagine your screen shot shows the corner offset...  I cant access it
to examine/.

Martin...

Bram Biesbrouck wrote:

Hi all,

I'm having troubles with the translation of a simple Box in Java3D.
I created a TransformGroup-subclass, called Room like this:

<START CODE>

public class Room
       extends TransformGroup
{
   //constants
   ...

   private Box box = null;

   public Room(float width, float length, Color3f color, String
caption)
   {
       super();
       this.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE |
TransformGroup.ALLOW_BOUNDS_WRITE | TransformGroup.ALLOW_BOUNDS_READ);
       this.setBoundsAutoCompute(true);

       Appearance ap = new Appearance();
       ap.setColoringAttributes(new ColoringAttributes(color,
ColoringAttributes.NICEST));
       ap.setTransparencyAttributes(new TransparencyAttributes
(TransparencyAttributes.FASTEST, 0.5f));

       box = new Box(width, BOX_HEIGHT, length,
Primitive.GENERATE_NORMALS | Primitive.GEOMETRY_NOT_SHARED, ap);

       this.addChild(box);
   }
}

<END CODE>

I then call this function in a mail class like this:

<START CODE>

//CONSTANTS
private final float KITCHEN_X_LENGTH = 0.5f;
private final float KITCHEN_Y_LENGTH = 0.25f;

...

SimpleUniverse universe = new SimpleUniverse();
       universe.getViewingPlatform().setNominalViewingTransform();
       BranchGroup group = new BranchGroup();

       Room kitchen = new Room(KITCHEN_X_LENGTH, KITCHEN_Y_LENGTH,
KITCHEN_COLOR, "Kitchen");
       kitchen.getTransform(transform);
       transform.setTranslation(new Vector3d(-KITCHEN_X_LENGTH/2.0f,
0f, -KITCHEN_Y_LENGTH/2.0f));
       kitchen.setTransform(transform);
<END CODE>

The meaning of this is that the box gets translated to the upper left
(when looking a it from the Y-axe down), so that its lower right corner
is in the origin. However, the box doesn't translate like it's supposed
to. I took a screenshot of the result, it's at:
http://www.beligum.org/example.png
You can see that the box gets translated a bit, but not far enough.

Any help

Bram

===========================================================================
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