Yes,
mainTransformGroup is a TransformGroup.
Then I add mainTransformGroup to my mainBranchGroup
Franck
-----Original Message-----
From: Discussion list for Java 3D API
<[EMAIL PROTECTED]>@SUNGARD On Behalf Of David Murtagh
<[EMAIL PROTECTED]>
Sent: Monday, February 09, 2004 2:36 PM
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] java 3d room
Thanks for that.
In the test file, do u add the buildWall() method to a
branchGroup?
-----Original Message-----
From: Franck Calzada <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Date: Mon, 9 Feb 2004 05:10:06 -0500
Subject: Re: [JAVA3D] java 3d room
Here is my buildWall() method:
carreauSize is the size of my texture (n*n) (could be
improved to (n*m)
p1 and p2 are corner point (opposite)
You can see the result at:
http://membres.lycos.fr/franckcalzada/Billard3D/Pool.html
Franck
private void buildMultiTexturedWall(
Appearance floorAp , int carreauSize,
Point3d p1, Point3d p2
) {
BranchGroup bg = new BranchGroup();
Vector3d dir = new Vector3d(
p2.x - p1.x,
p2.y - p1.y,
p2.z - p1.z
);
double wallLenght = Math.sqrt(dir.x*dir.x +
dir.y*dir.y);
int itePlan = (int) wallLenght/carreauSize;
int iteZ = (int) dir.z/carreauSize;
Vector3d dirScaled = new Vector3d(
dir.x/itePlan,
dir.y/itePlan,
carreauSize
);
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_TRANSFORM_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);
}
}
mainTransformGroup.addChild(bg); //added
multiTexture
}
-----Original Message-----
From: Discussion list for Java 3D API
<[EMAIL PROTECTED]>@SUNGARD On Behalf Of Mark
McKay
<[EMAIL PROTECTED]>
Sent: Sunday, February 08, 2004 6:20 PM
To: [EMAIL PROTECTED]
Subject: Re: [JAVA3D] java 3d room
David Murtagh wrote:
>Hi all,
>
>Im new enough to java 3d and could do with
any help!
>Anyone have any ideas bout making a
wall/room in java 3d.
Have tried this code but it wont work properly. Any help is
gratefully
accepted,
>Thanks.
>
>Code:
>
>public void buildWall(int from, int
to)
> {
> QuadArray plane = new
QuadArray(4,
GeometryArray.COORDINATES|GeometryArray.TEXTURE_COORDINATE_2);
>
> Point3f[] pts = new Point3f[4];
> plane.setCoordinate(0, gridPoints[from]);
> plane.setCoordinate(1, gridPoints[to]);
>
>
> float x1 = gridPoints[to].x;
> float y1 = gridPoints[to].y;
> float z1 = gridPoints[to].z;
> plane.setCoordinate(2, new Point3f(x1,
y1 + height, z1));
>
> float x = gridPoints[from].x;
> float y = gridPoints[from].y;
> float z = gridPoints[from].z;
> plane.setCoordinate(3, new Point3f(x, y
+ height, z));
>
> TexCoord2f q = new
TexCoord2f();
> q.set(0.0f, 0.0f);
> plane.setTextureCoordinate(0, 0, q);
> q.set(1.0f, 0.0f);
> plane.setTextureCoordinate(0, 1, q);
> q.set(1.0f, 1.0f);
>
>
> plane.setTextureCoordinate(0, 2, q);
> q.set(0.0f, 1.0f);
> plane.setTextureCoordinate(0, 3, q);
>
> Shape3D wall = new Shape3D();
> wall.setGeometry(plane);
>
> Appearance appear = new
Appearance();
> appear.setMaterial(new Material());
> appear.setPolygonAttributes(poly);
>
> TextureLoader texLoader = new
TextureLoader("bricks.jpg", null);
> Texture2D texture = (Texture2D)
texLoader.getTexture();
>
> TextureAttributes texAttr = new
TextureAttributes();
>
>
texAttr.setTextureMode(TextureAttributes.MODULATE);
> wall.setAppearance(appear);
>
> wallGroup.addChild(wall);
>
>===========================================================================
>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".
>
>
>
You could create a room in a 3D modeling program such as
Maya and export
it to a file (such as VRML) and use jX3D to load it into
memory. If you
don't have money to buy such a program, you may want to
download
Blender, a fairly decent freeware modeling
program.
Or you could create a Box object and scale it to an
appropriate size.
Creating geometry by typing in a lot of datapoints is very
painful and I
would not recommend it.
Mark McKay
--
http://www.kitfox.com
===========================================================================
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".
Confidentiality Notice: This email and any files transmitted
with it are
confidential and are intended solely for the use of the
individual or entity
to whom they are addressed. If you are not the original
recipient or the
person responsible for delivering the email to the intended
recipient, be
advised that you have received this email in error, and that
any use,
dissemination, forwarding, printing, or copying of this
email is strictly
prohibited. If you received this email in error, please
notify the
originator immediately.
===========================================================================
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".
Confidentiality Notice: This email and any files transmitted with it are
confidential and are intended solely for the use of the individual or entity
to whom they are addressed. If you are not the original recipient or the
person responsible for delivering the email to the intended recipient, be
advised that you have received this email in error, and that any use,
dissemination, forwarding, printing, or copying of this email is strictly
prohibited. If you received this email in error, please notify the
originator immediately.
===========================================================================
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".