4n L Q Q  Q Q    k k   ?      @)!TD- Q@  Q Q    ' & ' ' ' '   Q Q  @@ :   t k ? ? k k>. &֕ & Q    Q  S  Q  Z Z Z Q Z Q Q Z Q Z Z Q  t t  k Q Q t t   & t    Q Q @$"           Z Z    Z QcenterLProGAL/geom3d/Point;radiusD(LProGAL/geom3d/Point;D)VCodeLineNumberTableLocalVariableTablethisLProGAL/geom3d/volumes/Sphere;(DDDD)Vxyz([LProGAL/geom3d/Point;)Vps[LProGAL/geom3d/Point;W(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)Vp0p1p2p3'(LProGAL/geom3d/complex/CTetrahedron;)Vtetr$LProGAL/geom3d/complex/CTetrahedron; (LProGAL/geom3d/PointWeighted;)VpLProGAL/geom3d/PointWeighted;(LProGAL/geom3d/Circle;)VcLProGAL/geom3d/Circle;computeSphere_fastl(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)Dm12m13m14m11x2x1y1z1x2y2z2x3y3z3xx1xx2xx3x1y2x1y3x1z2x1z3x2y1x2y3x2z1x2z3x3y2x3y1x3z2x3z1y1z2y1z3y2z1y2z3y3z1y3z2m11 StackMapTable computeSpherem15x0y0z0xx0 getCenter()LProGAL/geom3d/Point; getRadius()DgetRadiusSquaredgetSurfaceArea getVolumeisInside(LProGAL/geom3d/Point;)Z(LProGAL/geom3d/Point;D)ZepsisEmpty([LProGAL/geom3d/Point;D)ZiIpoints(Ljava/util/List;D)ZLjava/util/List;LocalVariableTypeTable8Ljava/util/List; Signature<(Ljava/util/List;D)Zcontains(Ljava/util/List;D)V&LProGAL/geom3d/kineticDelaunay/Vertex;<(Ljava/util/List;D)V setCenter(LProGAL/geom3d/Point;)V setRadius(D)V isIntersected!(LProGAL/geom3d/volumes/Sphere;)ZspheregetIntersection1(LProGAL/geom3d/Line;)LProGAL/geom3d/LineSegment;u1u2sqrlineLProGAL/geom3d/Line;dxdydzexeyezabdeltaintersectionParameters(LProGAL/geom3d/Line;)[Dd1d2lLProGAL/geom3d/Vector;lcccrrtmpgetIntersections.(LProGAL/geom3d/Circle;)[LProGAL/geom3d/Point;planeLProGAL/geom3d/Plane;c2getIntersectionAngleU(LProGAL/geom3d/Circle;LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)Ljava/lang/Double;dir containsNone(Ljava/util/List;)Z'Ljava/util/List;*(Ljava/util/List;)ZcontainsNumber(Ljava/util/List;)Icount;(Ljava/util/List;)IcontainsNoneButAtMostOne9(LProGAL/geom3d/kineticDelaunay/Vertex;Ljava/util/List;)Zva(LProGAL/geom3d/kineticDelaunay/Vertex;Ljava/util/List;)Z powerDistance(LProGAL/geom3d/Point;)DtoString()Ljava/lang/String;(I)Ljava/lang/String;dec toConsole()V(I)Voverlaps!(LProGAL/geom3d/volumes/Volume;)ZvolLProGAL/geom3d/volumes/Volume;clone ()LProGAL/geom3d/volumes/Sphere; getMinSphere6(LProGAL/geom3d/Circle;)LProGAL/geom3d/volumes/Sphere;J(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)LProGAL/geom3d/volumes/Sphere;_(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)LProGAL/geom3d/volumes/Sphere;t(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)LProGAL/geom3d/volumes/Sphere;ret9(LProGAL/geom3d/PointList;)LProGAL/geom3d/volumes/Sphere;LProGAL/geom3d/PointList;S(LProGAL/geom3d/PointList;ILProGAL/geom3d/PointList;)LProGAL/geom3d/volumes/Sphere;nboundaryPointskT(LProGAL/geom3d/volumes/Sphere;LProGAL/geom3d/volumes/Sphere;)LProGAL/geom3d/Circle;s1s2r1r2dhnormalr(LProGAL/geom3d/volumes/Sphere;LProGAL/geom3d/volumes/Sphere;LProGAL/geom3d/volumes/Sphere;)[LProGAL/geom3d/Point;s3i12angle/(LProGAL/geom3d/Vector;LProGAL/geom3d/Vector;)Dv1v2 findAngle(IILProGAL/geom3d/kineticDelaunay/Vertex;LProGAL/geom3d/kineticDelaunay/Vertex;LProGAL/geom3d/kineticDelaunay/Vertex;LProGAL/geom3d/kineticDelaunay/Vertex;ID)Ljava/lang/Double;newSignstartendABCalphaValCnewDnewsignnewStartnewEndunionVolume_Grid(Ljava/util/Collection;)DsdXdYdZspheresLjava/util/Collection;centersradSqs[DradsminPointmaxPointcellsbits[[[ZxCyCzC borderCells insideCellscellVol insideVol borderVol6Ljava/util/Collection;{9(Ljava/util/Collection;)DgenerateRandomPointsOnSphere(I)LProGAL/geom3d/PointList;generatePointsOnSphere()Ljava/lang/Object; Exceptions ()LProGAL/geom3d/volumes/Volume; SourceFile Sphere.java ? ProGAL/geom3d/Point        ! "java/lang/RuntimeExceptionPoints are coplanar #$ %&' (#java/lang/Math )9 * +, -. /$ProGAL/geom3d/kineticDelaunay/Vertexjava/lang/StringBuilder 01 23 24 25, :; 6# (? AB 7 89ProGAL/geom3d/LineSegment : ;< => ?@ProGAL/geom3d/Plane A< B C # D*Contains vertex :< Sphere3d[%s,%f]java/lang/Object EFG HIProGAL/geom3d/volumes/Sphere J9"java/lang/IllegalArgumentException E KL MN O1ProGAL/geom3d/PointList GO PQ GI GJ R SR TR GKU VW X< YZ S[ProGAL/geom3d/Circle \ S "# ]^_ `ProGAL/geom3d/Vector a bc dc e f^Radius-alphaVal = gAngle = java/lang/Double Ph ij  k l< m[  EFProGAL/geom3d/volumes/Volumejava/util/IteratorProGAL/geom3d/Linejava/util/Collection$java/lang/CloneNotSupportedException(DDD)V"ProGAL/geom3d/complex/CTetrahedron getCorners()[LProGAL/geom3d/Point;ProGAL/geom3d/PointWeighted getWeightsqrt(D)DsetXsetYsetZ(Ljava/lang/String;)Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintlndistanceSquaredjava/util/Listiterator()Ljava/util/Iterator;hasNext()ZnextgetId()Iappend(I)Ljava/lang/StringBuilder;-(Ljava/lang/String;)Ljava/lang/StringBuilder;(D)Ljava/lang/StringBuilder;printgetPgetPoint(D)LProGAL/geom3d/Point;-(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)VgetDir()LProGAL/geom3d/Vector;vectorTo-(LProGAL/geom3d/Point;)LProGAL/geom3d/Vector;dot(LProGAL/geom3d/Vector;)DgetNormalVector.(LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)V6(LProGAL/geom3d/volumes/Sphere;)LProGAL/geom3d/Circle;getFirstIntersectionvalueOf(D)Ljava/lang/Double;java/lang/Stringformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;distance getMidpointA(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)LProGAL/geom3d/Point;getRandomPermutation()LProGAL/geom3d/PointList;sizeget(I)Ljava/lang/Object;(Ljava/lang/Object;)ZaddremoveProGAL/geom2d/TrianglecalculateHeight(DDD)D normalizeThismultiply(D)LProGAL/geom3d/Vector;-(LProGAL/geom3d/Vector;)LProGAL/geom3d/Point;/(LProGAL/geom3d/Point;DLProGAL/geom3d/Vector;)Vatan2(DD)DProGAL/math/ConstantsTAU toRadians rotationCW(LProGAL/geom3d/Vector;D)V rotationCCWabspowsignum(I)Dset(ID)V scaleThistoVectoraddThis!QL5Y**+*( ! x **Y')*#$%&4\  **+2+2+2+2**+, s **+,-*/014o %*+M*,2,2,2,2*45 6$7 %% U**+*+ ;< =>U**+ *+ AB CD Q+ * g9+*g9+*g9 , * g9 ,*g9 ,*g9- * g9-*g9-*g9kkc  kc9  k  kckc9kkckc9 k9k9k9!k9# k9% k9'  k9) k9+ k9-k9/k91 k93k95k97  k99 k9; k9=k9?%gk/gkc'-g kcw9AA;?gk59gkc=7gkcw9C+1gk!)gkc3#gkcw9E'-gk%gkc/gkcw9GAo9ICIk9KEwIk9MGIk9O'K* cM*cO*cKKkMMkcOOkc YjL!MBNcPvQSTUWX Y[7]>_[`xacdefhijkmo+[CxyE\GTIMKEM>O ! , 7 BMXcvr_XQJ!C#<%5'.)'+ -/1 3579 ;=?7As+$: [+ 9+9+9 , 9 ,9 ,9- 9-9-9 999kkc  kc9  k  kckc9kkckc9!kkckc9# k9% k9' k9) k9+ k9-k9/k91k93k95 k97k99k9; k9= k9?k9Ak9Ck9Ek9G=EcCc?gAgGgk);c3c+g1g9gkg %7c/c'g-g5gkc%-gk7'gkc/5gkcg9II=EcCc?gAgGgkgk#gkc!gkckg gk# gkc! gkckcCGgk#=Agkc!E?gkcg9K);c3c+g1g9gkgk#gkc!gkckg gk# gkc! gkckc39gk#)1gkc!;+gkcg9M%7c/c'g-g5gkgk# gkc! gkckggk# gkc! gkckc/5gk#%-gkc!7'gkcg9O%-gk7'gkc/5gkckCGgk#=Agkc!E?gkckg39gk#)1gkc!;+gkckc /5gk#%-gkc!7'gkckg9QIo9SKSk9UMwSk9WOSk9Y*YUWY*UUkWWkcYYkcQIog  nvw$x6yK{q|~pwQ7?FNUf0KQ3MO7MQ?ESF>UN6WU/Y ~ x r $l*f0`6Z=SDLKE^2q !#%')+-/13579;=?ACE{Gp I<(/* /* 4 **k  8*k*k 8**ko U*+ *!@f*+ **k(g @| 6+*+2(" *   /+#:$%:*(" -* /// / !q+#:$[%&:*("B'Y()*+,**k-+,* -.,/01(gjp*Iqqq q^:*+\ *+,-24    :*':*+3 +4M+5N- , g9-,g9-,g9, * g9 ,*g9 ,*g9kkckc96 k kckck9* * k**kc**kc, , kc,,kc,,kc6* , k*,kc*,kckg**kg9k8kkg9w6ko\99( 9wc6ko9wg6ko9:YY, kc,kc,kcY, kc,kc,kc;Z !,:HVi7>M\42 >     !,:t Hf VXiE.Ma\R %$@t+9-->9**k9kgc9    YR g9  c9Y RYR. *7BR\ f f \ ftt  oc\U*J7= B!!"#"?Y+ +@AM,*BN- +-C*""$% &  '()*)?Y+ +@A:*B: +,-D>))))+$%& ''(,-A**kEgI+#:$"%:* ( ,!?"*,AA3 A. %/01D=**kEgJ+#:$#%:* )'().*B+4.DDB24 D&345d**kEgJ,#:$E%&:*G)(+"'Y(H,)*//0,1@2]3_1b54,3dd6dV dH7q!**kEgI+* ( :; !!@89G*+ **kgB:;0*IG :<i5'Y(J,*K,/LY*MSY*NSOL55=>?5 *PP  >@@ *IS =AB{3+Q'+Q*R+Q*cSYTtu+v33CD)@EF=QY*U*V{  GH:QY* * V  GIJQY*+W*+R6oV GJ PY* + c, co*+c,co*+c,coN*-R9QY-V>E4PPP>E  GK{ !QY:*+,- 4!!!! L GM=*X*YZY[\ N GON6,Y9Sj*]*]^N6P*],]^N66,],]^N,],],]_N6,Y`g*]:,`M-aD,Y,bW*d,\N,cW!,],],]dN-J(B\sHSoNPQNR (J SJ*I+9*+R9(c(e9((kkg 9 kkg 9    fk9 *+=h:* ij:kYl.  $.<L\l|f TUV WrX.\Y<N L> lZ|$7 "[s*+mN-,-n *TU\](^_&+o+pq,o,pqgJ) r)cJ)9:$;*&&`&aL$bc s: s: . tYuvw tYuvw+ tYuvx tYuvxQY-  yz9  g{|~ kN'Y(, g-/ g9996cc6o9'Y(,-/s: s: . tYuvw tYuvw+ tYuvx tYuvxQY-  yz9 'Y(, g-/ g{|~ N g9 99!@ABC'D>FRGfIyJKLMNRSTUVWXY2[F\Z^m_`bdefgRi^defghi+jk l yQ  m no >'/1ppppipppp'Jpppp qr*L*M*NY:Y:6*:$%Q:+S,!R-R6  m g   g c   c YP6Y  goRYgoRYgoR:```: 6 6 6  9   6 96 96+ +2 g{9+2g{9+2g{9-1B-18-1+kkckc,1  2 2 T  1c9c 1c9?  1c9 6 66B626" 223} 22`3m 2`23] 2`2`3K `223; `22`3) `2`23 `2`2`3 223 22`3s 2`23c 2`2`3Q `223A `22`3/ `2`23 `2`2`3  ݄̈́11k1k9k9 k96oc9 .@Cajs|$4FOadvy  #/2>ADNXbrx{.p asgtXuIvkV [&Q6GFwx yz{|{.}@w~Ct4{Fq In Lk Oh Av Ds  wK671` T'  9M,N-$'-%:**W,' 4 7 *99P4LN ,9M,N-$'-%:**W,'47*99P4LN ,AE/* AE/*