* <li>end point 2 : initial end point 2</li>
* <li>rotation : a random number between 0 and 2 PI</li>
* </ul>
*/
public TreeLeaf3DState createNewTreeLeaf3DState(Point3d leafAttachPoint) {
Tuple3dState leafAttachPointState = new Tuple3dState(leafAttachPoint);
double x1 = -0.02 + Randomizer.random1() / 10;
double y1 = -0.04 + Randomizer.random1() / 10;
int z1 = 0;
Tuple3dState initialEndPoint1 = new Tuple3dState(x1, y1, z1);
double x2 = 0.02 + Randomizer.random1() / 10;
double y2 = -0.04 + Randomizer.random1() / 10;
int z2 = 0;
Tuple3dState initialEndPoint2 = new Tuple3dState(x2, y2, z2);
Tuple3dState endPoint1 = new Tuple3dState(x1, y1, z1);
Tuple3dState endPoint2 = new Tuple3dState(x2, y2, z2);
double rotation = Randomizer.randomRotation();
return new TreeLeaf3DState(leafAttachPointState, initialEndPoint1, initialEndPoint2, endPoint1, endPoint2,
rotation);
}