import java.lang.reflect.Field; import java.lang.reflect.Method; Point[] create_circle(float center_x, float center_y, float radius, int nb_point, int col){ Point[] line = new Point[nb_point + 1]; float px, py, factor; for (int i = 0; i < line.length; i++){ factor = float(i) / float(line.length - 1); px = center_x + radius * cos(factor * TWO_PI); py = center_y + radius * sin(factor * TWO_PI); line[i] = new Point(int(px), int(py), col); } return (line); } int getColInt(int r, int g, int b){ int col; col = ((r & 0xFF) << 16) | ((g & 0xFF) << 8) | ((b & 0xFF)); return (col); } public void showFields(Object o) { Class clazz = o.getClass(); println("private fileds"); for(Field field : clazz.getDeclaredFields()) { //you can also use .toGenericString() instead of .getName(). This will //give you the type information as well. println("\t", field.getName()); } System.out.println("inherited fileds"); for(Field field : clazz.getFields()) { //you can also use .toGenericString() instead of .getName(). This will //give you the type information as well. println("\t", field.getName()); } } public void showMethodes(Object o) { Class clazz = o.getClass(); System.out.println("private methode"); for(Method method : clazz.getDeclaredMethods()) { println("\t", method.getName()); } System.out.println("private methode"); for(Method method : clazz.getMethods()) { println("\t", method.getName()); } } PVector vecSub(PVector a, PVector b){ PVector diff = new PVector(); diff.x = a.x - b.x; diff.y = a.y - b.y; diff.z = a.z - b.z; return diff; } void normalize(PVector p){ float norme; norme = sqrt(p.x * p.x + p.y * p.y + p.z * p.z); p.x /= norme; p.y /= norme; p.z /= norme; } PVector getNormalized(PVector v){ PVector res = new PVector(v.x, v.y, v.z); normalize(res); return (res); } float cross_product(PVector a, PVector b){ return (a.x*b.x + a.y*b.y + a.z*b.z); }