//Thanks to en.wikipedia.org/wiki/…
void rotateAtAround(float angle, PVector axis) {
PVector buffer = new PVector(0,0,0);
axis.normalize();
buffer.x = this.endPoint.x*( cos(angle) + pow(axis.x,2) * ( 1-cos(angle) ) )
+ this.endPoint.y*( axis.x*axis.y*( 1-cos(angle) ) - axis.z*sin(angle) )
+ this.endPoint.z*( axis.x*axis.z*( 1-cos(angle) ) + axis.y*sin(angle) );
buffer.y = this.endPoint.x*( axis.y*axis.x*( 1-cos(angle) ) + axis.z*sin(angle) )