Desiree,

Doesn't your right side fold back onto itself? (point 3 to 4 is the
reverse of 2 to 3) (I didn't look beyond your right side) Thus you
really didn't create boxes... which of course you don't see until you
rotate them.

As an experiment, if you still suspect a problem with normals, perhaps
pump your data into a GeometryInfo object and then have it give you
normals.

- John Wright
Starfire Research

Desiree Hilbring wrote:
>
> o------------------------------------------------------------------------o
>
> On Thu, 8 Mar 2001, Yazel, David J. wrote:
>
> > I don't know enough of your app to understand what "looks wrong" to you.. In
> > the second screenshot there are empty bands in the middle of  the box.. is
> > that what you are referring to?
>
> Yes, that is what I was referring to. The overall box is createt from
> several smaller boxes, each has its own color and some of them are
> sometimes missing, during rotation
>
> If that happened during a rotation I would
> > suspect the normals were wrong.
>
> May be they are, I will thinks about them. Thanks Desiree
>
> Thats how I calculate them  now:
>
>         Point3f[] coords = new Point3f[16];
>
>         // Triangle Strip Array
>         // front
>         coords[0]=new Point3f(eastValue-w,heightValue+c,-northValue+l);
>         coords[1]=new Point3f(eastValue-w,heightValue-c,-northValue+l);
>         coords[2]=new Point3f(eastValue+w,heightValue+c,-northValue+l);
>         coords[3]=new Point3f(eastValue+w,heightValue-c,-northValue+l);
>         // right
>         coords[4]=new Point3f(eastValue+w,heightValue+c,-northValue-l);
>         coords[5]=new Point3f(eastValue+w,heightValue-c,-northValue-l);
>         // back
>         coords[6]=new Point3f(eastValue-w,heightValue+c,-northValue-l);
>         coords[7]=new Point3f(eastValue-w,heightValue-c,-northValue-l);
>
>         // top
>         coords[8]=new Point3f(eastValue+w,heightValue+c,-northValue+l);
>         coords[9]=new Point3f(eastValue+w,heightValue+c,-northValue-l);
>         coords[10]=new Point3f(eastValue-w,heightValue+c,-northValue+l);
>         coords[11]=new Point3f(eastValue-w,heightValue+c,-northValue-l);
>         // left
>         coords[12]=new Point3f(eastValue-w,heightValue-c,-northValue+l);
>         coords[13]=new Point3f(eastValue-w,heightValue-c,-northValue-l);
>         // down
>         coords[14]=new Point3f(eastValue+w,heightValue-c,-northValue+l);
>         coords[15]=new Point3f(eastValue+w,heightValue-c,-northValue-l);
>
>         /*
>         for(int j=0;j<coords.length;j++) {
>             System.out.println("c "+j+" "+coords[j]);
>         }
>         */
>
>         // direkter Fuellversuch
>         // create normals
>         //Vector3f[] normals = new Vector3f[24];
>         //Vector3f[] normals = new Vector3f[36];
>         Vector3f[] normals = new Vector3f[16];
>         for(int n=0;n<normals.length;n=n+4) {
>             Vector3f v1 = new Vector3f();
>             Vector3f v2 = new Vector3f();
>             v1.x = coords[n+3].x - coords[n].x;
>             v2.x = coords[n+1].x - coords[n].x;
>             v1.y = coords[n+3].y - coords[n].y;
>             v2.y = coords[n+1].y - coords[n].y;
>             v1.z = coords[n+3].z - coords[n].z;
>             v2.z = coords[n+1].z - coords[n].z;
>             Vector3f vcross = new Vector3f();
>             vcross.cross(v2,v1);
>             vcross.normalize();
>             normals[n]=vcross;
>             normals[n+1]=vcross;
>             normals[n+2]=vcross;
>             normals[n+3]=vcross;
>         }
>         /*
>         for(int k=0;k<coords.length;k++) {
>             System.out.println("n "+k+" "+normals[k]);
>         }
>         */
>
>         int stripCounts[] = {8,8};
>         TriangleStripArray tri = new
> TriangleStripArray(16,TriangleArray.COORDINATES|TriangleArray.NORMALS,stripCounts);
>         tri.setCoordinates(0,coords);
>         tri.setNormals(0,normals);
>         tri.setCapability(Geometry.ALLOW_INTERSECT);
>
> ===========================================================================
> 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