public void transform(Transform3D matrix) {
public void transform( Bounds boundsObject, Transform3D matrix) {  if( boundsObject == null || boundsObject.boundsIsEmpty)  {  lower.x = lower.y = lower.z = 1.0d; upper.x = upper.y = upper.z = -1.0d; updateBoundsStates(); return; }
    public void transform(Transform3D matrix) {	if(boundsIsInfinite)	    return;		double ux, uy, uz, lx, ly, lz;	ux = upper.x; uy = upper.y; uz = upper.z;	lx = lower.x; ly = lower.y; lz = lower.z;		tmpP3d.set(ux, uy, uz);	matrix.transform( tmpP3d );	upper.x = tmpP3d.x;	upper.y = tmpP3d.y;	upper.z = tmpP3d.z;	lower.x = tmpP3d.x;	lower.y = tmpP3d.y;	lower.z = tmpP3d.z;		tmpP3d.set(lx, uy, uz);	matrix.transform( tmpP3d );		if ( tmpP3d.x  > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y  > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z  > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x  < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y  < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z  < lower.z ) lower.z = tmpP3d.z;		tmpP3d.set(lx, ly, uz);	matrix.transform( tmpP3d );	if ( tmpP3d.x  > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y  > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z  > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x  < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y  < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z  < lower.z ) lower.z = tmpP3d.z;		tmpP3d.set(ux, ly, uz);	matrix.transform( tmpP3d );	if ( tmpP3d.x > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z < lower.z ) lower.z = tmpP3d.z;	tmpP3d.set(lx, uy, lz);	matrix.transform( tmpP3d );	if ( tmpP3d.x > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z < lower.z ) lower.z = tmpP3d.z;	tmpP3d.set(ux, uy, lz);	matrix.transform( tmpP3d );	if ( tmpP3d.x > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z < lower.z ) lower.z = tmpP3d.z;		tmpP3d.set(lx, ly, lz);	matrix.transform( tmpP3d );	if ( tmpP3d.x > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z < lower.z ) lower.z = tmpP3d.z;		tmpP3d.set(ux, ly, lz);	matrix.transform( tmpP3d );	if ( tmpP3d.x > upper.x ) upper.x = tmpP3d.x;	if ( tmpP3d.y > upper.y ) upper.y = tmpP3d.y;	if ( tmpP3d.z > upper.z ) upper.z = tmpP3d.z;	if ( tmpP3d.x < lower.x ) lower.x = tmpP3d.x;	if ( tmpP3d.y < lower.y ) lower.y = tmpP3d.y;	if ( tmpP3d.z < lower.z ) lower.z = tmpP3d.z;    }