/* * Copyright (c) 1998 Kevan Stannard. All Rights Reserved. * * Permission to use, copy, modify, and distribute this software * and its documentation for NON-COMMERCIAL or COMMERCIAL purposes and * without fee is hereby granted. * * Please note that this software comes with * NO WARRANTY * * BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED * BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES * PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS * TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME * THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. * * IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER * PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, * INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE * THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED * BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER * OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. */ /** * Vertex defines a point in 3dimensional space * * @version 1.0 * @author Kevan Stannard */ class Vertex extends Object { protected double x; protected double y; protected double z; public Vertex() { this(0,0,0); } public Vertex(double x, double y, double z) { this.x = x; this.y = y; this.z = z; } public Vertex(Vertex v) { this.x = v.x; this.y = v.y; this.z = v.z; } public String toString() { return "[" + x + "," + y + "," + z + "]"; } public void matrixMultiply(Matrix2D m) { // // check matrix has 3 columns (ie same number of elements as vertex) // if (m.getCols() != 3) { return; } // // continue with multiplication // //double newx = x*m.getElement(0,0) + y*m.getElement(1,0) + z*m.getElement(2,0); //double newy = x*m.getElement(0,1) + y*m.getElement(1,1) + z*m.getElement(2,1); //double newz = x*m.getElement(0,2) + y*m.getElement(1,2) + z*m.getElement(2,2); double newx = x*m.element[0][0] + y*m.element[1][0] + z*m.element[2][0]; double newy = x*m.element[0][1] + y*m.element[1][1] + z*m.element[2][1]; double newz = x*m.element[0][2] + y*m.element[1][2] + z*m.element[2][2]; x = newx; y = newy; z = newz; } }