4B U  . .             .   . 9 9 H H H       N  N . . H N N  . H ?!TD-  9 9@!TD-   .    . H . . N  9 9  normalLProGAL/geom3d/Vector;pointLProGAL/geom3d/Point;.(LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)VCodeLineNumberTableLocalVariableTablethisLProGAL/geom3d/Plane;pn(LProGAL/geom3d/Vector;)V(LProGAL/geom3d/Vector;D)VdDB(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)Vqr StackMapTable-(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)VgetD()DgetPoint()LProGAL/geom3d/Point; getNormal()LProGAL/geom3d/Vector; setNormal projectPoint,(LProGAL/geom3d/Point;)LProGAL/geom3d/Point;tabove(LProGAL/geom3d/Point;)IdotPbelow getDistance(LProGAL/geom3d/Point;)DgetUnsignedDihedralAngle(LProGAL/geom3d/Plane;)DgetIntersection+(LProGAL/geom3d/Line;)LProGAL/geom3d/Point;apaulineLProGAL/geom3d/Line;denomgetIntersectionParameter(LProGAL/geom3d/Line;)D2(LProGAL/geom3d/LineSegment;)LProGAL/geom3d/Point;sgmLProGAL/geom3d/LineSegment;dist0dist1xcosgetIntersectionAngleU(LProGAL/geom3d/Circle;LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)Ljava/lang/Double;circleLProGAL/geom3d/Circle;dirnC circlePlanedist.(LProGAL/geom3d/Circle;)[LProGAL/geom3d/Point;D(LProGAL/geom3d/Circle;LProGAL/geom3d/Vector;)[LProGAL/geom3d/Point; intPoints[LProGAL/geom3d/Point;vcpbcalpha1alpha2t1t2 intVectors[LProGAL/geom3d/Vector;+(LProGAL/geom3d/Plane;)LProGAL/geom3d/Line;plh1h2ddc1c26(LProGAL/geom3d/volumes/Sphere;)LProGAL/geom3d/Circle;sphereLProGAL/geom3d/volumes/Sphere;radcenter getCenterm/(LProGAL/geom3d/Vector;D)LProGAL/geom3d/Vector;beta-(LProGAL/geom3d/Point;D)LProGAL/geom3d/Point;q0 SourceFile Plane.java [  t WX YZProGAL/geom3d/Point [ p  p  p java/lang/Error*Cant construct plane: Points are collinear [  ProGAL/geom3d/Vector [n  op t  yz   t r Xjava/lang/Double  r !w ~ "r #~ $%& '( )g *+ !, st -.ProGAL/geom3d/Plane r [\ }~ /p 01 2t 3w 4tjava/lang/Math 5 6 78 4r 9, : ;< [= qrProGAL/geom3d/Line> vwProGAL/geom3d/Circle [? @~  A #pjava/lang/ObjectProGAL/geom3d/Shape()V normalizeThis(DDD)Vyz collinearB(LProGAL/geom3d/Point;LProGAL/geom3d/Point;LProGAL/geom3d/Point;)Z(Ljava/lang/String;)VvectorTo-(LProGAL/geom3d/Point;)LProGAL/geom3d/Vector; crossThis.(LProGAL/geom3d/Vector;)LProGAL/geom3d/Vector; getMidpointA(LProGAL/geom3d/Point;LProGAL/geom3d/Point;)LProGAL/geom3d/Point;toVectordot(LProGAL/geom3d/Vector;)Dabs(D)DacosgetDirgetPProGAL/geom3d/LineSegmentgetAsubtractgetBdistance multiplyThis(D)LProGAL/geomNd/Point;ProGAL/geomNd/Point()LProGAL/geomNd/Vector;ProGAL/math/ConstantsEPSILONmultiply(D)LProGAL/geom3d/Vector;-(LProGAL/geom3d/Vector;)LProGAL/geom3d/Point; isParallel(LProGAL/geom3d/Vector;)Z getRadiusgetFirstIntersectionS(LProGAL/geom3d/Line;LProGAL/geom3d/Point;LProGAL/geom3d/Vector;)Ljava/lang/Double;getOrthonormalorthogonalProjectionclonerotateInsqrtatan2(DD)Daddcross isZeroVector()Z(LProGAL/geom3d/Point;)VProGAL/geom3d/volumes/Sphere/(LProGAL/geom3d/Point;DLProGAL/geom3d/Vector;)VdistanceSquaredsin!.UVWXYZ[\]\**,*+^  _ `abZcX[d][ **+*Y^#$ %&_`acX[e]w -**+*Y(w+k(w+k(w+ k^+, -,._ -`a-cX-fg[h]1*+,- Y *+,+-*+^89:+;0<_*1`a1bZ1iZ1jZklmmm[n]h**Y+,*+,^?@AB_ `abZiZop][1*w*k**kg* *kg^E_ 1`aqr]/*^I_ `ast]/*^L_ `aud]>*+^ PQ_`acXvw] ^*+k*+kc* +kc*cIY+*(kg+*(kg+* (kg^ a,b_ ^`a^bZ,2xgyz](*+I*9(w(w^h ijk&l_*(`a(bZ {gfgk |z];*+t^p_`abZ}~]H*+*c^s_`abZ]C*+^w_`aba] j*+I(+:*:*(o9Y+kg+kg+ kg^} ~%2_>PZ%EX28gj`aj ^gk]7*+I( +:*:*(o9^ '4_>Z'X4g7`a7 +gk]  *+"*#$I*+%*#$9(k+%+"#+%+"&o'(:*9)+%o*+^"'2U`l~_>`amg'YgU+X` gk2K] O+,:*-.Y+/0:*1:+/29+3)g+,-4^#+6F_RO`aOObZOXIX#,a+$6gk1l]X+,5+3*M*+,6^ _ `aX]@+,N-*-.Y+/-0:*1:+/29+3)c+3)g:+/7S,8:-:9o9?g9c9c9:,8S-2_4^`a^ UgOg&8Zk !mr]2*A^_ `a ]f 2Y*'Qk*'Rkg*'Qk*'Rkc* S^ _2X2g i]RY*T'Qk*T'Rk*^ _Zg