4! C B B B B  *@ @       * @C<ɾE@3<ɾE     1 * * *  1  1   * *  1 1   : : : * 1 *centerLProGAL/geom3d/Point;normalLProGAL/geom3d/Vector;RDr0(LProGAL/geom3d/Point;LProGAL/geom3d/Vector;DD)VCodeLineNumberTableLocalVariableTablethisLProGAL/geom3d/volumes/Torus; majorRadius minorRadiuscontains(LProGAL/geom3d/Point;)ZqRRvp StackMapTable getMainCircle()LProGAL/geom3d/Circle; getMainPlane()LProGAL/geom3d/Plane;getPoloidalCirclegetSweepingCirclevgetSweepingSphere ()LProGAL/geom3d/volumes/Sphere;getSurfaceArea()DgetToroidalCircle getVolumegetVillarceauCircles()[LProGAL/geom3d/Circle;getMajorRadiusgetMinorRadius getNormal()LProGAL/geom3d/Vector; getCenter()LProGAL/geom3d/Point;getIntersectionCircle.(LProGAL/geom3d/Circle;)[LProGAL/geom3d/Point;axayazbxbybznza_b_zIicoeffs[DfuncLProGAL/math/Polynomial;root parameterspkrotPointkCLProGAL/geom3d/Circle;e3rotAxisangle rotMatrixLProGAL/math/Matrix; translatenewCircleNormalCC0newCircleCenter intersections[LProGAL/geom3d/Point;nxnym1m2m3mlist[[Dalphgamdelepsabflmder0er1er2ematEENewparstmpDegroots[Ljava/lang/Double; SourceFile Torus.java K DE FG HI JIProGAL/geom3d/Vector K eProGAL/geom3d/Circle KProGAL/geom3d/Plane K m ProGAL/geom3d/volumes/Sphere Kjava/lang/Math K  m   e  e {e lm  no   ProGAL/geom3d/Point   m   eProGAL/math/Matrix K    IProGAL/math/Polynomial K   e   ProGAL/geom3d/volumes/Torusjava/lang/Object()V-(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)VdistanceSquared(LProGAL/geom3d/Point;)Dpow(DD)Dcross.(LProGAL/geom3d/Vector;)LProGAL/geom3d/Vector;getLengthSquared/(LProGAL/geom3d/Point;DLProGAL/geom3d/Vector;)V.(LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)VgetOrthonormal scaleToLength(D)LProGAL/geom3d/Vector;add-(LProGAL/geom3d/Vector;)LProGAL/geom3d/Point;(LProGAL/geom3d/Point;D)V(DDD)Vequals(LProGAL/geomNd/Vector;)Z normalizeThis(LProGAL/geom3d/Vector;)DcreateRotationMatrix-(DLProGAL/geom3d/Vector;)LProGAL/math/Matrix;xymultiply multiplyIn,(LProGAL/geomNd/Point;)LProGAL/geomNd/Point;get(I)D getOrthogonaldot getRadius([[D)V(II)Dabs(D)DProGAL/math/ConstantsEPSILON([D)Vcoeff solveQuartic([D)[Ljava/lang/Double;java/lang/Double doubleValueinvert()LProGAL/math/Matrix; subtractThis!BCDEFGHIJIKLM**+*,*)*N,- ./01O4PQDEFGRISITUMP**kIY*+:+*(c**kg  (k*kgN5 67O*PPQPVE FWI8XGY NZ@[\M>Y***N;O PQ]^M:Y**N?O PQ_\M,NCO PQ`\Mc+*LY*+***+N GHO+PQ#aGbcM[#*LY*+**N LMO#PQaGdeM8*k*kNQO PQf\M>Y***NTO PQgeM=*k*k*kNXO PQhiM,N]O PQjeM/*N`O PQkeM/*NbO PQlmM/*NdO PQnoM/*NgO PQpqM  HYM*,N-Y- W*,!9-":Y*#w*$w*%w:+&' :+(:  )*: *: +9+9kkc?9 99Y :999Y:999!+9, : :Y+RY+RYR: Y+RY+RYR:!Y+RY+RYR:"-Y SY!SY"S:#  .9$ /9& /9($+0+0kc**kc**kg9* &k&k *k*k++k++kckg9, (k(k *k*k++k++kckg9. &k(k *k*k++k++kckg90 &k*k *k*k #+k $+kckg92 (k*k *k*k #+k $+kckg94**k *k*k # #k $ $kckg96Y,RY0RY2R:8Y0RY.RY4R:9Y2RY4RY6R::-Y8SY9SY:S:;1Y;2:<<:=:>>=3+0k+0k =3k+0kg=3cR>4=3k+0k+0k =3k+0kcR>6=3k+0k+0k =3k+0k+0kc =3kcR> =3k+0k+0k =3k+0kcR>=3+0k+0k =3k+0kc=3cR6??>?189 >?R?6@@>@1 @@3@`:A6BB@AB>B1RB:YA;:?:Y>;:??<=:AAA6BBA"AB2>9C:EE #+0+kgCkCk +0k+kCkc #c+0+kcRE $+0+kgCkCk +0k+kCkc $c+0+kcRE %+0+kgCkCk +0k+kCkc %c+0+kcRECCkcR*YE1E1oE1E1oE1E1o?:F@F)*:G BGASB NJRq rs%t*v4w<x]zk{v|~:Vkt}Gz+6:?m*3HNQflt~ZOF:9rI 6sI3tI!uIvIwIxI$yG zG-!{|?w}|Bt%~A?IC EEF EG'|BPQ GG4I<]GkGvwE kE e xIyGzG]IUI :!V"k#tyI$}pI&gI(EI*I,I.GI0zsI2@I4I689:+;6<:=?>F?Q|@<AYt*ZZZZZZZZZZZZ*2ZZZZZZ-------- 3ZZZZZZ-------&