From 07160a1996d0ce5dfc41d944dfb4b2c80271a9ab Mon Sep 17 00:00:00 2001 From: Clement Jamin Date: Tue, 6 Jan 2015 18:03:41 +0100 Subject: [PATCH] Erased doc_tex/ --- .../doc_tex/Triangulation/PkgDescription.tex | 13 - .../fig/barycentric-subdivision.pdf | Bin 14739 -> 0 bytes .../fig/barycentric-subdivision.png | Bin 43850 -> 0 bytes .../Triangulation/fig/simplex-structure.pdf | Bin 23536 -> 0 bytes .../Triangulation/fig/simplex-structure.png | Bin 28005 -> 0 bytes Triangulation/doc_tex/Triangulation/main.tex | 6 - .../doc_tex/Triangulation/triangulation.tex | 584 ----------------- .../DelaunayTriangulationTraits.tex | 116 ---- .../Delaunay_triangulation.tex | 165 ----- .../RegularTriangulation.tex | 5 - .../RegularTriangulationTraits.tex | 83 --- .../Triangulation_ref/Tds_full_cell.tex | 89 --- .../doc_tex/Triangulation_ref/Tds_vertex.tex | 79 --- .../Triangulation_ref/Triangulation.tex | 533 --------------- .../Triangulation_ref/TriangulationDSFace.tex | 82 --- .../TriangulationDSFullCell.tex | 230 ------- .../TriangulationDSVertex.tex | 113 ---- .../TriangulationDataStructure.tex | 616 ------------------ .../TriangulationFullCell.tex | 67 -- .../Triangulation_ref/TriangulationTraits.tex | 180 ----- .../Triangulation_ref/TriangulationVertex.tex | 70 -- .../Triangulation_data_structure.tex | 98 --- .../Triangulation_ds_full_cell.tex | 83 --- .../Triangulation_ds_vertex.tex | 58 -- .../Triangulation_ref/Triangulation_face.tex | 27 - .../Triangulation_full_cell.tex | 79 --- .../Triangulation_locate_type.tex | 18 - .../Triangulation_vertex.tex | 89 --- .../Triangulation_ref/fig/collapse-face.pdf | Bin 14602 -> 0 bytes .../Triangulation_ref/fig/collapse-face.png | Bin 35136 -> 0 bytes .../Triangulation_ref/fig/insert-in-cell.pdf | Bin 11662 -> 0 bytes .../Triangulation_ref/fig/insert-in-cell.png | Bin 13051 -> 0 bytes .../Triangulation_ref/fig/insert-in-face.pdf | Bin 14031 -> 0 bytes .../Triangulation_ref/fig/insert-in-face.png | Bin 29216 -> 0 bytes .../Triangulation_ref/fig/insert-in-hole.pdf | Bin 20250 -> 0 bytes .../Triangulation_ref/fig/insert-in-hole.png | Bin 65767 -> 0 bytes .../fig/insert-increase-dim.pdf | Bin 12389 -> 0 bytes .../fig/insert-increase-dim.png | Bin 30236 -> 0 bytes .../doc_tex/Triangulation_ref/intro.tex | 94 --- .../doc_tex/Triangulation_ref/main.tex | 41 -- 40 files changed, 3618 deletions(-) delete mode 100644 Triangulation/doc_tex/Triangulation/PkgDescription.tex delete mode 100644 Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.pdf delete mode 100644 Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.png delete mode 100644 Triangulation/doc_tex/Triangulation/fig/simplex-structure.pdf delete mode 100644 Triangulation/doc_tex/Triangulation/fig/simplex-structure.png delete mode 100644 Triangulation/doc_tex/Triangulation/main.tex delete mode 100644 Triangulation/doc_tex/Triangulation/triangulation.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/DelaunayTriangulationTraits.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/RegularTriangulation.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/RegularTriangulationTraits.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Tds_full_cell.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Tds_vertex.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationDSFace.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationDSFullCell.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationDSVertex.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationDataStructure.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationFullCell.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationTraits.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/TriangulationVertex.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_data_structure.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_full_cell.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_vertex.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_face.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_locate_type.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/collapse-face.pdf delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/collapse-face.png delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.pdf delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.png delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.pdf delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.png delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.pdf delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.png delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.pdf delete mode 100644 Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.png delete mode 100644 Triangulation/doc_tex/Triangulation_ref/intro.tex delete mode 100644 Triangulation/doc_tex/Triangulation_ref/main.tex diff --git a/Triangulation/doc_tex/Triangulation/PkgDescription.tex b/Triangulation/doc_tex/Triangulation/PkgDescription.tex deleted file mode 100644 index d0efdf7c7bf..00000000000 --- a/Triangulation/doc_tex/Triangulation/PkgDescription.tex +++ /dev/null @@ -1,13 +0,0 @@ -\begin{ccPkgDescription}{Triangulations\label{Pkg:Triangulations}} - -\ccPkgSummary{The package \ccc{Triangulation} provides classes for manipulating -triangulations (pure simplicial complexes) in Euclidean spaces whose -dimension can be specified at compile-time or at run-time. Specifically, it -provides a combinatorial Triangulation data structure, which is extended into -geometric triangulation and Delaunay triangulation classes. Point location and point -insertion are supported. The Delaunay triangulation also supports point removal.} - -\ccPkgIntroducedInCGAL{3.6} -\ccPkgLicense{\ccLicenseLGPL} -\ccPkgIllustration{Triangulation/fig/detail.png}{Triangulation/fig/illustration.png} -\end{ccPkgDescription} diff --git a/Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.pdf b/Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.pdf deleted file mode 100644 index a34dcc56f36c551fd9b711696ee75f7bdcdea2c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14739 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 Bls*6e diff --git a/Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.png b/Triangulation/doc_tex/Triangulation/fig/barycentric-subdivision.png deleted file mode 100644 index f2e364099bf9d08e5f15d46ae98c4ead318925a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43850 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 PgrEI}<_7nu&X@iVLbLAY diff --git a/Triangulation/doc_tex/Triangulation/fig/simplex-structure.pdf b/Triangulation/doc_tex/Triangulation/fig/simplex-structure.pdf deleted file mode 100644 index eea5b91da7f9af97a93922e3b4d48e2a979991c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23536 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 diff --git a/Triangulation/doc_tex/Triangulation/fig/simplex-structure.png b/Triangulation/doc_tex/Triangulation/fig/simplex-structure.png deleted file mode 100644 index 82c1f3001b5250612d8c4dd884890c87edb832b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28005 zcmb4rWmJ}36y*abptLC6iU@)rDqYebpma9~NOzYA2ofS9ASDgb-62SK2$D*7NH=r% zW@gP=v)25W_j?zhpYQWL_ug~Q*=O&433??bfpe4WCW0V1Qj($y2!a|1KW|~8!dLdm z_dW0p-Qb0UC~|rA-?zHVNCcrlq(q-9xx}w0IIAgkjJ7en>#upb@)q@`s2D-I8p@s9 z1IqXoG?+~J!8f}!oHnlWR_7NRJeOxylUI6$|NJ@@CQ*O-;Vm~Tvn}ewXAKs&gnjOD z`X2M~39vnJ-mKyr_1KE#wnrC99YC(3`U=tD6G&iNqS4@E!k@O0tmUSr{k2gBnHZnu z88(s-U*8`id7AJV;JA79uj$ax!>X~+;y5gMyw123ll}c$a#Ra$-?=0I_{P=$Pr1G~ zFu=gg9jn}nf^c(l^E$2L*YaOooIvbbN@|}!7IAe>aBwhPgyh?&=>J{urjo7Mt=S?hvirB&t-d( zMFPL)potX=wp(%y1}ql+@MLHD8!7_a|#$U%oLlwehm{fk}Fwg=RQ4 z!0_;)`DCT75>r&!o4F)!tI4X8Hma{=WXo>4it6f$@&l9oK45i4A=0L6+L0(SNV*|cf z?usI4DTnP1?MVyt^hWIJ($dl^nce1>d;2Tj3vzNkG|!xvp!&8?;pJWGj@>;w zwr>@F{J3a)d%Ll*@j{y#W(pGvu1lcJUuURVAQ!_&YAJFJh2JK;o}(Z@pRS?2`m1#M zfxYGQ!N$bl#zdP&Sc}1vCr?a!7zEsH%EuPhGZd zyEkyW6cK429{wyuQ@A0>#*0?%|PGkVy=t0G!Or#&8=Hx8XE9! zef>JO3}Wb&qN1v{wz7_nuBN88yu7BevYK{6Vk`utqPG0N_~6?gHg1-l=O>QZ+6lqI zH)X0Ze1$|Qms7Fssut+r2)ZArykQy-c+W?ys$Ru(RxcZTniRn`J zTSkUBtE#+w#HUZUz8%9r2C=RN0^5?KyqsHB)+WOFa)s_z+xPF~W#z?r+VgYvM@`q= zDh19ntCD@|CGi+(hetkj7$L}z0{{JwcFM}im3nwEnYSfimn&E3)D;((%oQi~hT)1%tt6lJVDE%~R{av~Oc3-pb9*S+WY*9V?eCbQ zFwMswI7$w*Et5@jrk7rURrUiMMl`SF6%4FRC6iypbfUfW^TxxPJ6>6C`t$SK-ZN}# z2STZA4r0ho)L>Pp|kyuy12$mHir~GHo_3 zr0v~CE5XpMZdX zTEGKA)HF2mHOe~M+c7OuY49Vioh%DWYiUg`{_%20A1&MuPvvzwqja*F8w%w~b&UDG z88F@Rl3BWkRk-<4edB_uAio(N-I=uDl;<6%)brKV)!A7OkFD_c@6{T-_#-6Kq9r9I zDFnSdHpa`&cp0y;zw!-!l=k`aXA)9UPfN?FkDo;+h~yVK5_o+-OhsRoc$BW0j%fUp z6};m~sm)1whlKODF~x@UYZCOVf}Fb%l0H9Hmhh(`tFnxpVmxDHG;0kZ&DDKQg1y)g z$si{uS6iilY1EJ0(UwdeFzsYwdfd@*SE5Azu4MT9(jred`4i*)+e;h0Q)Q$sRy@}F z4ks(zZgCgn)4CAC!@n^}-cj40D636+jtpE>*)O%Wv=s60=c<>?&dptS&c<)|L71wy z4a`j{O!rrhUqq)^zF!^~pR_Q~vSyR|b6U(9I5xZZby53h%KJ~{!u;ZW$zAkYPs#Fp zg-q|^lVM()k8V9VK}Sta&d;yU&yUbi)(w~0?Rxki>q2HcGXAsZ`nu6X-ltCrA|ifz ztk+QqT=k6Nx8GJ2ws&f^`9Va%O-~~5^H)Gbr->wsz)3pRlZb?7%*qFY5 zhc|z@g}J5WJ^aSsuDi`W4E-Bi|ZDOjZ{@ z0pdq`YxHdwXS>I#mA@)f9=>53#Oe}^mdFd{;Xa+GzI(}K`-)?q*VO`7y`?H?l( zPS)+OKd(~`cmLa7&hMO>(*F2Ghz1RfEBsOI(`U~ZA3pTX%~PggzhX&)Andhim z$>mWL6?ms^`?zCCxk@=Kj`CMv&QMnA*R!vu6I)C77kdA2{_%?9Cz*V{wLCaD{8UP{ zqAcA%dvbXADL=pV^XDjca%k`euAeM7eMm`3DG$S)REc_Vv))^`!RX&`nIh=|-=Wx} z|9#KGLa;sh_9((BkIm zTIX?mtCRcMAO_^9XGBCqRcu^gSmT7#%adwU{k-x_4+|ASTJP;4I=23rtKRzX8 zUVeU9xg-92Nz^;qS-vxyTI_9a;y)Mv+`;O4Y;bwQs-QFHO}?2I!NuF`I$RwLBcu6$b1!G-%F4=6ke!_!sD|)@A57!Wec!V|jUmIzTGlEYnW`&Jc}l|} zr0|8?GIsx#IVnA;7OW@nobN2uv&g_P3@OE;aL&YT`F3skxM zey3l@v%T@F!a%Jk+gFhkD><&$+ODMJe6g3`ZN7aHl5zQUR8k*6DsODKCNT{SNhsRB z3^q0CM!U)BJR5scq}-QBir39_PI2jaabu#OI zQ(;ayc=ZoV*AKR|bPw3#KS*qnl_cw<4gP?7gscJuP< zESDtSclbGeY*0vYM-M6t74NMpFo#9v3vnh?oE14)I!Z}RHU|z44*vH9HdoiEuC6Y& zvpcS;G9{w0V?08dCZaghhCj}CO%`bOHE-j2T0p*-Tguvd4Aoe=pd4T>92iz`UVi3^g`)zdFs&P6QfUr%=#E-S@!Mi6Dl22_7xm54E6hY4@)b`T>BC&1?=w0z}$bkuH-PFhaXVm?C982 zMpeKm=lmo2`h%}1Qw~-_x0*Yoq{VgXnC_!DDAV9O_*@=}`aO@qavCt=rIFeX+F4Py z;q5#2=Hz!F4CcV(eoDq-w9xr=aIi8EFFh@-p92Gxv=%lj&bEt(m0a)N8-|mm9>*2& zFHtH`)8+?MF#~&Wf8B`+x0({3z^7gKP3>L#QYr|d;(maiP(SQ2Q@uBD#>MV^A;t^- zw)SCW<}hF4RA*oL$!ux0j2?~Ei5FK~Zy5Z&YF|8jOzp)BtgEc`0~f}G1U84VaZq9Z zu(kg5>EOC`VuN*khZ13_v)KVHK4ubxJv;W1&0&6iewE5xX?Nhotplv_ z@#Umd~04aKHc)iQ`ZT9l6!|$w1=UoG+)hiC2!NDrkl@?>Q zV|{&i@Zk9ESKEml((PGo?IVK<^-i&`aO0#Bf&8ixadCBYOU>%*)hh@hEZf5_A#v!B z<-Gpe7qSuNyx`SM92^~u7v^{D0k*z7)Vf?ssu|7CuPs)9x;I{K19!B{%d59vR0|`u zKRdE5wS@k-`|5MhSI5SVHDWpUd7K`E@B8NSYRhKErdYn{!+y<~Aann6b>^|C{67tc zr&ke!NxR*U{^0TU+d0f<&t8~thv`1`>io)RI?;5;Z$vh8z?4=%;9YPqZ&A^$TenQ( z(0qk{16=z|qW8nrh<&W3Q=wVOb0)&ybYc*Tf`eNrN)?-f^Sr&>l3GELTF@=++c!Y( z_?YkbUk!)_p=2y4KFJ_p+^8QACYzk51Q1+4UGCQ@+h8;Mv!}iN=euh$B)F&qufL^y zxaGoEUtC-3Duxo`+hsJ~(V-GvbD zazji^%#t#JTDSh2rKES2>x{6&PxYh+)HsGXrIssLer>YeQ6KTw=Lqf3d1SB|?6exZ zv}I)0cNV(p_}LymmeF z>FE)U=P%YQ)MAj{miFlG?nbc>biE1owzdS@*|g{P1O&W}cNT!l&?qtxvkrH(vEg!B z{|)`9fq}u1KKVOuJ@h{G1T;Uu4aKdko+f=MmXg%8!^1Kh9K|t)^+&@7@Vus3nrCwnD4e=NBVlFMi886hID7QrAO2G8}p@$&p>FGQ? zJhg8+G@+C2?&%4{AwQUD#;~>hC$J}!{3VS*G+6cCyA`154u(IlDcVgXem-)9&ZgfAuu|PkV zk~a~L&| ziXTZ^i^5d>-nVVe-ri2s!KkH6Uz|7FQ8^^Z^m>JJAdSh8Nly|hBfS`HF5mxOOMhgOvGIjxgi_M*-Z0;Lm9Em&S${FTR%$=p(2e&FceTys+sv^Mu;zYb4N zUySN{tE;Ka7uMb%|NXl=k^i(cl$?~5^lc$|6Ev(JNHQ`qv_%bEZ6A*Z?0rpG8})XH zEI$d8M2BZ+oOIB{z+jKXM!qRLNXyTMCiG%;Wo&HV$1Y(+bv5ebWJrNhL<+&auJymL zq*Dhluf2svU2$V5^QB48*Yxac^;fTG&YzI^2`58O`P#%px6aM6;}dp1r1{+Tq}!!poO0Sy))K zwWmIQ{K#oNy*^%MzStf6`t@tLbdsR=YaV$GjjwTWabLfZVHn~AKf=$?FA+w;$iiZ2 zWi_q+;-M*or4}pV$Ea>ijy1cx+$qW?MM3G@zmVD~uIcjsA_ENiFlYt)W`lnE5$^CsruJFp)n*6ALe*X{AK|H z!>~2v`26q>KugF4jt&lxf?mdR=^GghPfm8r;uRGYL5y7Ptwh4~R93pk$%WO_oF?!( zlT6GnEC6ll|L&d9>(^ma{Ns&{G%PGVU0vqCzAMKY2HeEL`sd;yBNGx8^$RjL^kNo< zhLKTG&kTOPHyg@e(XPH7B$Gx+MFl-|Qe2$5g~epTW6X<-3*aAGT3TR3a#3t{MYDb& zVmVnWXo&fGhnV&Ii+9OifN=G6y9!cpMv;nN>M&O$P*^ zi-xbLq9ANfpBlM`0=bMJkXthBjPMi1QymL`YLJnWqakX4Ueh$)02m{ps;a6Y_ehYF z*iytz&-qn6w%y z=!Naz9M0w3J2n<8@w(VoIvx7kqc+%ea&nM`VZk9rtSl^KWMuXZ4i@dk1)e_Ln`sV& zL717D{rdH*3~(>+0&#t#yg`@tyeoNE z*ZaJzsOT{>^ZLd4sjaOo1|HQlL{dsB;i4nvu_4I>M0Z||quCLI82M=6e!ho%Z zSXIf_x`ANcylFr|OB30FMf^xcR#v;hO54@d_05|%;^N{`QbC!SOMV!5XJ=-gRVy6e40 zJvP`I!iiW1y-^RNUnXgIc~zDBbBvc`qW+Zq(`Lds)%(MD_cwNsXfT)EPxIE0))O}? z9_F(P&z4;EhQNSF+SQ*WIEt5GVPVKFd>26IkB?toO6sx2kUn`GFX)}vB{!0<&1=6X zGw)1F8Y_5tMu;?4emsFNgDrLngl?tn-Sb}(>gwD~Or22nlDscg@=e%d&t_Y&5TEF1 zVuiPpACHcXHg&>L(a^ZbMHuei51?AhPfNQ^K%j4EC_)!O5`9VyI>!0w75bc+nb|ue zfA*{_D=X^;;r+=P=Ws@gyquhe^z_D1VkNow6E<2%%eRBtE%}oqub>2Z# zp5*pB*s)UY__!V|H3z=(ZixNy#3u6)@W!lZ}pwrsj5gy2SCbw->KKx36i= zJtQh8@B2<7zx&uH`i9F3-Yp9wyj#YUw{H(uq@`ho5Vj)7y|)F~*+Dv=K7K?HF871n z74OGSo&YI6$3{9iFyL#NoRUJP@V5PpqM{-QIe$Wuo979K47+q2yh1qV1 ze#267h!BnOo70Gki{|QKi!)xVY$34JycVoC>9FLFm0o>ZpW)YH5J*aH$h8<~W^VQ` z;fYDp(Z9E21`m08$*?0HLH#Uc9Nmz(1|I^OP&UCI4WP%5u-WV;|glL|2O z?8U_rth)6Vv)8|9V^azfM^wI<=5xFg1%v?R{l{9WhaC2JYuDHa+vywJ55rnI@NH{i(d$C1r5?Vk^>*OQ_rbmg zxIZ+T;)ci2@URj8yJ=--FG0~PsCJ*A7wO#D3E1?+E!}o<%D2w?*YK>-Z=y!zxyX;! ziGTtqdj9@eoVG@v6chkP5jJ=^s{b^*OTiRX-7-;ASM>Pcz|u|fcEj@#p^}8xi^uBI zb?&2qh7pds0K?GH(P2%y+S?0@if-WIE*1qLK1qf*78e)WlbD#8pyZ(-M#jcP9OAY1 z8Q0CG>hfuWd&&L=uvtxVA&r3He~&+LKd=}P`FMC^d#E80lly8${}-AUE|=Wf9?8pQ zy@hIp@gNItI>az6j^cPV!;mdz#eR{EdqmCF7V%LPYTOuBV&UiS|B5Ex~$3}!w2V9<|oI;vMMGm(9^f?K{HLpIq6?B`32pw@b+D?v)jP&ypQBza1 zvtxg06w z^Rx@~P>{c?zj7QB(2U>*g;qrM;LF6vbtu&%9By`-*l}QVpW}*lXFkxlO?0sio9X# zJ1V}TzbE@&JEeQu#3{IU<_|WYeVWhF)w_m{uA!l^I6u#CNAz~UnS376ciL39GvzodV2cJ%}uB`Bfoy(+`O4mF;?STP*h|qE*?-*` zSM=?hUT-}2_3PKm%gfulq{C?jkUtIHCYo#O>lP*^s+yWL9>;b@TnVCdd72fF4}Ste zv&^VEJM-v2M|FN*h@x8~dMEj&^X0$&wbnZ?Oe|s^yIJ8y{66z}CBs#-ZDHxff(VJJ ziV3TvB$v)C{9)A+#oYHGRy z78X{AQ86fG{PS<2(@x+ew%N<%wm;c3LmHzVs&;pGhlGaWU}Hn$0qI3UQxjC~{waC* z`JqZ~rNheLXGX=3wy?1CwUK);1F`oFq!)%CMLk#WPkrI zE+O%xR|b}5y2`$7XlQqHss?~7(9B#xqQZkMG_iABqGD`sL*|#9B6EeIf1Pdl0Kf@Q z6eA;Jszi8iPY=t(heIPHo13@WyHL!(azoAZbdVQwd3%*kR|k1h|F;)_SgxFMh0RW7 znfXUjf_S?2L7i5dt~pPS!)Ua&x5vrdJ;!C=6g2a#{Di;U&$sPx@i{%OQ%^a-+A3l} z>+vsne4JCK9{cRvS+vPHAaHbagleojbVHssiEoU6#AUY?=W0?He&wjX=Yz(p&UJUO z(H9LWH-InD*hfZ209Y_HF&T8bjl8^l`!?|Yv$L}hk&uR=ClO0mSn7#8gpylf{m02! z$-X0(d0k1PtYwNyY zSe~mA3url3z!Nxo(7GIKZG+ywmz0x(7+%=XYEN9Yo~~WV{{aXcBDKM|i%4C4?DOZ_ zFhm@3j#~G_eBK^8S=sAIzpev~Fz%$RvQkHHZ+Tfsm)RR({xpy8L62{Y)<4$2D|gf1 zv~q8GZ>>RRlznLYQ>mDYmfG~IxSTlW8E1b9-KEI5#IG?iJL~HGy$OStp+b*(`+8E8tOEe`bdGKHzXomN>ERZ}wQJDKph@{a z)2*Pa92F5^3!Z}bcnV(L8jx?3EnoNbn?9wa1Z6iEBJg6X5?lyM%F5*AK5jMvjrI`r(M(-;urEjhl z^R(+No#)-uT|BC@BCDx2V%BB<>#nX|`T4x%*2HP?ksb4}7XktU8(eqA+ZW=+Q|a&D zM@7o5rlk8!7+6^a0h80e_@Y&5gMxgFjSb2O(gG6UW2v*nlkUSWV3TNVZ4Dx12qSr% za#{EMnh(C`4Pm$IxPj#Q79mzPlLM5zpORV&>gzO~qm}(V2xh&5AeOcL3tt^4yZ?MU z+$1qEEIBP`7TQ?pwL z4Ks6y*_bmp0`j$Mgbq(5Z_=)fwV#I*`^z@Vf5C|Po5g{oecnZ0`#fuJqG8^ zcy0&1m8x`}RC!FROc7f7SA4t}M;jUTf1?+=roJ$%KeN`6^185N$n0=(dMkw;*grTp zySl2OrWW)0vyq-2P2uiAV0(Le#9fJt{ZU;YlmYwYsN}&?6_=O8jtKkkA?}&Eii`~Q zIEUSb`ud9i9C88A6Nkgisf)ecjfo1_G9i?_PSdrnwZ%A1*1%)1JqV~-T3WPHTYTm@ zwfA_pb#L-(63vGNriO#UH&}Q2?S@bg-Y{xT4$dTgr`(LM8uQ1ysJlg-U0sQy z%}I(K-Rjb&Psu`qU;kwYw&DTLNVA^J>?})94_`-PCk`wWG+#yK<#NCvSi90ONxpai z;OT6v!~_bcC|wbdD9}yP(HV4pW_&C4xl07l1*=x&D;1T1wDJu!(5YMw*40HtuMJTZ zL%jb?RKmRbpVSh*d+_zF(fEu@-SJAD_1AamneNjuDV19o?QCC&$aB0*I{PG@;T3l2 zVbNN&O8sm3Yv7l-`rT1o`zKEXjg6&Vyl{7M!4w*vo1J~#mst0@=j#)b-o`V7tS6S^ zrO-+Sg2(`j?!j-sj#gvE3$V}v0s?1+I8B0oSDz7pkieLe_46LXVP*4uycqCXlhwCvTD`gU=v3!X4^xXC+Z*vWFh8$kzJ1DO?_?*Rq|20&PN%)#-++f4UmBHvX$yo9z}>;A(l1q1;F1RLEC z5Imt#l}K z1?Hq|gX>I_?&$%4@CT9dB?ToVkAJh*i9SHH{Kohtx5259ghXIL!4~W!D(F_P#0%o( z)DIlyBe^IyZzc!g-uSC^<8Z4$XRm8^yG4ZxRhEYX!H{k>I zm_Vb92{49$Kw@A{bA$I~z3Bj*nc0f@X#S7kKlqrdz*v?NsM%=!INVyR<;%#Ay}3|} zhuJE7xqY%fF81Lf=)K-2duSX3Yh3=NfJrMaZv%?riT5L>C^v`+s4T?9(U2&ga|eQ2 zaP^D@I&~WB3;Wfjp9@UPtSu9azGWI_FE~%(-3{=18vmflnv-9U(>Xao+Y}rUl9++7 zNAtBc>)iIgE9XEP$Uy(AE$tA>vs%e(*%vQfK+u_c*#YH7)GtA72`q}St1Fss<7i2D z85wIjbJ1Co-Ge1h0NifIW-AI35=nO+a&>Vdja^-9Q-Gv&>d1JVEC9t>zuenjQ?<6< z0=Q69SqTCD-xJ>i6dC%TKHeM7s(a)dEQA*x9Q?`WHzK7jb&+7)*xXRIB8!6~(A$eU zlu6BP_b%?>{{8z<-)>-H+5on*wSCSpx*7q@6elMqJTEqSWNhs5Qj)i{bkh7SMY?L3nsF zYmP%0TD03Hz`d7NmwYaI9<)ie>%@^DoSb{S5IsIP7~RnU8P#(wt*mUnH-Q&GFmM!r zAIiW2#@?W#to&aoEl>JlxTK41vF_addH_o?kkXPE;K>GHNjG!a^ z;B0vM^t1k0;T^Cxv9PJ9w)=%t51BrtS~Q|}a;hFvBUdBup1`Tlo~3WMIGO${d#<`S z1Y4}e{m@Z^tN<$UH<*fKUoSZ-(2F_$@>RD#v72vyL|0T>858K)TM_#{s>MZjFW|=p zUz=@-p{$s(pvjQ6sCXj3!}7mW2}uJk@Qb0m8o)rfD6HNUJ;w8!<8X1kGryDvatb4c zU#u(Ml7yr*Zw+pruS zck$@iGt;qRtcVC$%B3oO@ExZ41`FUf?n(~m(%+*PCtLOEp0Y_PWZ3U^{Y?0s_=N6E z%;W{bc=_H}fdbh}u&8)*R%r7&yScgTG_!#ZZcs>!8gu)n1nd8lonQNhg0~@2twpu8 zrz~jWCk8LI1$q63#^18hi+oJKR=~_{fSFP$frVP z6KTE(5^tJB;S{}}YzDIiOw~+7BeEqsg-ud3{p{Iozsy4>aqG3WYh$|p+hUss2P1QB zy45ZbfgixN*e-;60#gRWtU7nq+2o|aVPXF??p@ja`gPgp-Nn_#xv;kMs5H-l6Su@2 zEmz}(S3}7X85G&9*-H_>&W*>%&8`f+Xr@YJ=^qs0blsiTrZ!q9wl*qNb(xsO?HbKK z5Jp?MNx0X9mz30p^&Wd)_}T&eR*lAVB82$;h>4Be=brSOD>fFiYsdweQToC=&bB4s zClju6e32JA9W4p=>)GO<=G;JSZTl$cd3*V^5M?A%n6o(D*H`8!$6-6B}&HmEq zs`IWo-#=e))~9-_(Elo?)I%Y>WW|Wx^?bI)N3_~=jR-ezd>aj1m0sUc@bFJ4D4anD z59G{0{j*J-BKS^6?I3%7sQKj_5j$(x*T2t_|H?ksvD0a=SfEUe7srX?!v4_APNX1t z8$32!Io@}PB+kqZOlJT6JZN<)WuC|8v^t^o^#yhd95JWyOR#&eZ~b>8B8upPv*REA zAH^hyNaapm+PE*)$sj(7=~RmDvV^jT&`4dbms+PGUzlql3kaA-bX8T~k5?ixy<;v2 z>Nu)*G}C=7*CME<_9APX1--ZbN_p_%5jH=k`RIF7X%9u1`gUD$>2ROr=1+P;hDUMj zO3I1axX4GvC_|=b)yOuGyvB^rA4gSWk$oS}FOB;6WjP-u+fQ_p&bxAdW_!Llb20wp z;EX(!NmS$?#pGUB=F3a_`S#RGE)fxZT^USYC^)dIuJKXns_RS((b$aDgTpv~--Z80 z-F1B|HS@Ud;Nl*<+3ju_6!bx=^F_H*#omy{^z2zp2}yn+L#%YN0^{)6=L=rI}ySnY1=P2&n7o6x7J9)&0{N;O*7)BTy;r#7rcW-VrTpLiVQ^;G<>r>%4OHw#%3 zAjoE*89t_w4T{8+{2U}Gkh~CtF5(D$y##l~Ma9JSGexZ4&P~^QRIwVBOz3b%X5Xjy zD%CEDAX!En7muQ3#2zz}V>q-eYdk76GABp(i})CU>4E6>h~N^ZSB@x za^A6qzzA0W5eQQCp<6?2CFO6Lzx)6Svg_1mNU0>$U*7*kl{k2RQi;7Ry*!<%;QL?8 zAE$9!+@;-peZ(=!Fg65{n5ud!p1J@p&^xcbEf7Ej@_nVM+BPf$VujRyFOYQLyRNP- zs9x{_VMI|evdGxYjb}|A%uLXZ0G|TV?&j9kAI-baxQ|^qM~K%*ND4<39^6(nfB0+W zI~Bti>)+Sc2pYb8CCXqK49feNANJ^uC+(D}vYc%1vGYeg(PZs$M52*VWa5FbGgX z@zVzU0G(|>KtOA&I2?okHiw+k3b>BpkrBWgaj~(Xq)%F#noz^r1ij8;@}5kAT=VN! znSOIXOiT(AG998J1isYAmE_9x?DwA(_UH8Ue?~koWWldB>!83w?F}u6BbsG zmVT}yW&HkYN+-UhtfF#l^+|v7*YR-;H@E8M0LBN5vedyKsQy&gXN z&_C28_N|HNN+@0*; z>4H{gXI516MgXVsGsmY+rJUt=FXiGWu+72Cdv@a3+C;w8XRTf1_G@1`V@S4&lik2p)ZOzmAd{Tr4+CAaIEONa zrAKwdhJvHMk92bRaJiP6SMt1J5U!31U;&nAEE}O48~Yo1WqFqSmN>>Zc{q9CQBk_7 zjQ#LF<3mPz78XW&dKUWT2fx5)Ab$Totnc{AiD%>+tE~L2?XLoLsbyue4L=A$N(GD^ z1GGv~FBS|Aj#~g34uYdZI8~k9LT3o+6O~-Gnc3Nva*sTIr*iacSf{PdM4{vo-yN^U2y-p8ylHht_7(xFnbrpQ}U4C4S=Mc zy`)GOMt@BJbAE7OiKTtnS;A1l-qBvsm@sg_8bMT0Kip~Ve9#VlnW1zIMOD?&Mj_AT zSHhMXf)ZiOnl&7I{j@)HF%vom2kCKfBP}g2gWgwqUkdCnfvmon{}qbn8`G%@+TuVb^Z2w z+PD1vzUKO0BoL`=Cs63_fzGzS~^hqnd=b56RAuX;hrYvj!z;lm0Hfymp zr?;o$pRH|C!s9tT(RW;AnxBc5mRMnD)#t21_c-%q32ayl*g9gYEG%Hi0U3P#>oaqp zZ_@HuDot7W`RfJ;bux(n->5NjJbmf_5{CtOT4v_fc-htGpOVSCwtr+SF=>#K{yY?M z!vnv)^iLM@P2Q~MSx*Szuby8$vdXgWRi~yzpFwI+k<*cX9&47Op{O}=JA9OqBP5XM z%kA4om6ase)Kp&Q)wvYAiBCP!x7)($pS*Tq)^gcfmVa>dh^pA)V%BD6+%DUHfe8fv zgZ*+pEt*rr%vow_>2PDCPxHO%%1SQWz-EJ@b`oBHVcN(JXt&xK(vy?rm6coEhCxuM zt*vdJzs#j+d#^vjuV!Lo_*3MR@t*WUU*o+v{gmpejH;;q;1I75`Ykq}xTHuKN!8Ue zg5D@QI*Jey8a{baFQ;UmQB*IW_v0-j@OBKmfYlxPG2Vw&+}vFhl%qhtj+eb)GkGUO z%CqwSf{(9m3E9+!k3skkcJYrJv1m)@V_Z1-x4>WV%a?~x<6 zQnrkwj3>*S+TR_4dJDi?^4cSJd~mySS~hM|Oybh>^x$W<;<0CSfx3EEe0;gZG{wn; z^_c)MoLIBKPT60EQVa^c+{>4O&_ROo(@(Y$&!#U7=NI6JM_QUuUtZN+ppNq5(U8vK zuANUipG!ZJq*qr}S5*~PmF1V^)rU%br#HTMA`b(~{GM&ep>JT#@LlXWGtuc%N95h^ zZk68HlC|M%I3ae%tGYN*0Sttu_a#3USB$p_7!>`!{76{_D}k4nmtuy@F~FYwWRZbq z;&6(nf)bQMyDa{iZDvGBMhlyPk(QR87Ss%wyoZ_KnflJzt)wg>A_7TLLSmv(FQ%v{ z1DU(=4ujR(n_r|^$oUY4JrPdXY~V`mw7oJ_6ZPm(a>F?~&``eHLB0jcP(*+H_;J(@Rr^;TnH`bo#zIbA$wf5G~pvO}8 zSe^Ok$^M$_@Bd0aU7D+~OAGL#dAYguo~K{HZSrb?0%>&Z>lwSU?Z%VC>NM=0Jc||8 zFtXNFQTmx<1yq}sfc@ehlU^ZUooGCaX&$;cIFthDjE+_n7Jf@ZoOvS=fTy{cSy5gw z$P|@AL}Pf^x1*w11zp)~SCv#B=7fCyeBpeww>h<+m`Kd3wY|5u?rjZ6ubO;)vzIqE zHh_D?!^H(5VF1omp2ml3D}9WL3JnU9f2G%Zo?@tHvo}cpl=+ta&z2UDYOKd9`X z4|WzV9QKb6HUNN6z7Mi>c3z5d#h+P%;X)aRK0VwP5{Q=7rHdjP_6z{FRZV3<6+S@NqKnGf{^&?)hpoIz~BGs zTN0iRU@B-}GGybxPSVrU_?#jL@*IH|2Eo{)`_6gyBq*s~^sM-S^Vc(l+gYD(nBt zHtA)tb8Y1bIBWowB1pY7)k`YmroVx)u`*aiHzqh8iK0X7H+;y#1YCFKq3gl}BjDy_ z)eq(+1i5qPPQ~%AwRSBSs8V_g3GQyzddaS@YnfW>>S%Q@$P>#Y@)cW7%t?fQi!XT# z*os6(U7d71VB7zh`3O8uJfEw=?|H3Ks~S`FF3cs2Z?(0PeSLkClUiW2fm+tq7HG+1 z1BmEkZ{_5~t-Po--W=n7N<~?jtBVVKm>sNP3!PD>ad&SY9iL1G1=B@J!U2Kt2iaL# z9($(us2cjGFJ8QU9lr5$W6IsFFOj$}DfLqX{#&~LaXmVNg3%GU}#IVq`5{3_Cpi|#C=n8)aMwzc#ZG`W9Y@SLqB1sfUKKa21^enuHb3y zy!MAYx-+^di0{nOn)_PQb=-*}5w{O%pN9utM3=8mtbME3i1gYbpd}C5bbBn$^Q=%B@M#_+v5M1iBcmxIx;?fePxB)Ze9|) z5PN%jTo%ULo!N?+V3CI26=)L3si~={HBaFDpH*8JCAfy{?CnLqf1LURHoNLIYNUU9 z+H3pob0|vS2!m+jqoTfjTdBK+?Bx}jF zY3b?HQ&UUa53NRgjYlSWXEfY$H~nLFUWO<|G&Ke08e*3zFiLz9qb>2zr_IfkILiQU?XK>WaKvZ zi3!c+$wesmCc3_`M1K5OSW=SOptw0!5@?ARQjySHW|O~hS+`1{Vs2LFdKh-45XHh-^$^5h$iTv2m*dd^ojAk zJqO?^6R8f%UJZ;XYH2Y89&DSFx~GuD3m_IQq%1F=ou9v$Y*|Oo#pRNi$*_9D+2~d8 z?8MWXU~T~7!kafxcGT3~&q_>EwyT1eJRHgJ^5ZAih9I(_AnWVvF26-gOfvobL6+n9 zI&(2GVNg)h)!kZHxQxwr+9+>erJz=a|R_>6yR$AR4b^YsaqMEF(oZo{wCKzyR2?o5m~H3=K}h{?;_ zf(#D~0D?ff3?{Gg4U@h^97OWv%caZ?em!%OL+B8)ux1*Mjt2+X%~pq{I5?o;+2f@k zC(p^sTHe}vdGD6|*|%7si{{L8%$GQe4&a||2 zI5qrED$>o7+k)O#JXO2a1q_>(ma?qL3fbU9M0^08m*{vYDcwf&;K4$sHpk08l+hD? zF!l`m_5>Wgy?>_SpZCVa$9JnqHrQ1Ag=yhpa2qK*l#dQ-vlMJ9huc)XqZ0Hq68{T4 z)a%vA#Dq|trgM?Fq@)5ECAjE-k!qV;>0`PJA$LDZ>3euMo*v0pgBP&n4D4YMqRZ$A zNg;d#M8z@xYEj&}{wiAulw26dLRU2W!jAh4464e?u=2q40ckj3{rGM?;dM-OLES%b zOMR)PjXueF>Bi|LB~OXsw%18L9}yyj(2#;;3Pvb6$^!J^H&fb&GUmmng?IGB`Dti{ z!7S;@43aJ(=DSU|FVWG|&)(cdXc!nU7$KE{NU*XpU{deu!rh)`26?p(bWt!GW1fZZ zyq>rKemcb8q6CHRb$_+`T8P$dPo@fM8p1&tlWPbzCC_J_-xJo7y|Fm4Z(JPeyaqyLi;~mm=)u! z8EQUc4}Qc3U}9^k229Z$*3*0=0UD6km?ffGZ(l7qb;HU^ZJHQL_Z zUQjXM*sgxg;amNI6fxtLma(lrsm6_sSEqXIPaLkBtpwsx6}Dah6;S@e$vJz$TDTGE zL)7lqIZB0(u>d&BLOV1p3>UX;bGi<;tf(jPojc&%xN+uzw+ZH2nh4-?HYDM>eZA_RP90Inu^g}_Q z2LgS&;(t{2<>6HIZ}&&WBtse$nL|m2q|8I63=u+62%(fQGskd@5k(|Zk|LEPQMC#1(5$8`Lb=li|h-~0OGT$jtawte>g?9Y9#b+5G!ah+n{oE#nzG5gcsQc%T` zfBECpLY3q-usEC?988=t2L%LbK|>c$eQ{tdi*@7F*|Fm`3N?X%Cc(T%fLplzmZ19P zJ1TEJL(1KqxvN5X-i=`}o^-~fT=%;UVnPE(a` zp|Zk^tW2oTivR-TB~}$b4SoBOq5a0OTerIOR&{3-s5>By0__btF0R8DnTBJ&QGG0| zrZ5t^s)@=y>btoj_)$a6%{j1h*G6K%z|71H)g0=BbM-sFEs1Fu^9TL+kS=h)Z-7$ zijVZu9PO_O2t_ojDjOTO;}LyTS=sabI{<0ocs~0{RBT{){4Bfv0R;j#qN%Crud%Tx zJv)BZ=(?^hbGtPb3uN6`oIOh*{2%@Ax-^xViVERY4K>1tjD{vBDNAz>Fe}}=$NT;w z*xVyBGA)gbuHN2-PoAhVZee5ucV`TV{N>Bn1O9r@MbnWfYw|sC@2KeNf}KjI-Lezo z5B_jFsim4QdYne1H}hD(7B7d7dm;G)&J437xCs71VMzInQrls+^(r@j%6BxbxVI2k z*%p~YqKR`B)XSha@?pDy;s)|f9TP`X$P<-zC*`1T`c$=OdIl?AOWpC4(kzMq|4)81|jA#Ahs6@>?8I-di8Ti@dQO~*4Vl=4%?~{#|HPA1hY@jDtQJt3N*vw%*17AF)eMzxbo}QbdCOG$$#uc&pTFlJN<)pY)B=c0rl%Cjp zEP(rmL)n0k8DUhNs&N}_2aU}Dt`6w7ud9A zfl*KF;t!uZsd62Bx1knZl(AMZO`@Tp`5YJxQg*7p8anJ9ZZs7iuSCk39KglcLLeyj z*KBU(AxNdhsymF1jJR2e(gnSDp{J$&YjfO)NF);8=IW-59S%o^2Dpv+1E}pZgtyr4 z^w+Park*)>Zf`q{2iUzp!AQ>XDNBeJ4;?y*3xjT`p@BZWK}$nJ@~NZx`_{@W7d1C| zB^;56{hV{RTeGpfQ~XP@!@cmVLKpCcb~{)2^nPA+@Ym0JBgZ=cnYcnz=)m}RD*CkC zTzhBdD)5vw>~yVEd*UJvGJbz`tpL^A2vq!kwaC2t3!x%ylfHRbf`ds)1Wn9dc3umTZRGI!C0X zV#@t@U1Kr7L!5N56WK3Xd}DccQP}=97C#&;KtT}H5*p@6 zOE5Mu0SEMc{u}*nh3N$<6}oSgX^$tKnKI3buTas2sa|B@CqBET+4qEc(q6c zEgHjU;?kSjEr+Ggdh;rU^dS}}v{?8vSQ1#q5To7vxAnK** zCMJ*)?4qiw8yd7Owp7jiVyH@OO7(Ch5680$pWN<~G#$O^XS6#1m6@3k`u1=iBf|kO zK}|OWc!;Y-2ZzMZR{{5R_4f8QHSOo+CGd;1!g z{!NZ`#XQbnEOl}rkM#2N^z`=bN7tp3JG97C9&v=K-c@)XhpFpL4_byS5dzQCvqnbm ziudyD3^5pNF(9i`x&NA&NCS81qOY$m%pWWnZKub-_Pxvev}vh-Egijpz~O7xK-&K(V<|2^T3Jq_p&!l>vM1@}($UkS@7%F-=gBOkHBhIv3qq@3^Nn?Nbod1XHpu+u z=A8TYL5|SV(XFnnZER*nM$^|`Zm)+>6Gl%iR#x7Cy9(0}Z+$pQh_FG^Eu7edoUqkz zhUD`k8A< zi2B6Syp)=s7w8%!{xt9q9~kAMk2$y#Zog)rJTtRJ{A2DPK{cVY4B2F|Pe`Hk{{5Tz zq_K0>801T)egt#IPnztn7M~VbEe-%R6#_5Nw@?2Jq*!eW@<>}}p;)atncsnnCO@^? zlAiv%l`e0VgM?k+Lc#dB^wv07MH~N74&BIxWWtV$1|}*hs)nUDRvj~SU*8H7wU9v| zVO)l7L^0Rth}}y^2}&;&`1#dBUo+H72qi{a{X#lgOl8cL#3ns$?K|?`S2Z+f-{d}e zB#iBO|NdxY#y94v_>JOh1s4gCGav;8b8%3YsTM3F+M;A}D~f~6aWl_J`>U3gTtNfa z#3FW7RaA6?_QvqBa@Ofz{pdq%VV5t9E{d%7HW}&;J@0l7_$TDrLiD2R+ z8lUD1MKs*E@7#$}SM26Dz}(ANU++@4^E=)0w=vH&v()zp z?wC43Qge1|LUOXEP$ER%`)kg}R^I)seNp+XL~QLK?EMhTK#~ZOGGusDU23qJwnl>l zQm9w8Emcbh%Aj}Iz+Lg;&+H4LkB#wj~27cjs87Aj2CKMT=Z;aHlW$j_wHJG4Rizl2Dj#r=&Ctx+*9rY&;#h0XIRoS%U(5@IamaCOor= zckjmZPwW&X!>b7I%MC8s(DQGGr*C2 z^(taLXEEP{SAFSG#K?!%RxJjxGcVNBQ})w?1W-yl8vlL9?a<{8CW<>~dWP(isvhFH z^-l}Tr~?8nTDPPwmu6>P`|oyh zgC{M)Z~7)W&etBJCyk80z#Ii?^dLyNr%!R~U97F|<>!Nc@BaD~2Tw^%%z5wt4SC7s z&O>f}0n~&(>*ou5#AOY(t87R4^T>_OZ@zuyLX|2 z$9Tx@=Ulk2pWpk2hQl1OI0>D7icWBEk%2Mfb92>&XO+oEmTMy-PI$_B=fpm16L|OT z-3^}V#9LBdKOpYlo;eOksL93v2dpWoG%pF@<8XdF>xS4UA7Sr45_pq$o z;Syrx<%-knc^n-bQkfTvr|^B%ki`|Jb_89doxnfa!lP0v8@5Kg~T1O2-siTvwJsN1~Y-6&0{iO^bAzl$w!Zp zZ>PpSjGTCIz5W92)$ZAs<;O%1dw>~Je?*P6U@Gt4203Uzyv?4*#6|JSv7NDzOkH{X zIx8h*baX@&!=$R3d-th-PL1yJ9$~!RBq+x=J~1`1()qn)tMXdX?NnKtcQp55F(T{^ zjbTnGE>npu>`A^zkYd>$Z zPSc}DpA?D@_bEaT_3wL9!*03}_(&T>jzLzYg@wH8p6l(b&kAyCJA2P1s-4i&zGsyG z@A=OXI>+!%)U$0`4Hl}CpDk&3-;a;6 zW;9Q)8d*%dcJ999y$I-eBjAKTfncca8plj=fL|8YujtM~_Ke2quRsT_xw@TC&roli zd$KCdeRyj0k-6wYGv&ZnK{G>Fl$3B;BHWn?9L)pIyR^gyYvgm-Q-hj{4jf_ zXs958RRlxtx3oLT=3B^UCca5ID{a?Agn3uduNCORwVOto?oVr8E;dfwv8# z@BdC1w)9KDXmkf7(yISr}_it;_9{r4;jfJLb^>hxJ_Hvc&>T4q3oZ2 z1EKhsvcTB9JfcfKHz)frM!cSfRPGuX8{<$!g!jZNEk})6YO+OF)??elg5%}2MhSrt zW}7r2X3OL&>Y8I*H;SU0W~Sa)EKF9akA`00=YPY%pdA(O?dd5fw~JT5dUf_X2H(-q zP`5^d4s9Ec>geh^X8&P3DM63uapSo~mvbp{V;~qkASw#Ou%IJh``5hk)lE77c^)Pl zIe5I6FhRy)PwIraQ+_QCgt35-do`_)c0I*FPNITy2u&(bg!O! ztz)vOKl7N|p<~DJxQdLrw|8|#S$+R7XbFu5L-x5!uO^Wo*Nva&AOmBEnxkI6sz)js zpC|VGXih>nb?2DMoiqe^EzP&bK0dG{9yLnx?L$a>cmEk*D9Gcz%(Xxf8Q!lKQ=1KrePkvTkk zjH^YMCm^B4dNm=-<>E!5vbjyN%}q_J3}Tk$31jM-yT-k)hlNqAX=~T)>?Vlp%o|go zArjYr-nnz5R7N%(yD?XH(Xfr?`?Yi~TU%S%^ix;Mho8aEE#ur}ZD)rpsjK$(2$~U| z?Lu(vE$s&dp>)#VX%n>{;CJ^j$h$}p5xD6SavX)SsEQ_l!HobC>>lTl z=mPBvRNXgzR(jXh9%pj1Ok$;GTSQ1P=vj3FD>CLw_pOfW3}*pgufg+#N; zXC}0IANM0fM&=pva}sF7sCZ-6s(h_7<;~)4q}Jxro94-*$_}lmb4Xd(wic7ivhId; zWDJ0R_^^koE8@;n7_fxt!uVFZz<&skVD(<|e!bY|&ybDZhpkLcp9V9;M?y{Apq2*) zf{98Xn9=0<+=BJ8c486Pn=BYfq@_)aqB@O)PyJnKMtDmFeN1e8{HUDIH18rSz<{zB z2bi&Az!AnILuir@`Z>Ges?s&R1KKmnHz6g!9t~?Cp0%g=JhryA>uJWBy+(NOp`cIz ze9OW7YvA}gfcW>G9^XB?cJAaSJ%p0PMEd5|;0qx!%<3zxM2hVd2jL!fC5Zt_pMSEc zDf$5UHgPkdX{(y;j1bRm?f=r-`_J#+F|21_I^LYNMaY$t^d7Y_XuZP9s{Q`zXlR6M z<_uPUSXo|119m$p36;IKvoo^H>B^N}B+RIZK$IuE8~Qc5j7*4d%DawAOEdjFZJba$;o7Zq6UMZY)c5$%*n`N^&n;PO^6dGQbAHj4fxQzTL2Cil zo4#xn^A?|Ft;}Bc@h|&GP{Qpa{yd^-9GU|QB!AGU6rm@$(EZ}tMCogP`%^6i zetul%&h4sNTfmc{I$w~)x4L-o>eb1CxF4-b8r(MwWG*;5HeM*27UN>3C$a|nD@OL$ zgZP#i&H>qkKP7&2$O?Q<k^z8$Dm~>gG;^?^uX%aRY8e|DsWHq{=MJ1O8se@c zZQPk%VrNOLa^90%26`0AO^324=0%(MJmJ4~JFgUB1K8tJ3bh-y_81K+AtSn+km{`d zODyrntpam}zKxnz%F74#2c|rJlI}Le9b~)o>HT5fRC2*US9kXr3yT!cAC=xL)f$%O z=Hx%!hv9skoR=pP3IMD^*f1#dDIL(z4H#-TdgRD!fDrkqDk!Hgp$aA%ehSkQ8aB&& zXK=tRK2E~f-hQ82Bfe+APQ=$s7b-QisFgEsw0}4WM(p`4ys;)EI`&4{gH(rzpxl3@ zbi1t=tU%X1+D(jgPwMR1GQ!0NEjxdAh~PFSNNE_db%}~6IM~=iSicw9(l4e+1^Jpm z6EXeC-^E4T;3MGBR?$eC`qsuq6$V^8tO3T@i2n0fz&nGCqW$#_*wi}-wO$=0S_p9+ zWmc*)2>s9P9GdMd)sJC$xZd{VMO%~8tv5mLM%z|p*c!kK<(piBq)|&t%iDVqv{9bP z0i{*ONGn4`6J6iUDy}iauB;SR18S)bx3SczT?l(RMh_GjAH+%j-ebz_e)w|7LDFY{ z7LC#*P_3f}#Km{{9qLfZziI0x&!QjCIGT=-9s*Z0i{w3j2^RmEGaW{@=P~iTmYhQ6V+?;Wpd*rL~dfzf)DVwobb_ z*-;J;#C`1(fs@7O)35%Lz!fi&A;^93oQt}LSXknr7dR>-gDN%5Lp{8_va*|rjxwL5 zO%||V;9F&UQC-bb{aXCuDn`GMBRV=dT2^}Lqbt(Pk>p?!N?e+(oTAJ$@PrwVSSD7+ zA7#}w=^W!z6e_}q2ntWAMV$NJWLV$}I10*~yWh1NW%j-R`~<@ek{THBjo)9!emsoZ z*xA9B&2&4_K?9`9FxXnYWn+($Fyc5z|2`Iip%W1iM-C>}3H0#DNZ)~@_gat4w`w>B8fFx9UPoR(S>@5J7?I; z=YD-+&t%%AbXX)@t?0#zcMV4&xr%15uC69xa3r{G97IDHwG;;vDIqbj{q0+Vw*X}< zqp+~>kDs13%}i}yxf?aHAwM^_1kxJ}!9+wwJsbvh|G>wa#kWfY#Hg%V9=`bTt#~2U z6Y`ngx08Q1B{J|C7_?^Jk9H<(M=X{Ele0{klKqE~r0q=~mexjF$2B!8y{CSOYq%)n zn|LzS;@dxFUL#HHcm~1%yHVnS;dOGM8u0P=2Q@O?y8Eb!MqyswhTf^o5wN4LuMg8o zg?N3I9Xvdhi%r5=(+y}s)ESmmRy^9@Mn)lbkmc_IhQcw9h>_9J4ZFOSRs%3>dpq#I zapU@pfLFA&&qG2&1_rEA@1c;jwtkKd3nUIk?UZDM0H`vcG2XgE$Bz1*x%H9L5(>}~ zi}^16;R=)dK|K*f>Gtn_@pqyFaRNG&%f+E>bpN0DcnAvudq#^RU;R~^;%@A!s0x@A zAa)^XqxGAXmE+*Hvg-f%^QT$$n#_|N%tAZG&;J3hf@v)Xg^j!Tj{Z0FFV{C3d^C_~ z1+kJsX}6Tmy=5uGF$~*krs1|ac(#h{<@u5vX_B1mCvLG5p`P#|*rjk79>WzDN^Alx zL6Q#-J5gZqW@S>I^clm;NIw=athkLsJYQN_>fOH5`6)g;eBJWZ{4nrT;A+tmcIue= z#zsdtM{;v>%W~yBZr)GSDT7D~t;oi0@$u2_Ac*jjx%M(y;Dgv5uiX+I?X_hWqsy7u zfsn#Ve^n8_+k|8X_t=zKbD%)py?uK_lH6h8a^f>V zL(I2e^{v`hoff1B8<*oKp(SZ>^CI*FX~ZqSJNvrIdOVISr97^(W$uA zob%@8llNb_HdS3cGu56vI0**cdhS;<8yk{eQ-~LGK0vhw5(ww~3hdK;4=O^{ARuf) zLUoqalY5*~-a|u5KVFRdisQ7cN=M>IBX}tM%Z`p@`8Ey$p^+H~bTh;&`svb6-y*g? zzH~`$dAX&)tojI1NkD40y|;4sg6+(as)mOUHel9*(G#vIdIN|ew`D*mq!%2+EC`nI z&DGvlhz6?R6dP>`oLTj~p!N=9Ld|XIpDv~(CH+A11kXA-GCI1cQR;R9lsh=q$B%kA z7Pcq>0fGC6HxXj_o`-TLkdXCfAgjf2J0+>SqT+;U3tA^gO1-=mpf&;Rct=l2Ew7?N zR$AJGar^@ZqNw8I@f|D92(mHGoM;?!x7mjCE%%j6iJeecsu%|#ugxwJ$Jf>O`6BD#dOBR5n&{XOO+d5${ zjgF6xkB;6iDr!;b^$#QuDPk6M#!d*S2f$~t(9()bc#Vx$!9s$`f0ZnGzMco;)j?M} zvzd?(st`AA!7q8QG^fVL;Sgwql2cC)=)>L9bAE2l0^&JL;o9=SI;f$Qq#?2NJ!~Hj ztHv0X0$}6k=Z6H^ihBRN14U3+v)uU zM`Qw_#DMq2D}Lb9f%6L!M5Vx2ctpy|7J;!4nY%AiZ-c#?p5K#Dhu|LEB63-ltj9&* zZUxSQ$B(h)il2M+;K`F8-@YCB;gO%0hl=-~gSR`rL<@W>e%~F&p@?fulACd<0!|4R@K~l_I&^PwGOT7XgdiYa(rrPYFQU30P-}-6reKz z00<)rC5U7QeI{BiwWuaL=D!bBabH(9{v+TY-hg-F_1UvS87Fy8^YlRb>WbxbYXVXQ zG%PMIot>Rl<*wOa!;fhJxd2|F@@*LAGBdO9;uzVu&PKEhW)MF{2xs}@yvu^4WRxo>7x7>z-tJ6QJF4H?a7rfGiB z5ePA~9p|al!S$alxpW$na%6^PD*D5Co1DD!%@(C^kp9^Km}!QC8V5rKD;ty$u_qrv zhlyVLej*qwjZNOYHF=OUqpoj=6ekik5rWASp3Ed)n%9=q?2zyfPH3D|f2L*~`u_mi Cd#O|a diff --git a/Triangulation/doc_tex/Triangulation/main.tex b/Triangulation/doc_tex/Triangulation/main.tex deleted file mode 100644 index b6c043217aa..00000000000 --- a/Triangulation/doc_tex/Triangulation/main.tex +++ /dev/null @@ -1,6 +0,0 @@ -\ccUserChapter{Triangulations\label{chap:triangulations}} -\ccChapterAuthor{Samuel Hornus \and Olivier Devillers} - -\input{Triangulation/PkgDescription} -\minitoc -\input{Triangulation/triangulation} diff --git a/Triangulation/doc_tex/Triangulation/triangulation.tex b/Triangulation/doc_tex/Triangulation/triangulation.tex deleted file mode 100644 index 9331d734ca3..00000000000 --- a/Triangulation/doc_tex/Triangulation/triangulation.tex +++ /dev/null @@ -1,584 +0,0 @@ - -\newcommand{\note}[1]{\begin{ccTexOnly}% -{\color{red}$\langle\!\langle$#1$\rangle\!\rangle$}\end{ccTexOnly}} -\newcommand{\sphere}{\ensuremath{\mathcal S}} -\renewcommand{\real}{\ensuremath{\mathbb R}} - -This package proposes data structure and algorithms to compute -triangulations of points in any dimensions. -The \ccc{Triangulation_data_structure} allows to store and manipulate the -combinatorial part of a triangulation while the geometric classes -\ccc{Triangulation} and \ccc{Delaunay_triangulation} allows to -compute a (Delaunay) triangulation of a set of points and to maintain -it under insertions (and deletions in the Delaunay case). - - -\section{Introduction\label{triangulation:intro}} - -\subsubsection{Some definitions} - -A {\em finite abstract simplicial complex} is built on a finite set of -vertices $V$ and consists of a collection $S$ of subsets of $V$ such that - -\centerline{if $s$ is a set of vertices in $S$, then all the subsets of $s$ are also -in $S$.} - -The sets in $S$ (which are subsets of $V$) are called -{\em faces} or {\em simplices} (the -singular of which is {\em simplex}). -% -A simplex $s\in S$ is {\em maximal} if it is not a proper subset of some other -set in $S$. The simplicial complex is {\em pure} %(or {\em homogeneous}) -if all the maximal simplices have the same cardinality, i.e., they have the same -number of vertices. -In the sequel, we will call these maximal simplices {\em full cells}. -A {\em face} of a simplex is a subset of it. -A {\em proper face} of a simplex is a strict subset of it. - -If the vertices are embedded into Euclidean space $\real^d$, we deal with -{\em finite simplicial complexes} which have slightly different simplices -and additional requirements: -\begin{itemize} -\item vertices corresponds to points in space. -\item a simplex $s\in S$ is the convex hull of its vertices. -\item the vertices of a simplex $s\in S$ are affinely independent. -\item the intersection of any two simplices of $S$ is a proper face of both -simplices (the empty set counts). -\end{itemize} -See the \ccAnchor{http://en.wikipedia.org/wiki/Simplicial_complex}{wikipedia -entry} for more about simplicial complexes. - -\subsubsection{What's in this package?} - -This \cgal\ package deals with pure finite simplicial complexes -without boundary, which -we will simply call in the sequel {\em triangulations}. It provides three main classes -for creating and manipulating triangulations. - -The class \ccc{CGAL::Triangulation_data_structure} models an {\em abstract triangulation}: vertices in this -class are not embedded in Euclidean space but are only of combinatorial -nature. - -The class \ccc{CGAL::Triangulation} embeds an abstract -triangulation in Euclidean space, thus forming a geometric -triangulation. Methods are -provided for the insertion %and removal -of points in the triangulation, the -traversal of various elements of the triangulation, as well as the localization of a -query point inside the triangulation. -The convex hull of the points is part of the triangulation, the fact -that there is no boundary is ensured by adding an infinite vertex and -infinite full cells to triangulate the outside of the convex hull. - -The class \ccc{CGAL::Delaunay_triangulation} adds further -constraints to a triangulation, in that all its simplices must have the -so-called {\em Delaunay} or {\em empty-ball} property: the interior of -a ball circumscribing any simplex (or full cell) must be free from any -vertex of the triangulation. The \ccc{CGAL::Delaunay_triangulation} class -supports deletion of vertices. - -%The class \ccc{CGAL::Regular_triangulation} is a generalization of -%the Delaunay triangulation. - -%The rest of this user manual gives more details about these classes and the -%data they store, but does not tell the whole story. For the latter, the user -%should have a look at the reference manual of this package. - -%A last remark: -%pure complexes are also called \emph{triangulations}. We feel more confortable -%in using the word \emph{complexes} as it forces us to think ``in dimension -%higher than 3''. - -\subsubsection{Further definitions} - -An $i$-face denotes an $i$-dimensional simplex, or a simplex with $i+1$ -vertices. When these vertices are embedded in Euclidean space, they must be -affinely independent. - -If the maximal dimension of a simplex in the triangulation is -$d$, we call:\begin{itemize} -\item an $i$-face for some $i\in[0,d]$ a {\em face}; -\item a $0$-face a {\em vertex}; -\item a $1$-face an {\em edge}; -\item a $(d-2)$-face a {\em ridge}; -\item a $(d-1)$-face a {\em facet}; and -\item a $d$-face a {\em full cell}. -\end{itemize} - -Two faces $\sigma$ and $\sigma'$ are {\em incident} if and only if -$\sigma'$ is a proper sub-face of $\sigma$ or \emph{vice versa}. - -\section{Triangulation Data Structure\label{triangulation:tds}} - -\newcommand{\tds}{\ccc{TriangulationDataStructure}} -\newcommand{\ad}{\ensuremath{D}} -\newcommand{\cd}{\ensuremath{d}} - -In this section, we describe the concept \ccc{TriangulationDataStructure} for -which \cgal\ provides one model class: -\ccc{CGAL::Triangulation_data_structure}.% For simplicity, we use the abbreviation \tds. - -A \tds\ can represent an abstract pure complex -such that any facet is incident to exactly two full cells. - -A \tds\ has a property called the {\em maximal dimension} which is a -positive integer equal to the maximum dimension a full cell can have. -This maximal dimension can be chosen by the user at the creation of a \tds\ -and can then be queried using the method \ccc{tds.maximal_dimension()}. -A \tds\ also knows the {\em current dimension} of its full cells, -which can be queried with \ccc{tds.current_dimension()}. In the sequel, let -us denote the maximal dimension with \ad\ and the current dimension with \cd. -The inequalities $-2\leq\cd\leq\ad$ and $0<\ad$ always hold. -The special meaning of negative values for $d$ is explained below. - -%\note{I remove some comments about 3D vs dD which are not exact. % -%in T3D package in degenerate dimension \ccc{Cell} is actually used with the % -%same meaning as here (a $d$-face and not a $D$-face).} -%% \paragraph{On the \ccc{Facet} nested type} -%% In the \ccc{Triangulation_3} \cgal\ package, the maximal dimension is always -%% 3. With respect to this reference dimension (3), a \ccc{Facet} is always a -%% 2-face (triangle), -%% irrespective of the 3D triangulation's current dimension. In -%% particular, full cells in degenerate planar 3D triangulation are -%% \ccc{Facet}s, not \ccc{Cell}s. -% -%% By contrast, in the present \ccc{Triangulation} \cgal\ package, the reference -%% dimension of a pure complex (or a pure complex data structure) is its current -%% dimension. This means that, whatever the current dimension is, a -%% full cell is always represented by the \ccc{FullCell} nested type, And a -%% \ccc{Facet} represents a face of dimension \ccc{current_dimension()-1} -%% {\em and not} \ccc{maximal_dimension()-1}. - -\subsubsection{The data structure triangulates $\sphere^\cd$} - -A \tds\ can be viewed as -a {triangulation} of the topological sphere $\sphere^\cd$, -i.e., its faces can be embedded to form a partition of -$\sphere^\cd$ into $\cd$-simplices. -% When a -% \tds\ is used as the combinatorial part of a geometric triangulation, one -% special vertex of the \tds\ plays the role of the {\em vertex at -% infinity}; we can consider that the triangulation covers the whole -% affine hull of its vertices -% using {\em infinite} or {\em unbounded} full cells to fill the space outside the convex -% hull of the triangulation's finite vertices. (More details are given in the next section.) - - -One nice consequence of the above important fact is that a full cell has -always exactly $\cd+1$ neighbors. -Two full cells $\sigma$ and $\sigma'$ sharing a facet are called -{\em neighbors}. - -\newcommand{\cgalTriangulationCurrentDimension}{% -\item[$\cd=-2$] This corresponds to the non-existence of any object in - the \tds. - \item[$\cd=-1$] This corresponds to a single vertex and a single full cell. In a - geometric triangulation, this vertex corresponds to the vertex at infinity. - \item[$\cd=0$] This corresponds to two vertices (geometrically, the finite vertex and - the infinite vertex), each corresponding to a full cell; - the two full cells being neighbors of each other. This is the unique - triangulation of the $0$-sphere. - \item[$0<\cd\le\ad$] This corresponds to a standard triangulation of - the sphere $\sphere^\cd$.} - -Possible values of $\cd$ (the \emph{current dimension} of the triangulation) include -%\begin{ccTexOnly} -% \begin{list}{}{\leftmargin=20mm\labelsep=3mm\labelwidth=17mm} -% \cgalTriangulationCurrentDimension -% \end{list} -%\end{ccTexOnly} -%\begin{ccHtmlOnly} -\begin{quotation} - \noindent\begin{itemize} - \cgalTriangulationCurrentDimension - \end{itemize} -\end{quotation} -%\end{ccHtmlOnly} - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - T D S IMPLEMENTATION - -\subsection{The class \ccc{Triangulation_data_structure}\label{triangulation:tds:impl}} - -We give here some details about the class -\ccc{Triangulation_data_structure} -implementing the concept \ccc{TriangulationDataStructure}. - - -\subsubsection{Storage} - -A \tds\ explicitly stores its vertices and full cells. - -Each vertex stores a reference (a \ccc{handle}) to one of its incident -full cells. - - -Each full cell stores references to its $\cd+1$ vertices and -neighbors. Its vertices and neighbors are indexed from $0$ to \cd. The indices -of its neighbors have the following meaning: the $i$-th neighbor of $\sigma$ -is the unique neighbor of $\sigma$ that does not contain the $i$-th vertex of -$\sigma$; in other words, it is the neighbor of $\sigma$ {\em opposite} to -the $i$-th vertex of $\sigma$ (Figure~\ref{triangulation:fig:full-cell}). - -\begin{figure}[htbp] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation/fig/simplex-structure.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -

- -
-\end{ccHtmlOnly} -\caption{Indexing the vertices and neighbors of a full cell $c$ in - dimension $\cd=2$.} -\label{triangulation:fig:full-cell} -\end{figure} - -\begin{ccAdvanced} -The index of a full cell $c$ in the $i$-th neighbor of $c$ is called the -\emph{$i$-th mirror-index} of $c$ (Figure~\ref{triangulation:fig:full-cell}). -Mirror indices are often needed for maintaining the triangulation data -structure. Thus, it might be desirable, for performance reasons, to store the -mirror indices alongside the references to the vertices and neighbors in a full -cell. This improves speed a little, but requires more memory. - -\cgal\ provides the class template -\ccc{Triangulation_ds_full_cell} for representing full cells in a triangulation. Its -second template parameter is used to specify wether or not the mirror indices -should be kept in memory or computed on-the-fly, which is the default case. -Please refer to the documentation of that class template for specific details. -\end{ccAdvanced} - -\subsubsection{Instantiating the class template} - -The \ccc{Triangulation_data_structure} -class template is designed in such a way that its user can choose -\begin{itemize} -\item the maximal dimension of the triangulation data structure by specifying the \ccc{Dimensionality} template parameter, -\item the type used to represent vertices by specifying the \ccc{TriangulationDSVertex} -template parameter and -\item the type used to represent full cells by specifying the -\ccc{TriangulationDSFullCell} template parameter. -\end{itemize} - -The last two parameters have default values and are thus not necessary, unless -the user needs custom types (see the reference manual page for this class -template). The first template parameter, \ccc{Dimensionality}, must be -one of the following: -\begin{itemize} -\item \ccPureGlobalScope\ccc{Dimension_tag} for some integer \ad. This -indicates that the triangulation can store full cells of dimension at most -\ad. The maximum dimension \ad\ is known by the compiler, which -triggers some optimizations. -\item \ccPureGlobalScope\ccc{Dynamic_dimension_tag}. In this case, the maximum -dimension of the full cells must be passed as an integer argument to an instance -constructor (see \ccc{TriangulationDataStructure}). -\end{itemize} - -The \ccc{TriangulationDSVertex} and \ccc{TriangulationDSFullCell} parameters to the class template -must be models of the concepts \ccc{TriangulationDSVertex} and -\ccc{TriangulationDSFullCell} respectively. \cgal\ provides models for these -concepts: \ccc{Triangulation_ds_vertex} and -\ccc{Triangulation_ds_full_cell}, which, as one -can see, take the \tds\ as a template parameter in order to get access to -some nested types in \tds. - -{\em This creates a circular dependency}, which we resolve in the same way -as in the \cgal\ \ccc{Triangulation_2} and \ccc{Triangulation_3} packages (see -Chapters~\ref{chapter-TDS2},~\ref{chapter-Triangulation2},~\ref{chapter-TDS3},~and~\ref{chapter-Triangulation3}). -In particular, models of the concepts \ccc{TriangulationDSVertex} and -\ccc{TriangulationDSFullCell} must provide a nested template \ccc{Rebind_TDS} -which is documented in those two concept's reference manual pages. - -\begin{ccAdvanced} -The user that is in need of a custom vertex or full cell class, is -encouraged to read the documentation of the \cgal\ -\ccc{Triangulation_2} or \ccc{Triangulation_3} package. -\end{ccAdvanced} - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TDS EXAMPLES - -\subsection{Examples\label{triangulation:tds:examples}} - -\subsubsection{Incremental Construction} -The following examples shows how to construct a triangulation data structure by -inserting vertices. Its main interest is that it demonstrates most of the API -to insert new vertices into the triangulation. Therefore, the reader will make -the best use of this example by reading it slowly, together with the reference -manual documentation of the methods that are called (see here: -\ccc{TriangulationDataStructure}) and by trying to understand the various -\ccc{assert(...)} statements. - -\ccIncludeExampleCode{Triangulation/triangulation_data_structure_static.cpp} - -In previous example, the maximal dimension is fixed at compile time. -It is also possible to fix it at run time, as in the next example. - -\ccIncludeExampleCode{Triangulation/triangulation_data_structure_dynamic.cpp} - -\subsubsection{Barycentric subdivision} -This example provides a function for computing the barycentric subdivision of a -single full cell \ccc{c} in a triangulation data structure. The other -full cells adjacent to \ccc{c} are automatically subdivided to match the -subdivision of the full cell \ccc{c}. The barycentric subdivision of \ccc{c} is -obtained by enumerating all the faces of \ccc{c} in order of decreasing -dimension, from the dimension of~\ccc{c} to dimension~1, and inserting a new -vertex in each face. For the enumeration, we use a combination enumerator, -which is not documented, but provided in \cgal. - - -\begin{figure}[htbp] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation/fig/barycentric-subdivision.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
- -
-\end{ccHtmlOnly} -\caption{Barycentric subdivision in dimension $\cd=2$.} -\label{triangulation:fig:barycentric} -\end{figure} - -\ccIncludeExampleCode{Triangulation/barycentric_subdivision.cpp} - - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRIANGULATIONS - -\section{Triangulations} - -The class \ccc{CGAL::Triangulation} embeds an abstract -triangulation into Euclidean space. More precisely, it -maintains a triangulation (a partition into pairwise interior-disjoint -full cells) of the convex hull of the points (the embedded vertices) of the -triangulation, as well as a triangulation of the complement of the convex hull -{\em in the affine subspace} spanned by the triangulation's points -using a special vertex at infinity. - -Methods are provided for the insertion of points in the triangulation, the -contraction of faces, the traversal of various elements of the triangulation -as well as the localization of a query point inside the triangulation. - -Infinite full cells outside the convex hull are each incident to -a finite facet on the convex hull of the triangulation and to a unique -{\em vertex at infinity}. -%\note{In every infinite full cell, the vertex at infinity always has index $0$.} -%\note{SH: the above note this should go in the documentation of the -%\ccc{TriangulationDataStructure} concept, or that of the class?} - -As long as no \emph{advanced} class method is called, it is guaranteed that -all finite full cells have positive orientation. The infinite full cells are -oriented so that the finite vertices of the triangulation lies on the negative side of -the oriented hyperplane defined by the full cell's finite facet. - - -% - - - - - - - - - - - - - - - - - - - - - - - - - Triangulation IMPLEMENTATION - -\subsection{Implementation} - -The class \ccc{CGAL::Triangulation} stores a model -of the concept \ccc{TriangulationDataStructure} which is instantiated with a -vertex type that stores a point, and a full cell type that allows the retrieval -of the point of its vertices. - -The template parameter \ccc{TriangulationTraits} must be a model of the concept -\ccc{TriangulationTraits} which provides the geometric \ccc{Point} type as well -as various geometric predicates used by the \ccc{Triangulation} class. - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - Triangulation EXAMPLES - -\subsection{Examples} - -\subsubsection{Incremental Construction} - -The following example shows how to construct a triangulation in which we insert -random points. In \ccc{STEP 1}, we generate one hundred random points in -$\real^5$, which we then insert into a triangulation. In \ccc{STEP 2}, we -%have a little fun and -ask the triangulation to construct the set of edges -($1$ dimensional faces) incident to the vertex at infinity. It is easy to see that -these edges are in bijection with the vertices on the convex hull of the -points. This gives us a handy way to count the convex hull vertices. -%(Note that -%in general, this set of vertices is a superset of the set of extremal vertices -%of the convex hull.) -%%%% I assume the previous rk relates to degeneracies. Matter of definitions. -%%%% removed after review 1 reviewer 1 - -\ccIncludeExampleCode{Triangulation/triangulation.cpp} - -\subsubsection{Traversing the facets of the convex hull} - -Remember that a triangulation triangulates the convex hull of its -vertices. -In general position, each -facet of the convex hull is incident to one finite full cell and one infinite -full cell. In fact there is a bijection between the infinite full cells and the -facets of the convex hull. -If vertices are not in general position, convex hull faces that are -not simplices are triangulated. -So, in order to traverse the convex hull facets, -there are (at least) two possibilities: - -The first is to iterate over the full cells of the triangulation and check if they -are infinite or not: - -\begin{ccExampleCode} -{ int i=0; - typedef Triangulation::Full_cell_iterator Full_cell_iterator; - typedef Triangulation::Facet Facet; - - for( Full_cell_iterator cit = t.full_cells_begin(); - cit != t.full_cells_end(); ++cit ) - { - if( ! t.is_infinite(cit) ) - continue; - Facet ft(cit, cit->index(t.infinite_vertex())); - ++i;// |ft| is a facet of the convex hull - } - std::cout << "There are " << i << " facets on the convex hull."<< std::endl; -} -\end{ccExampleCode}% -\textbf{Remark}: the code example above is not self contained, it can -be cut and paste at STEP 2 of {\tt triangulation.cpp} program above. - -A second possibility is to ask the triangulation to gather all the full cells -incident to the infinite vertex: they form precisely the set of infinite -full cells: - -\begin{ccExampleCode} -{ int i=0; - typedef Triangulation::Full_cell_handle Full_cell_handle; - typedef Triangulation::Facet Facet; - typedef std::vector Full_cells; - - Full_cells infinite_full_cells; - std::back_insert_iterator out(infinite_full_cells); - - t.incident_full_cells(t.infinite_vertex(), out); - - for( Full_cells::iterator sit = infinite_full_cells.begin(); - sit != infinite_full_cells.end(); ++sit ) - { - Facet ft(*sit, (*sit)->index(t.infinite_vertex())); - ++i // |ft| is a facet of the convex hull - } - std::cout << "There are " << i << " facets on the convex hull."<< std::endl; -} -\end{ccExampleCode} -\textbf{Remark}: the code example above is not self contained, it can -be cut and paste at STEP 2 of {\tt triangulation.cpp} program above. - -One important difference between the two examples above is that the first uses -\emph{little} memory but traverses \emph{all} the full cells, while the second -visits \emph{only} the infinite full cells but stores handles to them into a -\emph{potentially big} array. - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELAUNAY TRIANGULATIONS - -\section{Delaunay Triangulations}%and regular triangulationes} - -The class \ccc{CGAL::Delaunay_triangulation} derives from -\ccc{CGAL::Triangulation} and adds further constraints to a -triangulation, in that all its full cells must have the so-called -{\em Delaunay} or {\em empty-ball} property: the interior of the ball -circumscribing any full cell must be free from any vertex -of the triangulation. - -The {\em circumscribing ball} of a full cell is the ball -having all vertices of the full cell on its boundary. -In case of degeneracies (co-spherical points) the triangulation is not -uniquely defined; -Note however that the \cgal\ implementation computes a unique -triangulation even in these cases. -%The {\em circumscribing sphere} of a face \ccc{c} is the smallest sphere -%touching all vertices of the face. A triangulation of the convex -%hull of a finite point set has the Delaunay (or empty-ball) property if all -%its full cells have the Delaunay (or empty-ball) property: - -%Informally, a finite full cell has the Delaunay (or empty-ball) property---with -%respect to the triangulation---if no vertex of the triangulation lies in the -%interior of its circumscribing sphere. - -When a new point \ccc{p} is inserted into a Delaunay triangulation, the -finite full cells whose circumscribing sphere contain \ccc{p} are said to -{\em be in conflict} with point \ccc{p}. The set of full cells that are in -conflict with \ccc{p} form the {\em conflict zone}. That conflict zone is -augmented with the infinite full cells whose finite facet does not lie -anymore on the convex hull of the triangulation (with \ccc{p} added). The full cells -in the conflict zone are removed, leaving a hole that contains \ccc{p}. That -hole is ``star shaped'' around \ccc{p} and thus is easily re-triangulated using -\ccc{p} as a center vertex. - -Delaunay triangulations also support vertex removal. - -% - - - - - - - - - - - - - - - - - - - - - - - - - DELAUNAY IMPLEMENTATION - -\subsection{Implementation} - -The class \ccc{CGAL::Delaunay_triangulation} derives from -\ccc{CGAL::Triangulation}. It thus stores a model of -the concept \ccc{TriangulationDataStructure} which is instantiated with a vertex -type that stores a geometric point and allows its retrieval.% and a full cell type that allows the -%retrieval of the points of its vertices. - -The template parameter \ccc{DelaunayTriangulationTraits} must be a model of the concept -\ccc{DelaunayTriangulationTraits} which provides the geometric \ccc{Point} type as -well as various geometric predicates used by the \ccc{Delaunay_triangulation} class. -The concept \ccc{DelaunayTriangulationTraits} refines the concept -\ccc{TriangulationTraits} by requiring a few other geometric predicates, necessary -for the computation of Delaunay triangulations. - -% - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELAUNAY EXAMPLES - -\subsection{Examples} - -\subsubsection{Access to the conflict zone and created full cells during point -insertion} - -When using a full cell type containing additional custom information, it may be -useful to get an efficient access to the full cells that are going to be erased -upon the insertion of a new point in the Delaunay triangulation, and to the newly -created full cells. The second part of code example below shows how one can have efficient -access to both the conflict zone and the created full cells, while still -retaining an efficient update of the Delaunay triangulation. - -\ccIncludeExampleCode{Triangulation/delaunay.cpp} - - -\section{Complexity and Performances} - -The current implementation locate points by walking in the -triangulation, and sort the points with spatial sort to insert a -set of points. Thus the theoretical complexity are -$O(n\log n)$ for inserting $n$ random points and $O(n^{\frac{1}{\cd}})$ -for inserting one point in a triangulation of $n$ random points. - -The actual timing are the following: - -% insert here the table produce by script in directory benchmark -% (code to be done) ! - -\note{todo} - -This section will be completed, when the code will be fully ready (and -preferably with the new Kernel). - - -\section{Design and Implementation History} - -This package is heavily inspired by the works of - Monique Teillaud and Sylvain Pion (\ccc{Triangulation_3}) -and Mariette Yvinec (\ccc{Triangulation_2}). -The first version was written by Samuel Hornus and then -pursued by Samuel Hornus and Olivier Devillers. diff --git a/Triangulation/doc_tex/Triangulation_ref/DelaunayTriangulationTraits.tex b/Triangulation/doc_tex/Triangulation_ref/DelaunayTriangulationTraits.tex deleted file mode 100644 index c37bd102243..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/DelaunayTriangulationTraits.tex +++ /dev/null @@ -1,116 +0,0 @@ - -\begin{ccRefConcept}{DelaunayTriangulationTraits} - -\ccDefinition - -The concept \ccRefName\ describes the various types and functions that a class -has to provide as the first parameter (\ccc{DCTraits}) to the class template -\ccc{Delaunay_triangulation}. It brings the geometric ingredients to -the definition of a Delaunay complex, while the combinatorial -ingredients are -brought by the second template parameter, \ccc{TriangulationDataStructure}. - -\ccRefines - -\ccc{TriangulationTraits}. - -\ccTypes - -\ccTwo{DelaunayTriangulationTraits ::}{} - -%\ccNestedType{Point_d}{This nested type is defined in the ``parent'' concept -%\ccc{TriangulationTraits}.} - -\ccNestedType{Side_of_oriented_sphere_d}{A predicate object that must provide -the templated operator\\\ccc{template Oriented_side -operator()(ForwardIterator start, ForwardIterator end, const Point_d & -p)}.\\The operator returns \ccc{ON_POSITIVE_SIDE}, -\ccc{ON_NEGATIVE_SIDE} -or \ccc{ON_ORIENTED_BOUNDARY} depending of the side of the query -point \ccc{p} - with respect to the sphere circumscribing the simplex -defined by the points in range \ccc{[start,end)}. -If the simplex is positively -oriented, then the positive side of sphere corresponds geometrically -to its bounded side. -%\\ The range's size must of course be one more -%than the dimension of the Euclidean space the points live in: -\ccPrecond - \ccc{std::distance(start,end)=D+1}, where -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in -\ccc{[start,end)}. \ccc{Point_dimension_d(p)} is also $D$. - The points in range -\ccc{[start,end)} must be affinely independent, i.e., the simplex must -not be flat.} - -\ccNestedType{In_flat_side_of_oriented_sphere_d}{A predicate object that must -provide the templated operator\\ -\ccc{template -Oriented_side operator()(Flat_orientation_d orient, ForwardIterator start, ForwardIterator end, const -Point_d & p)}.\\ -The operator returns \ccc{ON_POSITIVE_SIDE}, -\ccc{ON_NEGATIVE_SIDE} -or \ccc{ON_ORIENTED_BOUNDARY} depending of the side of the query -point \ccc{p} - with respect to the sphere circumscribing the simplex -defined by the points in range \ccc{[start,end)}. -If the simplex is positively -oriented according to \ccc{orient}, -then the positive side of sphere corresponds geometrically -to its bounded side. -The points in range \ccc{[start,end)} and \ccc{p} are supposed to belong to the lower dimensional flat - whose orientation is given by \ccc{orient}. -\ccPrecond - \ccc{std::distance(start,end)=k+1} where $k$ is the number of -points used to construct \ccc{orient}. -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in -\ccc{[start,end)}. \ccc{Point_dimension_d(p)} is also $D$. - The points in range -\ccc{[start,end)} must be affinely independent, {i.e.,} the simplex must -not be flat. -} - - - -%%%%%%%% currently unused -% \ccNestedType{Center_of_sphere_d}{A construction object that must -% provide the templated operator\\\ccc{template bool -% operator()(ForwardIterator start, ForwardIterator end)}.\\The operator -% constructs the center of the sphere circumscribing the points in -% the range \ccc{R=[start, end)}. \ccPrecond The number of points in the range -% must be equal to one more than the dimension of the Euclidean space the points -% live in, {i.e.}, \ccc{std::distance(start,end)} is equal to \ccc{start->dimension()+1}.} - - -\ccCreation -\ccCreationVariable{traits} - -\ccConstructor{DelaunayTriangulationTraits();}{The default constructor.} - -\ccOperations -\ccThree{In_flat_side_of_oriented_sphere_d}{in_flat_side_of_oriented_sphere_d_object() - const;}{} - - -The following methods permit access to the traits class's predicates: - -\ccMethod{Side_of_oriented_sphere_d side_of_oriented_sphere_d_object() const;} -{} -\ccGlue -\ccMethod{In_flat_side_of_oriented_sphere_d in_flat_side_of_oriented_sphere_d_object() -const;} -{} - - -\ccHasModels - -\ccc{CGAL::Cartesian_d},\\ -\ccc{CGAL::Simple_cartesian_d},\\ -\ccc{CGAL::New_kernel_d} (recommended when available) - -\ccSeeAlso - -\ccc{TriangulationTraits}\\ -\ccc{DelaunayTriangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex b/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex deleted file mode 100644 index 6fc04b886fd..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Delaunay_triangulation.tex +++ /dev/null @@ -1,165 +0,0 @@ -\begin{ccRefClass}{Delaunay_triangulation} - -\ccDefinition - -The class \ccRefName\ is used to maintain the full cells and vertices of a -Delaunay triangulation in $\real^D$. It permits point insertion and -removal. The dimension $D$ should be kept reasonably small, -see the performance section in the user manual for what reasonable -means. -%: higher than 7 or 8, -%you are entering a realm where patience is a highly useful virtue. - -\ccInclude{CGAL/Delaunay_triangulation.h} - -\ccParameters - -\ccc{DelaunayTriangulationTraits} is the geometric traits class that provides the geometric types -and predicates needed by Delaunay triangulations. \ccc{DelaunayTriangulationTraits} must be a model of -the concept \ccc{DelaunayTriangulationTraits}. - -\ccc{TriangulationDataStructure} is the class used to store the underlying triangulation data -structure. \ccc{TriangulationDataStructure} must be a model of the concept -\ccc{TriangulationDataStructure}. The class template \ccRefName\ can -be defined by specifying only the first parameter, or by using the -tag \ccc{CGAL::Default} as -the second parameter. In both cases, \ccc{TriangulationDataStructure} defaults to -\ccc{Triangulation_data_structure::type, -Triangulation_vertex, Triangulation_full_cell>}. - - -\ccInheritsFrom -\ccc{Triangulation}. - -The class \ccc{Delaunay_triangulation} inherits all the types -defined in the base class \ccc{Triangulation}. Additionally, it -defines or overloads the following methods: - -\ccCreation % - - - - - - - - - - - - - - - - - - - - - - - - - - - CREATION -\ccCreationVariable{dt} - - -\ccConstructor{Delaunay_triangulation(const int dim, const Geom_traits gt = -Geom_traits());}{Instantiates a Delaunay triangulation with one vertex (the vertex -at infinity). See the description of the inherited nested type -\ccc{Triangulation::Maximal_dimension} for an explanation of -the use of the parameter \ccc{dim}. The complex stores a copy of the geometric -traits \ccc{gt}.} - - -\ccHeading{Point removal} % - - - - - - - - - - - - - - - - - - - - - REMOVAL - -\ccMethod{Full_cell_handle remove(Vertex_handle v);}{Remove the vertex \ccc{v} -from the Delaunay triangulation. If the current dimension of the triangulation has not -changed after the removal, then the returned full cell \ccc{c} geometrically -contains the removed vertex \ccc{v} (\ccc{c} can be finite or infinite). -Otherwise, the default-constructed \ccc{Full_cell_handle} is returned. -\ccPrecond \ccc{v} is a vertex of the triangulation, different from the -\ccc{infinite_vertex()}.} - -% \ccMethod{Full_cell_handle remove(const Point & p);}{Locate the point \ccc{p} in -% the Delaunay triangulation. If a vertex is found at position \ccc{p}, it is removed -% from it, otherwise, the default-constructed \ccc{Full_cell_handle} is returned. -% If \ccc{p} is found and if the current dimension of the complex has not -% changed after the removal, then the returned full cell \ccc{c} geometrically -% contains the removed point \ccc{p} (\ccc{c} can be finite or infinite). -% Otherwise, the default-constructed \ccc{Full_cell_handle} is returned.} - -% \ccMethod{Full_cell_handle remove(const Point & p, Full_cell_handle hint);}{Same -% as above, but uses \ccc{hint} as a starting point for locating the point -% \ccc{p} in the complex.} - -\ccMethod{template< typename ForwardIterator > void remove(ForwardIterator -start, ForwardIterator end);}{Remove the points or the vertices (through their -\ccc{Vertex_handle}) in the range \ccc{[start, end)}. -\ccc{*start} must be of type \ccc{Vertex_handle}. -} - - -\ccHeading{Point insertion} % - - - - - - - - - - - - - - - - - - - INSERTION - -\ccMethod{template< typename ForwardIterator > -size_type insert(ForwardIterator s, ForwardIterator e);}% -{Inserts the points found in range \ccc{[s,e)} in the Delaunay triangulation -and ensures that the empty-ball property is preserved. -Returns the number of vertices actually inserted. (If more than one vertex share -the same position in space, only one insertion is counted.)} - -\ccMethod{Vertex_handle insert(const Point & p, Full_cell_handle hint -= Full_cell_handle());}{Inserts point \ccc{p} in the Delaunay triangulation -and ensures that the empty-ball property is preserved. Returns a -\ccc{Vertex_handle} to the vertex of the triangulation with position \ccc{p}. -Prior to the actual insertion, \ccc{p} is located in the triangulation; -\ccc{hint} is used as a starting place for locating \ccc{p}.} - -\ccMethod{Vertex_handle insert(const Point & p, Vertex_handle hint);}% -{Same as above but uses a vertex as starting place for the search.} - -\begin{ccAdvanced} - -\ccMethod{Vertex_handle insert(const Point & p, const Locate_type lt, -const Face & f, const Facet & ft, const Full_cell_handle c);} -{Inserts the point \ccc{p} in the Delaunay triangulation -and ensures that the empty-ball property is preserved. -Returns a handle to the -(possibly newly created) vertex at that position. The behavior depends on the -value of \ccc{lt}:\begin{itemize} \item[\ccc{OUTSIDE_AFFINE_HULL}] Point -\ccc{p} is inserted so as to increase the current dimension of the Delaunay -triangulation. The method \ccVar.\ccc{insert_outside_affine_hull()} is called. -\item[\ccc{ON_VERTEX}] The position of the vertex \ccc{v} described by \ccc{f} -is set to \ccc{p}. \ccc{v} is returned. \item[Anything else] The point \ccc{p} -is inserted. the full cell \ccc{c} {\em is assumed} to be in conflict -with \ccc{p}. -(Roughly speaking, the method \ccVar.\ccc{insert_in_conflicting_cell()} -is called.)\end{itemize} -The parameters \ccc{lt}, \ccc{f}, \ccc{ft} -and \ccc{c} must be consistent with the localization of point \ccc{p} in the -Delaunay triangulation e.g. by a call to -\ccc{c = locate(p, lt, f, ft)}.} - -\ccMethod{Vertex_handle insert_outside_affine_hull(const Point & p);} -{Inserts the point \ccc{p} in the Delaunay triangulation. Returns a handle to the -(possibly newly created) vertex at that position. \ccPrecond The point \ccc{p} -must lie outside the affine hull of the Delaunay triangulation. This implies that -\ccVar.\ccc{current_dimension()} must be less that -\ccVar.\ccc{maximal_dimension()}.} - -\ccMethod{Vertex_handle insert_in_conflicting_cell(const Point & p, const -Full_cell_handle c);} -{Inserts the point \ccc{p} in the Delaunay triangulation. Returns a handle to the -(possibly newly created) vertex at that position. -\ccPrecond The point \ccc{p} -must be in conflict with the full cell \ccc{c}.} - -\end{ccAdvanced} - -\ccHeading{Queries} % - - - - - - - - - - - - - - - - - - - - - - - - QUERIES - -\ccMethod{bool is_in_conflict(const Point & p, Full_cell_const_handle c) -const;}{Returns \ccc{true} if and only if the point \ccc{p} is in (Delaunay) -conflict with full cell \ccc{c} ({i.e.}, the circumscribing ball of -$c$ contains $p$ in its interior). -} - -\begin{ccAdvanced} - -\ccMethod{template< typename OutputIterator > -Facet compute_conflict_zone(const Point & p, const Full_cell_handle c, -OutputIterator out) const;}{Outputs handles to the full cells in confict with -point \ccc{p} into the \ccc{OutputIterator out}. The full cell \ccc{c} is used -as a starting point for gathering the full cells in conflict with -\ccc{p}. -A facet \ccc{(cc,i)} on the boundary of the conflict zone with -\ccc{cc} in conflict is returned. -\ccPrecond \ccc{c} is in conflict -with \ccc{p}.\\ \ccVar.\ccc{current_dimension()}$\geq 2$. -} - -\end{ccAdvanced} - -\ccSeeAlso - -\ccc{Triangulation_data_structure},\\ - - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/RegularTriangulation.tex b/Triangulation/doc_tex/Triangulation_ref/RegularTriangulation.tex deleted file mode 100644 index 0349deea02b..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/RegularTriangulation.tex +++ /dev/null @@ -1,5 +0,0 @@ -\begin{ccRefClass}{Regular_complex} - -TODO: this documentation is not finished. - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/RegularTriangulationTraits.tex b/Triangulation/doc_tex/Triangulation_ref/RegularTriangulationTraits.tex deleted file mode 100644 index d345e9dff6d..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/RegularTriangulationTraits.tex +++ /dev/null @@ -1,83 +0,0 @@ - -\begin{ccRefConcept}{RegularComplexTraits} - -\ccDefinition - -The concept \ccRefName\ describes the various types and functions that a class -has to provide as the first parameter (\ccc{RCTraits}) to the class template -\ccc{Regular_complex}. It brings the geometric ingredient to -the definition of a Regular complex, while the combinatorial ingredient is -brought by the second template parameter, \ccc{PCDS}. - -\ccRefines - -\ccc{PureComplexTraits}. - -\ccTypes - -\ccNestedType{Weighted_point_d}{A type representing a point in Euclidean -space with an associated weight (in $\real$).} - -\ccNestedType{Side_of_oriented_orthogonal_sphere_d}{A predicate object that -must provide the templated operator\\\ccc{template -Oriented_side operator()(ForwardIterator start, ForwardIterator end, const -Weighted_point_d & p)}.\\The operator returns \ccc{ON_POSITIVE_SIDE} if the -query point \ccc{p} lies in the positive side of the sphere \ccc{S} orthogonal -to the weighted points in the range \ccc{[start,end)}. It returns -\ccc{ON_NEGATIVE_SIDE} if the point \ccc{p} lies on the negative side of the -sphere \ccc{S}. It returns \ccc{ON_ORIENTED_BOUNDARY} if the point \ccc{p} -lies on the sphere \ccc{S}. If the simplex \ccc{[start,end)} is positively -oriented, then the positive side of sphere \ccc{S} corresponds geometrically -to the bounded side of \ccc{S} and the negative side corresponds to the -unbounded side of \ccc{S}. If the simplex is negatively oriented, the -correspondance is inverted. \\ The range's size must of course be one more -than the dimension of the Euclidean space the points live in: \ccPrecond -\ccc{std::distance(start,end)==start->dimension()+1}. The points in range -\ccc{[start,end)} must be affinely independent, {i.e.,} the simplex must -not be flat.} - -\ccNestedType{Side_of_oriented_orthogonal_subphere_d}{A predicate object that -must provide the templated operator\\\ccc{template -Oriented_side operator()(ForwardIterator start, ForwardIterator end, const -Point_d & p)}.\\ Let Aff be the affine subspace spanned by the points in range -\ccc{[start,end)}. The operator behaves in the same way as the above predicate -\ccc{Side_of_oriented_orthogonal_sphere_d}, but operates in the affine -subspace Aff. It is guaranteed that the affine subspace Aff is given a -consistent orientation when it is called many times with simplex points (in -range \ccc{[start,end)}) living in a same affine subspace.\\ -\textbf{Important.} Information about the affine subspace Aff is computed -{\em once} and then stored in the predicate class, so it is wise to keep an -instance of the predicate around as long as one is sure that the affine -subspace Aff doesn't change. \ccPrecond \ccc{std::distance(start,end)>=3} and -\ccc{std::distance(start,end)<=start->dimension()+1}. The points in range -\ccc{[start,end)} must be affinely independent in Aff, {i.e.,} the -simplex must not be flat in Aff.} - -\ccCreation -\ccCreationVariable{traits} - -\ccConstructor{RegularComplexTraits();}{The default constructor.} - -\ccOperations - -The following methods permit access to the traits class's predicates: - -\ccMethod{Side_of_oriented_orthogonal_sphere_d -side_of_oriented_sphere_d_object() const;} -{} -\ccGlue -\ccMethod{Side_of_oriented_orthogonal_subphere_d -side_of_oriented_subphere_d_object() const;} -{} - -\ccHasModels - -\ccc{CGAL::Cartesian_d},\\ -\ccc{CGAL::Simple_cartesian_d},\\ -\ccc{CGAL::Filtered_kernel_d} (recommended). - -\ccSeeAlso - -\ccc{PureComplexTraits} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/Tds_full_cell.tex b/Triangulation/doc_tex/Triangulation_ref/Tds_full_cell.tex deleted file mode 100644 index 453db0248b1..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Tds_full_cell.tex +++ /dev/null @@ -1,89 +0,0 @@ - -\begin{ccRefConcept}[TriangulationDataStructure::]{Cell} - - -\ccDefinition - -The concept \ccRefName\ stores -\ccc{Vertex_handle}s to its vertices and \ccc{Full_cell_handle}s -to its neighbors. The vertices are indexed $0, 1,\ldots,\cd$ in consistent -order. The neighbor indexed $i$ lies opposite to vertex \ccc{i}. - - -\ccTypes -\ccThree{typedef TriangulationDataStructure::Full_cell_handle}{TriangulationDataStructure}{} -\ccThreeToTwo -The class \ccRefName\ defines the following types. - -\ccTypedef{typedef TriangulationDataStructure Triangulation_data_structure;}{} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Vertex_handle Vertex_handle;}{} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Full_cell_handle Full_cell_handle;}{} - -\ccCreation -\ccCreationVariable{c} %% choose variable name -\ccThree{Full_cell_handle}{c.has_neighbor( Full_cell_handle n, int & i) const}{} - -In order to obtain new cells or destruct unused cells, the user must call the -\ccc{new_full_cell()} and \ccc{delete_full_cell()} methods of the triangulation data -structure. - -\ccOperations - -\ccAccessFunctions - -\ccMethod{Vertex_handle vertex(int i) const;} -{Returns the vertex \ccc{i} of \ccVar. -\ccPrecond{$i \in [0,\ad]$.}} -\ccGlue -\ccMethod{int index(Vertex_handle v) const;} -{Returns the index of vertex \ccc{v} in \ccVar. -\ccPrecond{\ccc{v} is a vertex of \ccVar}.} -\ccGlue -\ccMethod{bool has_vertex(Vertex_handle v) const;} -{Returns \ccc{true} if \ccc{v} is a vertex of \ccVar.} -\ccGlue -\ccMethod{bool has_vertex(Vertex_handle v, int & i) const;} -{Returns \ccc{true} if \ccc{v} is a vertex of \ccVar, and -computes its index \ccc{i} in \ccVar.} - -\ccMethod{Full_cell_handle neighbor(const int i) const;} -{Returns the neighbor \ccc{i} of \ccVar. -\ccPrecond{$i \in [0,\ad]$.}} -\ccGlue -\ccMethod{int index(Full_cell_handle n) const;} -{Returns the index corresponding to adjacent cell \ccc{n}. -\ccPrecond{\ccc{n} is a neighbor of \ccVar.}} -\ccGlue -\ccMethod{bool has_neighbor(Full_cell_handle n) const;} -{Returns \ccc{true} if \ccc{n} is a neighbor of \ccVar.} -\ccGlue -\ccMethod{bool has_neighbor(Full_cell_handle n, int & i) const;} -{Returns \ccc{true} if \ccc{n} is a neighbor of \ccVar, and -computes its index \ccc{i} in \ccVar.} - -\ccHeading{Setting} - -\ccMethod{void set_vertex(int i, Vertex_handle v);} -{Sets vertex \ccc{i} to \ccc{v}. -\ccPrecond{$i \in [0,\ad]$.}} - -\ccMethod{void set_neighbor(int i, Full_cell_handle n);} -{Sets neighbor \ccc{i} to \ccc{n}. -\ccPrecond{$i \in [0,\ad]$.}} - -\begin{ccDebug} -\ccHeading{Checking} -\ccThree{Full_cell_handle}{c.is_valid(}{} - -\ccMethod{bool is_valid(bool verbose = false) const;} -{User defined local validity checking function.} -\end{ccDebug} - -\ccSeeAlso - -\ccc{TriangulationDataStructure::Vertex}\\ -\ccc{TriangulationDataStructure}. - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/Tds_vertex.tex b/Triangulation/doc_tex/Triangulation_ref/Tds_vertex.tex deleted file mode 100644 index 5d4c8621cf1..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Tds_vertex.tex +++ /dev/null @@ -1,79 +0,0 @@ - -\begin{ccRefConcept}[TriangulationDataStructure::]{Vertex} - -%% \ccHtmlCrossLink{} %% add further rules for cross referencing links -%% \ccHtmlIndexC[concept]{} %% add further index entries - -\ccDefinition - -The concept \ccRefName\ represents the vertex class of a triangulation -data structure. It must define -the types and operations listed in this section. Some of these -requirements are of geometric nature, they are \textit{optional} -when using the triangulation data structure class alone. They become -compulsory when the triangulation data structure is used as a layer -for the geometric triangulation class. -\ccTypes -\ccTwo{typedef TriangulationDataStructure}{} -\ccNestedType{Point}{\textit{Optional for the triangulation data -structure alone.}} - -The class \ccRefName\ defines types that are the same as some of the -types defined by the triangulation data structure class -\ccc{TriangulationDataStructure}. - -\ccThree{typedef TriangulationDataStructure::Full_cell_handle}{Full_cell_handle}{} -\ccThreeToTwo - -\ccTypedef{typedef TriangulationDataStructure Triangulation_data_structure;}{} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Vertex_handle Vertex_handle;}{} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Full_cell_handle Full_cell_handle;}{} - -\ccCreation -\ccCreationVariable{v} %% choose variable name - -In order to obtain new vertices or destruct unused vertices, the user must -call the \ccc{new_vertex()} or \ccc{delete_vertex()} method of the -triangulation data structure. - -\ccOperations -\ccThree{Full_cell_handle}{v.set_full_cell(Full_cell_handle cx)}{} - -\ccAccessFunctions - -\ccMethod{Full_cell_handle full_cell() const;} -{Returns a full cell of the triangulation having \ccVar\ as vertex.} - -\ccMethod{Point point() const;} -{Returns the point stored in the vertex. -{\textit{Optional for the triangulation data structure alone.}}} - -\ccHeading{Setting} - -\ccMethod{void set_full_cell(Full_cell_handle c);} -{Sets the incident cell to \ccc{c}.} - -\ccMethod{void set_point(const Point & p);} -{Sets the point to \ccc{p}. {\textit{Optional for the -triangulation data structure alone.}}} - -\begin{ccDebug} -\ccHeading{Checking} - -\ccThree{Full_cell_handle}{v.is_valid()}{} - -\ccMethod{bool is_valid(bool verbose = false) const;} -{Checks the validity of the vertex. Must check that its incident cell -has this vertex. The validity of the base vertex is also checked.\\ -When \ccc{verbose} is set to \ccc{true}, messages are printed to give -a precise indication on the kind of invalidity encountered.} -\end{ccDebug} - -\ccSeeAlso - -\ccc{TriangulationDataStructure::FullCell}\\ -\ccc{TriangulationDataStructure}. - -\end{ccRefConcept} \ No newline at end of file diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation.tex deleted file mode 100644 index dd05edb97c7..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation.tex +++ /dev/null @@ -1,533 +0,0 @@ -\begin{ccRefClass}{Triangulation} - -\ccDefinition - -The class \ccRefName\ is used to store and query the full cells and vertices of -a triangulationin dimension $d$. A special vertex, named -{em infinite vertex}, is used to triangulate the outside of the convex -hull of the points in so called {\em infinite cells}. - -\ccInclude{CGAL/Triangulation.h} - -\ccParameters - -\ccc{TriangulationTraits} is the geometric traits class that provides the geometric types -and predicates needed by triangulations. \ccc{TriangulationTraits} must be a model of the -concept \ccc{TriangulationTraits}. - -\ccc{TriangulationDataStructure} is the class used to store the underlying triangulation data -structure. \ccc{TriangulationDataStructure} must be a model of the concept -\ccc{TriangulationDataStructure}. The class template \ccRefName\ can -be defined by specifying only the first parameter, or by using the -tag \ccc{CGAL::Default} as -the second parameter. In both cases, \ccc{TriangulationDataStructure} defaults to -\ccc{Triangulation_data_structure::type, -Triangulation_vertex, Triangulation_full_cell>}. - -\ccTypes -\ccThree{typedef TriangulationTraits::Point_d}{Maximal_dimension;}{} -%The following types are self-explanatory: % but we are explaining anyway - -\ccTypedef{typedef TriangulationTraits Geom_traits;}% -{Type for the model of the \ccc{TriangulationTraits} concept.} - -\ccTypedef{typedef TriangulationTraits::Point_d Point;}{A point in Euclidean space.} - -\ccTypedef{typedef TriangulationTraits::Dimension Maximal_dimension;}% -{This indicates whether the dimension of the underlying space is static -(\ccc{Maximal_dimension}=\ccGlobalScope\ccc{Dimension_tag}) or -dynamic (\ccc{Maximal_dimension}=\ccGlobalScope\ccc{Dynamic_dimension_tag}). -In the latter case, the \ccc{dim} parameter passed to the class's constructor -is used.} - -\ccTypedef{typedef TriangulationDataStructure Triangulation_ds;}% -{The second template parameter.} - - -\ccThree{typedef TriangulationDataStructure::Full_cell_iterator}{Full_cell_iterator}{} - - -\ccTypedef{typedef TriangulationDataStructure::Vertex Vertex;}{A model of the concept -\ccc{TriangulationVertex}.} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Full_cell Full_cell;}{A model of the concept -\ccc{TriangulationFullCell}.} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Facet Facet;}{The facet -class} -\ccGlue -\ccTypedef{typedef TriangulationDataStructure::Face Face;}% -{A model of the concept \ccc{TriangulationDSFace}.} - -The vertices and full cells of triangulations are accessed through handles, -iterators and circulators. A handle is a model of the \ccc{Handle} concept, -and supports the two dereference operators \ccc{operator*} and -\ccc{operator->}. A circulator is a model of the concept \ccc{Circulator}. -Iterators and circulators are bidirectional and non-mutable. - -Iterators and circulators are convertible to the corresponding handles, thus -the user can pass them directly as arguments to the functions. - -\ccTypedef{typedef TriangulationDataStructure::Vertex_handle - Vertex_handle;}{handle to a a vertex} -\ccGlue\ccTypedef{typedef TriangulationDataStructure::Vertex_iterator - Vertex_iterator;}{iterator over all vertices} - -\ccTypedef{typedef TriangulationDataStructure::Full_cell_handle - Full_cell_handle;}{handle to a full cell} -\ccGlue\ccTypedef{typedef - TriangulationDataStructure::Full_cell_iterator - Full_cell_iterator;}{iterator over all full cells} - -\ccTypedef{typedef TriangulationDataStructure::Facet_iterator - Facet_iterator;}{iterator over all facets} - -\ccTypedef{typedef TriangulationDataStructure::size_type size_type;}{Size type (an unsigned integral -type).} -\ccGlue\ccTypedef{typedef TriangulationDataStructure::difference_type difference_type;}{Difference -type (a signed integral type).} - -The \ccRefName\ class also defines the following enum type to specify -which case occurs when locating a point in the triangulation: - -\ccEnum{ -enum Locate_type -{ - ON_VERTEX - , IN_FACE - , IN_FACET - , IN_FULL_CELL - , OUTSIDE_CONVEX_HULL - , OUTSIDE_AFFINE_HULL -};}{See \ccc{CGAL::Triangulation::Locate_type}} - -\ccCreation -\ccCreationVariable{tr} - -\ccConstructor{Triangulation(const int dim, const Geom_traits & gt = -Geom_traits())} -{Instantiates a triangulation with one vertex (the vertex at infinity). See the -description of the nested type \ccc{Maximal_dimension} above for an -explanation of the use of the parameter \ccc{dim}. The triangulation stores a copy -of the geometric traits \ccc{gt}.} - -\ccConstructor{Triangulation(const Triangulation & t2);} -{The copy constructor.}% All vertices and full cells are duplicated.} - -\ccHeading{Access functions} - -\ccThree{Finite_full_cell_iterator}{tr.number_of_vertices() const}{} - -\ccMethod{const Triangulation_ds & tds() const;}% -{Returns a const reference to the underlying triangulation data structure.} - -\begin{ccAdvanced} -\ccMethod{Triangulation_ds & tds();}% -{Returns a non-const -reference to the underlying triangulation data structure.} -\end{ccAdvanced} - -\ccMethod{const Geom_traits & geom_traits() const;}% -{Returns a const reference to the geometric traits instance.} - -\ccMethod{int maximal_dimension() const;}% -{Returns the dimension of the embedding Euclidean space.} -\ccGlue -\ccMethod{int current_dimension() const;}% -{Returns the dimension of the triangulation (as an embedded manifold).} - -\ccMethod{bool empty() const;}% -{Returns \ccc{true} if the triangulation has no finite vertex. Returns -\ccc{false} otherwise.} -\ccGlue -\ccMethod{size_type number_of_vertices() const;}% -{Returns the number of finite vertices in the triangulation.} -\ccGlue -\ccMethod{size_type number_of_full_cells() const;}% -{Returns the number of full cells of maximal dimension in the triangulation -(full cells incident to the vertex at infinity are counted).} - -\ccMethod{Vertex_handle infinite_vertex() const;}% -{Returns a handle to the vertex at infinity.} - -\ccMethod{Full_cell_handle infinite_full_cell() const;}% -{Returns a handle to some full cell incident to the vertex at infinity.} - -\ccHeading{Non-constant-time access functions} - -\ccMethod{size_type number_of_finite_full_cells() const;}% -{Returns the number of full cells of maximal dimension that are not - incident to the vertex at infinity.} - -\ccHeading{Tests for finite and infinite elements} - -\ccMethod{bool is_infinite(const Vertex_handle v) const;} -{Returns \ccc{true} if and only if the vertex \ccc{v} is the infinite vertex.} - -\ccGlue - -\ccMethod{bool is_infinite(const Full_cell_handle c) const;} -{Returns \ccc{true} if and only if \ccc{c} is incident to the infinite vertex. -%\ccPrecond $0\leq$\ccVar.\ccc{current_dimension()}. -} - -\ccGlue - -\ccMethod{bool is_infinite(const Facet & ft) const;} -{Returns \ccc{true} if and only if facet \ccc{ft} is incident to the infinite -vertex. -} - -\ccGlue - -\ccMethod{bool is_infinite(const Face & f) const;}{Returns \ccc{true} if and -only if the face \ccc{f} is incident to the infinite vertex. -} - - -%\ccHeading{Queries} - -% \ccMethod{bool is_vertex(const Point & p, Vertex_handle & v) const;} {Tests -% whether \ccc{p} is a vertex of \ccVar\ by locating \ccc{p} in the triangulation. If -% \ccc{p} is found, the associated vertex \ccc{v} is given.} - -% \ccGlue\ccMethod{bool is_vertex(const Point & p, Vertex_handle & v, -% Full_cell_handle hint) const;} {Same as above. The \ccc{Full_cell_handle hint} is -% an optional parameter that is used as a hint for the point location.} - -% \ccGlue\ccMethod{bool is_vertex(Vertex_handle v) const;} -% {Tests whether \ccc{v} is a vertex of \ccVar.} - -% \ccMethod{bool is_full_cell(Full_cell_handle c) const;} -% {Tests whether \ccc{c} is a full cell of \ccVar.} - -% \ccMethod{Orientation orientation(Full_cell_handle c) const;} -% {Returns the orientation of the finite full cell \ccc{c}: -% \ccGlobalScope\ccc{POSITIVE}, \ccGlobalScope\ccc{NEGATIVE} or -% \ccGlobalScope\ccc{COPLANAR}. If \ccVar.\ccc{current_dimension() == 0}, then -% \ccGlobalScope\ccc{POSITIVE} is returned. Under normal circumstances, the function -% should always return \ccGlobalScope\ccc{POSITIVE}. -% \ccPrecond Full cell \ccc{c} must be finite. -% } - -% \ccMethod{template< typename OutputIterator > OutputIterator -% incident_full_cells(Vertex_const_handle v, OutputIterator out) const;} -% {Insert in \ccc{out} all the full cells that are incident to the vertex -% \ccc{v}, {i.e.}, the full cells that have the \ccc{Vertex v} as a vertex. -% Returns the (modified) output iterator. -% %\ccPrecond\ccc{is_full_cell(f.full_cell())}. -% } - -% \ccMethod{template< typename OutputIterator > OutputIterator -% incident_full_cells(const Face & f, OutputIterator out) const;} -% {Insert in \ccc{out} all the full cells that are incident to the face \ccc{f}, -% {i.e.}, the full cells that have the \ccc{Face f} as a subface. -% Returns the output iterator. -% %\ccPrecond\ccc{is_full_cell(f.full_cell())}. -% } - -% \ccMethod{template< typename OutputIterator > OutputIterator -% star(const Face & f, OutputIterator out) const;} -% {Insert in \ccc{out} all the full cells that share at least one vertex with the \ccc{Face -% f}. Returns the output iterator. -% %\ccPrecond\ccc{is_full_cell(f.full_cell())}. -% } - -% \ccMethod{template< typename OutputIterator > OutputIterator -% incident_faces(Vertex_handle v, const int d, OutputIterator -% out);}{Constructs all the \ccc{Face}s of dimension \ccc{d} incident to -% \ccc{Vertex} v and inserts them in the \ccc{OutputIterator out}. If -% $d\geq$ \ccVar.\ccc{current_dimension()}, then no \ccc{Face} is -% constructed. -% \ccPrecond$0 < d$. -% } - -% \ccMethod{template< typename OutputIterator > OutputIterator -% incident_upper_faces(Vertex_const_handle v, int d, OutputIterator -% out);}{Constructs all the {\em upper} \ccc{Face}s of dimension \ccc{d} -% incident to \ccc{Vertex} v and inserts them in the \ccc{OutputIterator out}.\\ -% Assuming some total ordering on the vertices of the triangulation (which is -% invariant as long as no vertex is inserted in or removed from the triangulation), a -% \ccc{Face} incident to \ccc{v} is an {\em upper} \ccc{Face} if and only if -% its vertices occur at \ccc{v} or beyond \ccc{v} in the ordering.\\ In -% particular, taking the disjoint union of the upper \ccc{Face}s of dimension -% \ccc{d} incident to every vertex of the triangulation yields exactly the set of -% faces of dimension \ccc{d} of the triangulation.\\ The constructed \ccc{Faces} are -% lexicographically ordered using the vertex order as base ordering. In order to -% make it easy to find the infinite \ccc{Faces}, the latter ordering makes the -% vertex at infinity the smallest vertex; so calling the method on a finite -% vertex will construct only finite faces and calling it on the vertex at -% infinity will produce all infinite \ccc{d}-faces. (Elle est pas belle, la vie -% ?) If $d\geq $\ccVar.\ccc{current_dimension()}, then no \ccc{Face} is -% constructed. -% \ccPrecond$0 < d$. -% } - -% \ccGlue\ccMethod{template< typename OutputIterator, typename Comparator > -% OutputIterator incident_upper_faces(Vertex_const_handle v, const int d, -% OutputIterator out, Comparator cmp);} {Same as above, but uses \ccc{cmp} as -% the vertex ordering to define the upper faces.} - -\ccHeading{Faces and Facets} % - - - - - - - - - - - - - - - - - - - - FACETS - -\ccMethod{Full_cell_handle full_cell(const Facet & f) const;} -{Returns a full cell containing the facet \ccc{f}} - -\ccMethod{int index_of_covertex(const Facet & f) const;} -{Returns the index of the vertex of the full cell -\ccc{c=}\ccVar.\ccc{full_cell(f)} which does {not} belong to \ccc{c}.} - -\ccHeading{Triangulation traversal} % - - - - - - - - - - - - - - - - - - TRAVERSAL - -%\ccMethod{Vertex_const_iterator vertices_begin() const;}{} -%\ccGlue -\ccMethod{Vertex_iterator vertices_begin();} -{The first vertex of \ccVar.} -%\ccGlue\ccMethod{Vertex_const_iterator vertices_end() const;}{} -\ccGlue\ccMethod{Vertex_iterator vertices_end();} -{The beyond vertex of \ccVar.} - -%\ccMethod{Finite_vertex_const_iterator finite_vertices_begin() const;}{} -%\ccGlue -\ccMethod{Finite_vertex_iterator finite_vertices_begin();} -{The first finite vertex of \ccVar.} -%\ccGlue\ccMethod{Finite_vertex_const_iterator finite_vertices_end() const;}{} -\ccGlue\ccMethod{Finite_vertex_iterator finite_vertices_end();} -{The beyond finite vertex of \ccVar.} - -%\ccMethod{Full_cell_const_iterator full_cells_begin()const;}{}\ccGlue -\ccMethod{Full_cell_iterator full_cells_begin();} -{The first full cell of \ccVar.} -%\ccGlue\ccMethod{Full_cell_const_iterator full_cells_end() const;}{} -\ccGlue\ccMethod{Full_cell_iterator full_cells_end();} -{The beyond full cell of \ccVar.} - -%\ccMethod{Finite_full_cell_const_iterator finite_full_cells_begin() const;}{}\ccGlue -\ccMethod{Finite_full_cell_iterator finite_full_cells_begin();} -{The first finite full cell of \ccVar.} -%\ccGlue\ccMethod{Finite_full_cell_const_iterator finite_full_cells_end() const;}{} -\ccGlue\ccMethod{Finite_full_cell_iterator finite_full_cells_end();} -{The beyond finite full cell of \ccVar.} - -\ccMethod{Facet_iterator facets_begin();} -{Iterator to the first facet of the triangulation.} -\ccGlue -\ccMethod{Facet_iterator facets_end();} -{Iterator to the beyond facet of the triangulation.} - -\ccMethod{Finite_facet_iterator finite_facets_begin();} -{Iterator to the first finite facet of the triangulation.} -\ccGlue -\ccMethod{Finite_facet_iterator finite_facets_end();} -{Iterator to the beyond finite facet of the triangulation.} - -\ccHeading{Point location} % - - - - - - - - - - - - - - - - - POINT LOCATION - -The class \ccRefName\ provides methods to locate a query point with respect to -the triangulation: - -\ccMethod{Full_cell_handle locate(const Point & query, -Full_cell_handle hint = Full_cell_handle()) const;} -{The optional argument \ccc{hint} is used as a starting place for the search.\\ -If the \ccc{query} point lies outside the affine hull of the points (which can -happen when \ccVar.\ccc{current_dimension() < } -\ccVar.\ccc{maximal_dimension()}) or if there is no finite vertex yet in the -triangulation, then \textit{locate} returns a default constructed -\ccc{Full_cell_handle()}.\\ -If the point \ccc{query} lies in the interior of a bounded (finite) full cell of \ccVar, -the latter full cell is returned.\\ -If \ccc{query} lies on the boundary of some finite full cells, one of them -is returned.\\ -Let $d=$\ccVar.\ccc{current_dimension()}. If the point \ccc{query} lies -outside the convex hull of the points, an infinite full cell with vertices $\{ -p_1, p_2, \ldots, p_d, \infty\}$ is returned such that the full cell $(p_1, p_2, -\ldots, p_d, query)$ is positively oriented (the rest of the triangulation lies -on the other side of facet $(p_1, p_2, \ldots, p_d)$).} - -\ccMethod{Full_cell_handle locate(const Point & query, Vertex_handle hint) -const;} -{Same as above but \ccc{hint} is a vertex and not a full cell.} - -\ccMethod{Full_cell_handle locate(const Point & query, Locate_type & loc_type, -Face & f, Facet & ft, Full_cell_handle hint = Full_cell_handle()) const;} -{The optional argument \ccc{hint} is used as a starting place for the -search.\\ If the \ccc{query} point lies outside the affine hull of the points -(which can happen when \ccVar.\ccc{current_dimension() < } -\ccVar.\ccc{maximal_dimension()}) or if there is no finite vertex yet in the -triangulation, then \ccc{loc_type} is set to -\ccc{OUTSIDE_AFFINE_HULL}, and \textit{locate} returns -\ccc{Full_cell_handle()}.\\ If the \ccc{query} point lies inside the affine hull -of the points, a $k$-face that contains \ccc{query} {in its relative -interior} is returned. (If the $k$-face is finite, it is -unique.)\begin{itemize} \item[$k=0$] \ccc{loc_type} is set to \ccc{ON_VERTEX}, -\ccc{f} is set to the vertex \ccc{v} the \ccc{query} lies on and a full cell -having \ccc{v} as a vertex is returned. -\item[$0 -size_type insert(ForwardIterator s, ForwardIterator e);}% -{Inserts the points found in range \ccc{[s,e)} in the triangulation. Returns -the number of vertices actually inserted. (If several vertices share the -same position in space, only the first insertion is counted.)} - -\ccMethod{Vertex_handle insert(const Point p, Full_cell_handle hint = -Full_cell_handle());}{Inserts point \ccc{p} in the triangulation. Returns a -\ccc{Vertex_handle} to the vertex of the triangulation with position \ccc{p}. -Prior to the actual insertion, \ccc{p} is located in the triangulation; -\ccc{hint} is used as a starting place for locating \ccc{p}.} - -\ccMethod{Vertex_handle insert(const Point p, Vertex_handle hint);}% -{Same as above but uses a vertex \ccc{hint} as the starting place for the search.} - -\begin{ccAdvanced} - -\ccMethod{Vertex_handle insert(const Point p, Locate_type -loc_type, Face & f, Facet & ft, Full_cell_handle c);} {Inserts -point \ccc{p} into the triangulation and returns a handle to the -\ccc{Vertex} at that position. The action taken depends on the value of -\ccc{loc_type}:\begin{itemize} \item[\ccc{ON_VERTEX}] The point of the -\ccc{Vertex} described by \ccc{f} is set to \ccc{p}. \item[\ccc{IN_FACE}] -The point \ccc{p} is inserted in the \ccc{Face f}. \item[\ccc{IN_FACET}] -The point \ccc{p} is inserted in the \ccc{Facet ft}. \item[Anything else] -The point \ccc{p} is inserted in the triangulation according to the value -of \ccc{loc_type}, using the full cell \ccc{c}.\end{itemize} This method is used -internally by the other \ccc{insert()} methods.} - -\ccMethod{template < typename ForwardIterator, typename OutputIterator > -Vertex_handle insert_in_hole(const Point & p, ForwardIterator s, -ForwardIterator e, const Facet & ft, OutputIterator out);}{The full cells in -the range $C=$\ccc{[s, e)} are removed, thus forming a hole. A \ccc{Vertex} is -inserted at position \ccc{p} and connected to the boundary of the hole in -order to ``fill it''. A \ccc{Vertex_handle} to the new \ccc{Vertex} is -returned. The facet \ccc{ft} must lie on the boundary of $C$ and its -defining full cell, \ccVar.\ccc{full_cell(ft)} must lie inside $C$. Handles -to the newly created full cells are output in the \ccc{out} output iterator. -\ccPrecond $C$ must be a (geometric) ball, must contain \ccc{p} in its -interior and not contain any vertex all of whose incident full cells are in -$C$. (This implies that \ccVar.\ccc{current_dimension()}$\geq2$ if -$|C|>1$.) The boundary of $C$ must be a triangulation of the sphere -$\sphere^{k-1}$.} - -\ccMethod{template < typename ForwardIterator > Vertex_handle -insert_in_hole(const Point & p, ForwardIterator s, ForwardIterator e, const -Facet & ft);}{Same as above, but the newly created full cells are not -retrieved.} - -\ccMethod{Vertex_handle insert_in_face(const Point & p, const Face & f);}% -{Inserts point \ccc{p} in the triangulation. -\ccPrecond \ccc{p} must lie in the relative interior of \ccc{f}.} - -\ccMethod{Vertex_handle insert_in_facet(const Point & p, const Facet & ft);}% -{Inserts point \ccc{p} in the triangulation. -\ccPrecond \ccc{p} must lie in the relative interior of \ccc{ft}.} - -\ccMethod{Vertex_handle insert_in_full_cell(const Point & p, Full_cell_handle -c);}% -{Inserts point \ccc{p} in the triangulation. \ccPrecond \ccc{p} must lie in the -interior of \ccc{c}.} - -\ccMethod{Vertex_handle insert_outside_convex_hull(const Point &, - Full_cell_handle c);}% -{Inserts point \ccc{p} in the triangulation. -\ccPrecond \ccc{p} must lie outside the convex hull of \ccVar. The half-space -defined by the infinite full cell \ccc{c} must contain \ccc{p}.} - -\ccMethod{Vertex_handle insert_outside_affine_hull(const Point &);}% -{Inserts point \ccc{p} in the triangulation. -\ccPrecond \ccc{p} must lie outside the {affine} hull of \ccVar.} - -\end{ccAdvanced} - - -\begin{ccDebug} - \ccHeading{Validity check} - -\ccMethod{bool is_valid(bool verbose=false) const;} -{Partially checks whether \ccVar\ is a triangulation. This function returns -\ccc{true} if the combinatorial triangulation data structure's \ccc{is_valid()} -test returns \ccc{true} and if some geometric tests are passed with success: It -is checked that the orientation of each finite full cell is positive and that -the orientation of each infinite full cell is consistent with their finite -adjacent full cells. -The \ccc{verbose} parameter is not used.% -} - -\ccMethod{bool are_incident_full_cells_valid(Vertex_const_handle v, bool -verbose = false) const;} {Returns \ccc{true} if and only if all -finite full cells incident to \ccc{v} have positive orientation. -The \ccc{verbose} parameter is not used.% -} - -\end{ccDebug} - -\ccHeading{Input/Output} - -\ccFunction{istream & operator>> (istream & is, Triangulation & t);} -{Reads the underlying combinatorial triangulation from \ccc{is} by -calling the corresponding input operator of the triangulation data -structure class (note that the infinite vertex is numbered 0), and the -non-combinatorial information by calling the corresponding input -operators of the vertex and the full cell classes (such as point -coordinates), which are provided by overloading the stream operators -of the vertex and full cell types. Assigns the resulting triangulation to -\ccc{t}.} - -\ccFunction{ostream& operator<< (ostream& os, const Triangulation & t);} -{Writes the triangulation \ccc{t} into \ccc{os}.} - -The information in the \ccc{iostream} is: the current dimension, the number of -finite vertices, the non-combinatorial information about vertices (point, -\emph{etc.}), the number of full cells, the indices of the vertices of each -full cell, plus the non-combinatorial information about each full cell, then the -indices of the neighbors of each full cell, where the index corresponds to the -preceding list of full cells. - -\ccSeeAlso - -\ccc{Triangulation_data_structure},\\ -\ccc{Delaunay_triangulation},\\ -%\ccc{Regular_triangulation}. - -\end{ccRefClass} - diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFace.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFace.tex deleted file mode 100644 index 8b7be55f61c..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFace.tex +++ /dev/null @@ -1,82 +0,0 @@ -\begin{ccRefConcept}{TriangulationDSFace} - -\ccDefinition - -A \ccRefName\ describes a \ccc{k}-face \ccc{f} in a triangulation. -It gives access to a handle to a full cell \ccc{c} containing the face -\ccc{f} in its boundary, as well as the indices of the vertices of \ccc{f} in -\ccc{c}. It must hold that \ccc{f} is a {\em proper} face of full cell -\ccc{c}, {i.e.}, the dimension of \ccc{f} is strictly less than -the dimension of \ccc{c}. - -\ccTypes - -\ccNestedType{Full_cell_handle}{Must be the same as the nested type -\ccc{TriangulationDataStructure::Full_cell_handle} of the \ccc{TriangulationDataStructure} in which the \ccc{TriangulationDSFace} is -defined/used.} - -\ccNestedType{Vertex_handle}{Must be the same as the nested type -\ccc{TriangulationDataStructure::Vertex_handle} of the \ccc{TriangulationDataStructure} in which the \ccc{TriangulationDSFace} is -defined/used.} - -\ccHasModels - -\ccc{CGAL::Triangulation_face}. - -\ccCreation -\ccCreationVariable{f} - -There is no default constructor, since the maximal dimension -(of the full cells) must be known by the constructors of a \ccRefName. - -\ccConstructor{Triangulation_face(Triangulation_face g);}{Copy constructor.} - -\ccConstructor{Triangulation_face(Full_cell_handle c);}{Sets the \ccc{Face}'s -full cell to \ccc{c} and the maximal dimension to -\ccc{c.maximal_dimension()}. -\ccPrecond \ccc{c!=Full_cell_handle()} -} - -\ccConstructor{Triangulation_face(const int ad);}{Setup the \ccc{Face} knowing -the maximal dimension \ccc{ad}. Sets the \ccc{Face}'s full cell to the -default-constructed one.} - -\ccHeading{Access functions} - -\ccMethod{Full_cell_handle full_cell() const;}{Returns a handle to a cell that -has the face in its boundary.} - -\ccMethod{int face_dimension() const;}{Returns the dimension of the face -(one less than the number of vertices).} - -\ccMethod{int index(int i) const;}{Returns the index of the \ccc{i}-th vertex -of the face in the cell \ccVar.\ccc{full_cell()}. \ccPrecond $0\leq i\leq$\ccVar.\ccc{face_dimension()}.} - -\ccMethod{Vertex_handle vertex(int i) const;}{Returns a handle to the -\ccc{i}-th \ccc{Vertex} of the face in the cell \ccVar.\ccc{full_cell()}. -\ccPrecond $0\leq i\leq$\ccVar.\ccc{face_dimension()}.} - -\ccHeading{Update functions} - -\ccMethod{void clear();}{Sets the facet to the empty set. Maximal - dimension remains unchanged.} - -\ccMethod{void set_full_cell(Full_cell_handle c);}{Sets the cell of the face to -\ccc{c}. -\ccPrecond \ccc{c!=Full_cell_handle()} -} - -\ccMethod{void set_index(int i, int j);}{Sets the index of the \ccc{i}-th -vertex of the face to be the \ccc{j}-th vertex of the full cell. -\ccPrecond $0\leq i\leq$\ccVar.\ccc{full_cell()->face_dimension()}. -\ccPrecond $0\leq j\leq$\ccVar.\ccc{full_cell()->maximal_dimension()}.} - -\ccSeeAlso - - -\ccc{TriangulationDataStructure::FullCell} \\ -\ccc{TriangulationDataStructure::Vertex} \\ -\ccc{TriangulationDataStructure}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFullCell.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFullCell.tex deleted file mode 100644 index 436203aaa1c..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSFullCell.tex +++ /dev/null @@ -1,230 +0,0 @@ -\begin{ccRefConcept}{TriangulationDSFullCell} - -\ccDefinition - -The concept \ccRefName\ describes what a full cell is in a model of the concept -\ccc{TriangulationDataStructure}. It sets requirements of combinatorial nature -only, as geometry is not concerned here. -In the context of triangulation, the term full cell refers to a face of -\emph{maximal} dimension. This maximality characteristic is emphasized by using -the adjective {\em full}. - -A \ccRefName\ is responsible for storing handles to the vertices of a -full cell as well as handles to its neighbors. - - -\ccHasModels - -\ccc{CGAL::Triangulation_ds_full_cell}\\ -\ccc{CGAL::Triangulation_full_cell} - -\ccTypes - -\ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} -\ccThreeToTwo - - -\ccNestedType{Vertex_handle}%{} -%\ccGlue\ccNestedType{Vertex_const_handle} -{A handle to a vertex. It must be the same as the -nested type \ccc{TriangulationDataStructure::Vertex_handle} of the \ccc{TriangulationDataStructure} in which the -\ccc{TriangulationDSFullCell} is defined/used.} - -\ccNestedType{Vertex_handle_iterator}{An iterator over the handles to -the vertices of the full cell.} - -\ccNestedType{Full_cell_handle}%{} -%\ccGlue\ccNestedType{Full_cell_const_handle} -{A handle to a full cell. It must be the same as the -nested type \ccc{TriangulationDataStructure::Full_cell_handle} of the \ccc{TriangulationDataStructure} in which the -\ccc{TriangulationDSFullCell} is defined/used.} - -\ccThree{Full_cell_handle}{TriangulationDataStructure::Full_cell_data TDS_data}{} -\ccThreeToTwo - -\ccTypedef{typedef TriangulationDataStructure::Full_cell_data - TDS_data;}{A data member of this type has to be stored and accessible through - access function below.} - - -\ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} -\ccThreeToTwo - -\ccNestedType{ - template - Rebind_TDS} -{This nested template class has to define a type \ccc{Other} which is the -{\it rebound} vertex, that is, the one whose \ccc{Triangulation_data_structure} -will be the actually used one. The \ccc{Other} type will be the real base -class of \ccc{Triangulation_data_structure::Full_cell}.} - - - -\ccCreation -\ccCreationVariable{c} - -\ccConstructor{TriangulationDSFullCell(int dmax);}{Sets the maximum possible -dimension of the full cell.} - -\ccConstructor{TriangulationDSFullCell(const TriangulationDSFullCell & fc);}% -{Copy constructor.} - -If you want to create a full cell as part of a \ccc{TriangulationDataStructure}, -you would rather want to call the \ccc{new_full_cell()} from the latter concept, -as it is not possible to incorporate an existing external full cell into -a triangulation. - -\ccHeading{Access functions} - -\ccMethod{int maximal_dimension() const;}{Returns one less than the maximum -number of vertices that the full cell can store. This does {not} return -the dimension of the actual full cell stored in \ccVar.} - -\ccMethod{Vertex_handle_iterator vertices_begin() const;} -{Returns an iterator to the first \ccc{Vertex_handle} stored in the -full cell.} - -\ccMethod{Vertex_handle_iterator vertices_end() const;} -{Returns an iterator pointing beyond the last \ccc{Vertex_handle} stored in -the full cell.} - -\ccMethod{Vertex_handle vertex(const int i) const;}{Returns the \ccc{i}-th vertex -of the full cell. \ccPrecond $0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccGlue\ccMethod{Full_cell_handle neighbor(const int i) const;}{Returns the -full cell opposite to the \ccc{i}-th vertex of the full cell \ccVar. \ccPrecond -$0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccMethod{int mirror_index(const int i) const;}{Returns the index \ccc{j} of -the full cell \ccVar as a neighbor in the full cell \ccVar\ccc{.neighbor(i);}. If the -returned integer is not negative, it holds that \ccVar.% -\ccc{neighbor(i)->neighbor(j) == }\ccVar. Returns -\ccc{-1} if \ccVar has no adjacent full cell of index \ccc{i}. -\ccPrecond $0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccMethod{int index(Full_cell_handle n) const;}{Returns the index \ccc{i} -such that \ccVar\ccc{.neighbor(i)==n}. \ccPrecond \ccc{n} -must be a neighbor of \ccVar.} -\ccGlue -\ccMethod{int index(Vertex_handle v) const;}{Returns the index \ccc{i} of -the vertex \ccc{v} such that \ccVar\ccc{.vertex(i)==v}. \ccPrecond \ccc{v} must be -a vertex of the \ccVar.} - -\ccMethod{const TDS_data & get_tds_data() const;}{Returns the data member of -type \ccc{TDS_data}. It is typically used to mark the full cell as \emph{visited} -during operations on a \ccc{TriangulationDataStructure}.} - -\ccMethod{TDS_data & get_tds_data();}{Same as above, but returns a reference to -a non-\ccc{const} object.} - -\begin{ccAdvanced} -\ccMethod{Vertex_handle mirror_vertex(const int i, const int cur_dim) const;} -{Returns a handle to the mirror vertex of the \ccc{i}-th vertex of full cell -\ccVar. This function works even if the adjacency information stored in the -neighbor full cell \ccc{*}\ccVar\ccc{.neighbor(i)} is corrupted. This is useful -when temporary corruption is necessary during surgical operation on a -triangulation. \ccPrecond $0\leq -i,$\ccc{cur_dim}$\leq$\ccc{maximal_dimension()}.} -\end{ccAdvanced} - - -\ccHeading{Update functions} % - - - - - - - - - - - - - - - - - UPDATES -\ccThree{ostream&}{c. set_mirror_index(const int i, const int index)}{} - -\ccMethod{void set_vertex(const int i, Vertex_handle v);}{Sets the $i$-th -vertex of the full cell. -\ccPrecond $0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccMethod{void set_neighbor(const int i, Full_cell_handle n);} {Sets the -\ccc{i}-th neighbor of \ccVar\ to \ccc{n}. Full cell \ccc{n} is -opposite to the $i$-th vertex of \ccVar. -\ccPrecond $0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccMethod{void set_mirror_index(const int i, const int index);} {Sets the -mirror index of the $i$-th vertex of \ccVar\ to \ccc{index}. This corresponds -to the index, in \ccVar\ccc{->neighbor(i)}, of the full cell \ccVar.\\ -Note: an implementation of the concept \ccVar\ may choose not to store mirror -indices, in which case this function should do nothing. -\ccPrecond $0\leq i\leq$\ccc{maximal_dimension()}.} - -\ccMethod{void swap_vertices(int d1, int d2);}{Switches the orientation of the -full cell \ccVar\ by swapping its vertices with index \ccc{d1} and \ccc{d2}. -\ccPrecond $0\leq d1,d2\leq$\ccc{maximal_dimension()}.} - -\ccHeading{Queries} - -\ccMethod{bool has_vertex(Vertex_handle v) const;}{Returns \ccc{true} -if the vertex \ccc{v} is a vertex of the full cell \ccVar. Returns \ccc{false} -otherwise.} - -\ccMethod{bool has_vertex(Vertex_handle v, int & ret) const;}% -{Returns \ccc{true} and sets the value of \ccc{ret} to the index of \ccc{v} in -\ccVar\ if the vertex \ccc{v} is a vertex of the full cell \ccVar. Returns -\ccc{false} otherwise.} - -\ccMethod{bool has_neighbor(Full_cell_handle n) const;}{Returns \ccc{true} -if the full cell \ccc{n} is a neighbor of the full cell \ccVar. Returns -\ccc{false} otherwise.} - -\ccMethod{bool has_neighbor(Full_cell_handle n, int & ret) const;}% -{Returns \ccc{true} and sets the value of \ccc{ret} to the index of \ccc{n} as -a neighbor of \ccVar\ if the full cell \ccc{n} is a neighbor of the full cell -\ccVar. Returns \ccc{false} otherwise.} - - -\begin{ccDebug} -\ccHeading{Validity check} - -\ccMethod{bool is_valid(bool verbose=false) const;}{ -Performs some validity checks on the full cell \ccVar. - -It must \emph{at least} check that for each \emph{existing} neighbor \ccc{n}, -\ccVar\ is also a neighbor of \ccc{n}. - -Returns \ccc{true} if all the tests pass, \ccc{false} if any test fails. See -the documentation for the models of this concept to see the additionnal (if -any) validity checks that they implement.% -} -\end{ccDebug} - -\ccHeading{Memory management} - -% \ccMethod{void* for_compact_container() const;}{} -% \ccGlue\ccMethod{void* & for_compact_container();}{} - -% These member functions are required by the classes -% \ccc{Triangulation_data_structure} and -% \ccc{Triangulation} (and its derived classes) because they use -% \ccc{Compact_container} to store their vertices and full cells. See the -% documentation of \ccc{Compact_container} for the exact requirements. - -\ccMethod{void * for_compact_container() const;}{} -\ccGlue -\ccMethod{void * & for_compact_container();}{} -{ These member functions are required by \ccc{Triangulation_data_structure} - because it uses \ccc{Compact_container} to store its cells. See the - documentation of \ccc{Compact_container} for the exact requirements.} - - -\ccHeading{Input/Output} -These operators can be used directly and are called by the I/O -operator of class \ccc{TriangulationDataStructure}. - -\ccFunction{template istream& operator>>(istream & is, - Triangulation_ds_full_cell & c);} -{Reads (possibly) non-combinatorial information about a full cell from the stream \ccc{is} -into \ccc{c}.} - -\ccFunction{template ostream& operator<<(ostream & os, const - Triangulation_ds_full_cell & c);} -{Writes (possibly) non-combinatorial information about full cell \ccc{c} to the stream - \ccc{os}.} - -\ccSeeAlso - -\ccc{TriangulationDSVertex}\\ -\ccc{TriangulationDSFace}\\ -\ccc{TriangulationDataStructure}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSVertex.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationDSVertex.tex deleted file mode 100644 index fe7f6ba23eb..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationDSVertex.tex +++ /dev/null @@ -1,113 +0,0 @@ -\begin{ccRefConcept}{TriangulationDSVertex} - -\ccDefinition - -The concept \ccRefName\ describes what a vertex is in a model of the concept -\ccc{TriangulationDataStructure}. It sets requirements of combinatorial nature -only, as geometry is not concerned here. In particular, we only require that -the vertex holds a handle to a full cell incident to it in the triangulation. - - - -\ccHasModels - -\ccc{CGAL::Triangulation_ds_vertex}\\ -\ccc{CGAL::Triangulation_vertex} - -\ccTypes -\ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} -\ccThreeToTwo - -\ccNestedType{Full_cell_handle}{A handle to a cell. It must be the same as the -nested type \ccc{TriangulationDataStructure::Full_cell_handle} of the \ccc{TriangulationDataStructure} in which the -\ccc{TriangulationDSVertex} is defined/used.} - -\ccNestedType{ - template - Rebind_TDS} -{This nested template class has to define a type \ccc{Other} which is the -{\it rebound} vertex, that is, the one whose \ccc{Triangulation_data_structure} -will be the actually used one. The \ccc{Other} type will be the real base -class of \ccc{Triangulation_data_structure::Vertex}.} - - -\ccCreation -\ccCreationVariable{v} - -\ccConstructor{TriangulationDSVertex();}{The default constructor (no incident -full cell is set).} -\ccGlue -\ccConstructor{TriangulationDSVertex(Full_cell_handle c);}{Sets the incident -full cell to \ccc{c}. \ccPrecond \ccc{c} must not be the default-constructed -\ccc{Full_cell_handle}.} - -\ccOperations -\ccThree{Full_cell_handle}{v. set_full_cell(Full_cell_handle c);}{} - -\ccMethod{void set_full_cell(Full_cell_handle c);}{Set \ccc{c} as the vertex's -incident full cell. \ccPrecond \ccc{c} must not be the default-constructed -\ccc{Full_cell_handle}.} - -\ccMethod{Full_cell_handle full_cell() const;}{Returns a handle to a - full cell incident to the vertex.} - -\begin{ccDebug} -\ccHeading{Validity check} - -\ccMethod{bool is_valid(bool verbose=false) const;}{% -Performs some validity checks on the vertex \ccVar. - -It must \emph{at least} check that \ccVar\ has an incident full cell, which in -turn must contain \ccVar\ as one of its vertices. - -Returns \ccc{true} if all the tests pass, \ccc{false} if any test fails. See -the documentation for the models of this concept to see the additionnal (if -any) validity checks that they implement.% -} - -\end{ccDebug} - -% \ccHeading{Memory management} - -% \ccMethod{void* for_compact_container() const;}{} -% \ccGlue\ccMethod{void* & for_compact_container();}{} - -% These member functions are required by the classes -% \ccc{Triangulation_data_structure} and -% \ccc{Triangulation} (and its derived classes) because they use -% the \cgal\ container class \ccc{Compact_container} to store their vertices and -% full cells. See the documentation of \ccc{Compact_container} for the exact -% requirements. - -\ccHeading{Memory management} - -\ccMethod{void * for_compact_container() const;}{} -\ccGlue -\ccMethod{void * & for_compact_container();}{} -{ These member functions are required by \ccc{Triangulation_data_structure} - because it uses \ccc{Compact_container} to store its cells. See the - documentation of \ccc{Compact_container} for the exact requirements.} - -\ccHeading{Input/Output} - -These operators can be used directly and are called by the I/O -operator of class \ccc{TriangulationDataStructure}. - -\ccFunction{template istream& operator>>(istream & is, - Triangulation_ds_vertex & v);} -{Reads (possibly) non-combinatorial information about a vertex from the stream \ccc{is} -into \ccc{v}.} - -\ccFunction{template ostream& operator<<(ostream & os, const - Triangulation_ds_vertex & v);} -{Writes (possibly) non-combinatorial information about vertex \ccc{v} to the stream - \ccc{os}.} - -\ccSeeAlso - -\ccc{TriangulationDSFullCell}\\ -\ccc{TriangulationDSFace}\\ -\ccc{TriangulationDataStructure}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationDataStructure.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationDataStructure.tex deleted file mode 100644 index 5d90a8ba447..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationDataStructure.tex +++ /dev/null @@ -1,616 +0,0 @@ -\begin{ccRefConcept}{TriangulationDataStructure} - -\ccDefinition - -The \ccRefName\ concept describes objects responsible for storing and -maintaining the combinatorial part of a -$\cd$-dimensional pure simplicial complex (all simplices that are not -sub-faces of another have the same dimension $\cd$). -Its topology is the topology -of the sphere $\sphere^\cd$ with $d\in[-2,\ad]$. -%possibly of another $\cd$-dimensional manifold without boundary -%(that can be embedded in a higher dimension). - In a pure (or homogeneous) simplicial $\cd$-complex, all - faces are sub-faces of some $\cd$-simplex. (A -simplex is also a face of itself.) In particular, it does not -contain any $\cd+1$-face, and any $\cd-1$-face belongs to exactly -two $\cd$-dimensional {full cells}. - -Values of $\cd$ (the \emph{current dimension} of the complex) include \begin{itemize} - -\item[-2] This corresponds to the non-existence of any object in -the triangulation. - -\item[-1] This corresponds to a single vertex and a single full cell, - which is also the unique vertex and the unique full cell in the - \ccc{TriangulationDataStructure}. - In a -geometric realization of the \ccRefName\ (\emph{e.g.}, in a -\ccc{Triangulation} or a -\ccc{Delaunay_triangulation}), this vertex -corresponds to \emph{the vertex at infinity}. - -\item[0] This corresponds to two vertices, each incident to one $0$-face; -the two full cells being neighbor of each other. This is the unique -triangulation of the $0$-sphere. - -\item[$\cd>0$] This corresponds to a standard triangulation of the sphere -$\sphere^\cd$. -\end{itemize} - -An $i$-simplex is a simplex with $i+1$ vertices. An $i$-simplex $\sigma$ is -{incident} to a $j$-simplex $\sigma'$, $j} - -%\ccTypes -%\ccThree{typedef std::pair}{Facet;}{} -%\ccThreeToTwo - -\ccNestedType{Vertex} -{ -Vertex type. -} -\ccGlue -\ccNestedType{Full_cell} -{ -Full cell type. -} - -The concept \ccRefName\ also defines a type for describing facets of the -triangulation with codimension~1: - - -%\ccThree{typedef std::pair}{Facet;}{} -%\ccTypedef{typedef std::pair Facet;} -\ccNestedType{Facet} -{ -The constructor \ccc{Facet(c,i)} constructs a \ccc{Facet} representing the facet of -full cell \ccc{c} opposite to its \ccc{i}-th vertex. Its dimension is -\ccc{current_dimension()-1}. -} -\ccThreeToTwo - -\ccNestedType{Face} -{A model of the concept \ccc{TriangulationDSFace}.} - -Vertices and full cells are manipulated via \emph{handles}. Handles support the -usual two dereference operators \ccc{operator*} and \ccc{operator->}. - -\ccNestedType{Vertex_handle} -{ -Handle to a \ccc{Vertex}. -} -\ccGlue -\ccNestedType{Full_cell_handle} -{ -Handle to a \ccc{Full_cell}. -} - - -Requirements for \ccc{Vertex} and \ccc{Full_cell} are described in concepts -\ccc{TriangulationDataStructure::Vertex} and -\ccc{TriangulationDataStructure::FullCell} \lcTex{( -\ccRefPage{TriangulationDataStructure::Vertex} and -\ccRefPage{TriangulationDataStructure::FullCell})}. - -\begin{ccAdvanced} -\ccNestedType{template struct Rebind_vertex} -{This nested template class allows to get the type of a triangulation -data structure that only changes the vertex type. It has to define a type -\ccc{Other} which is a {\it rebound} triangulation data structure, that is, the -one whose \ccc{TriangulationDSVertexBase} will be \ccc{Vb2}.} -\ccGlue -\ccNestedType{template struct Rebind_full_cell} -{This nested template class allows to get the type of a triangulation -data structure that only changes the full cell type. It has to define a type -\ccc{Other} which is a {\it rebound} triangulation data structure, that is, the -one whose \ccc{TriangulationDSFullCellBase} will be \ccc{Fcb2}.} -\end{ccAdvanced} - - -Vertices, facets and full cells can be iterated over using \emph{iterators}. -Iterators support the usual two dereference operators \ccc{operator*} and -\ccc{operator->}. - -\ccNestedType{Vertex_iterator} -{ -Iterator over the list of vertices. -} -\ccGlue -\ccNestedType{Full_cell_iterator} -{ -Iterator over the list of full cells. -} -\ccGlue -\ccNestedType{Facet_iterator} -{ -Iterator over the facets of the complex. -} - -\ccNestedType{size_type}{Size type (an unsigned integral type)} -\ccGlue -\ccNestedType{difference_type}{Difference type (a signed integral type)} - -\ccCreation -\ccCreationVariable{tds} - -\ccConstructor{TriangulationDataStructure(int dim = 0);}{Creates an instance \ccVar\ of -type \ccRefName. The maximal dimension of its full cells is \ccc{dim} and -\ccVar\ is initialized to the empty triangulation. Thus, -\ccVar.\ccc{current_dimension()} equals \ccc{-2}. -The parameter \ccc{dim} can be ignored by the constructor if it is already -known at compile-time. Otherwise, the following precondition holds: -\ccPrecond \ccc{dim>0}.} - -%\ccOperations - -\ccHeading{Queries} % --------------------------------------------- QUERIES -\ccThree{OutputIterator}{tds.number_of_full_cells() const}{} - -\ccMethod{int maximal_dimension() const;} { Returns the maximal dimension of -the full dimensional cells that can be stored in the triangulation \ccVar. \ccPostcond the -returned value is positive. } - -\ccMethod{int current_dimension() const;} { Returns the dimension of the -full dimensional cells stored in the triangulation. It holds that -\ccVar.\ccc{current_dimension()=-2} if and only if \ccVar.\ccc{empty()} is -\ccc{true}. \ccPostcond the returned value \ccc{d} satisfies -$-2\leq d \leq$\ccVar.\ccc{maximal_dimension()}. } - -\ccMethod{bool empty() const;} { Returns \ccc{true} if thetriangulation -contains nothing. Returns \ccc{false} otherwise. } - -\ccMethod{size_type number_of_vertices() const;} -{Returns the number of vertices in the triangulation.} - -\ccMethod{size_type number_of_full_cells() const;} -{Returns the number of full cells in the triangulation.} - -\ccMethod{bool is_vertex(const Vertex_handle & v) const;} -{Tests whether \ccc{v} is a vertex of the triangulation. } - -\ccMethod{bool is_full_cell(const Full_cell_handle & c) const;} -{Tests whether \ccc{c} is a full cell of the triangulation.} - -\ccMethod{template< typename TraversalPredicate, typename OutputIterator > -void full_cells(Full_cell_handle c, TraversalPredicate & tp, -OutputIterator & out) const;} -{This function computes (\emph{gathers}) a connected set of full cells -satifying a common criterion. Call them \emph{good} full cells. It is assumed -that the argument \ccc{c} is a good full cell. The full cells are then -recursively explored by examining if, from a given good full cell, its adjacent -full cells are also good.\\ -The argument \ccc{tp} is a predicate that takes as argument a \ccc{Facet} -whose defining \ccc{Full_cell} is good. The predicate must return \ccc{true} -if the traversal of that \ccc{Facet} leads to a good full cell.\\ -All the good full cells are output into the last argument \ccc{out}. -\ccPrecond \ccc{c!=Full_cell_handle()} and \ccc{tp(c)==true}. -} - -\ccMethod{template< typename OutputIterator > OutputIterator -incident_full_cells(Vertex_handle v, OutputIterator out) const;} -{Insert in \ccc{out} all the full cells that are incident to the vertex -\ccc{v}, {i.e.}, the full cells that have the \ccc{Vertex v} as a vertex. -Returns the output iterator. -\ccPrecond \ccc{v!=Vertex_handle()}. -} - -\ccMethod{template< typename OutputIterator > OutputIterator -incident_full_cells(const Face & f, OutputIterator out) const;} -{Insert in \ccc{out} all the full cells that are incident to the face \ccc{f}, -{i.e.}, the full cells that have the \ccc{Face f} as a subface. -Returns the output iterator. -\ccPrecond\ccc{f.full_cell()!=Full_cell_handle()}. -} - -\ccMethod{template< typename OutputIterator > OutputIterator -star(const Face & f, OutputIterator out) const;} -{Insert in \ccc{out} all the full cells that share at least one vertex with the \ccc{Face -f}. Returns the output iterator. -%\ccPrecond\ccc{f.full_cell()!=Full_cell_handle()}. -} - -\ccMethod{template< typename OutputIterator > OutputIterator - incident_faces(Vertex_handle v, const int d, OutputIterator - out);}{Constructs all the \ccc{Face}s of dimension \ccc{d} incident to - \ccc{Vertex} v and inserts them in the \ccc{OutputIterator out}. If \ccc{d - >=} \ccVar.\ccc{current_dimension()}, then no \ccc{Face} is - constructed. -\ccPrecond\ccc{0 < d} and \ccc{v!=Vertex_handle()}. -} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Since unused from the moment and usage is not clear, I remove it -% for the moment. -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% \ccMethod{template< typename OutputIterator > OutputIterator -% incident_upper_faces(Vertex_handle v, const int d, OutputIterator -% out);}{Constructs all the {\em upper} \ccc{Face}s of dimension \ccc{d} -% incident to \ccc{Vertex} v and inserts them in the \ccc{OutputIterator out}.\\ -% Assuming some total ordering on the vertices of the complex (which is -% invariant as long as no vertex is inserted in or removed from the complex), a -% \ccc{Face} incident to \ccc{v} is an {\em upper} \ccc{Face} if and only if -% its vertices occur at \ccc{v} or beyond \ccc{v} in the ordering.\\ In -% particular, taking the disjoint union of the upper \ccc{Face}s of dimension -% \ccc{d} incident to every vertex of the complex yields exactly the set of -% faces of dimension \ccc{d} of the complex.\\ The constructed \ccc{Faces} are -% lexicographically ordered (using the vertex order as base -% ordering). If -% $d\geq$\ccVar.\ccc{current_dimension()}, then no \ccc{Face} is -% constructed. -% \ccPrecond\ccc{0 < d} and \ccc{v!=Vertex_handle()}. -% } - -% \ccGlue\ccMethod{template< typename OutputIterator, typename Comparator > -% OutputIterator incident_upper_faces(Vertex_handle v, const int d, -% OutputIterator out, Comparator cmp);} {Same as above, but uses \ccc{cmp} as -% the vertex ordering to define the upper faces.} - -\ccHeading{Accessing the vertices} % --------------------- ACCESS TO VERTICES -\ccThree{Vertex_iterator}{tds.number_of_full_cells() const}{} - -\ccMethod{Vertex_handle vertex(Full_cell_handle c, const int i) const;}%{} -{ Returns a handle to the \ccc{i}-th \ccc{Vertex} of the \ccc{Full_cell} \ccc{c}. -\ccPrecond $0\leq i\leq$\ccVar.\ccc{current_dimension()} and \ccc{c!=Full_cell_handle()}.} - -\ccMethod{int mirror_index(Full_cell_handle c, int i) const;}%{} -{Returns the index of the vertex mirror of the \ccc{i}-th vertex of \ccc{c}. -Equivalently, returns the index of \ccc{c} as a neighbor of its \ccc{i}-th neighbor. -\ccPrecond $0\leq i\leq$\ccVar.\ccc{current_dimension}()\\ -and \ccc{c!=Full_cell_handle()}. } - -\ccMethod{Vertex_handle mirror_vertex(Full_cell_handle c, int i) const;}%{} -{Returns the vertex mirror of the \ccc{i}-th vertex of \ccc{c}. -Equivalently, returns the vertex of the \ccc{i}-th neighbor of \ccc{c} -that is not vertex of \ccc{c}. -\ccPrecond $0\leq i\leq$\ccVar.\ccc{current_dimension}()\\ -and \ccc{c!=Full_cell_handle()}. } - - -\ccMethod{Vertex_iterator vertices_begin();} -{ -The first vertex of \ccVar. User has no control on the order. -} -\ccGlue -\ccMethod{Vertex_iterator vertices_end();} -{ -The beyond vertex of \ccVar. -} - -\ccHeading{Accessing the full cells} % ------------------- ACCESS TO CELLS -\ccThree{Full_cell_iterator}{tds.number_of_full_cells() const}{} - -\ccMethod{Full_cell_handle full_cell(Vertex_handle v) const;}%{} -{Returns a full cell incident to \ccc{Vertex} \ccc{v}. Note that this - full cell is -not unique (\ccc{v} is typically incident to more than one full cell). -\ccPrecond\ccc{v} is not the default constructed \ccc{Vertex_handle}} - -\ccMethod{Full_cell_handle neighbor(Full_cell_handle c, int i) const;}%{} -{ Returns a \ccc{Full_cell_handle} pointing to the \ccc{Full_cell} -opposite to the \ccc{i}-th vertex of \ccc{c}. -\ccPrecond$0\leq i \leq$\ccVar.\ccc{current_dimension()}\\ -and \ccc{c} is not the default constructed \ccc{Full_cell_handle}} - -\ccMethod{Full_cell_iterator full_cells_begin();} -{ -The first full cell of \ccVar. User has no control on the order. -} -\ccGlue -\ccMethod{Full_cell_iterator full_cells_end();} -{ -The beyond full cell of \ccVar. -} - -\ccHeading{Faces and Facets} % - - - - - - - - - - - - - - - - - - - - FACETS - -\ccMethod{Facet_iterator facets_begin();} -{Iterator to the first facet of the triangulation.} -\ccGlue -\ccMethod{Facet_iterator facets_end();} -{Iterator to the beyond facet of the triangulation.} - -\ccMethod{Full_cell_handle full_cell(const Facet & f) const;} -{Returns a full cell containing the facet \ccc{f}} - -\ccMethod{int index_of_covertex(const Facet & f) const;} -{Returns the index of vertex of the full cell \ccc{c=}\ccVar.\ccc{full_cell(f)} -which does {not} belong to \ccc{c}.} - -%\begin{ccAdvanced} -% -%\ccMethod{bool is_boundary_facet(const Facet & f) const;} -%{When a subset of the full cells has their \ccc{flags} set to \ccc{1}, this -%function returns \ccc{true} when the \ccc{Facet f} is part of the boundary of -%that subset, and \ccc{false} otherwise. -%\note{OD: bof, ces trucs de flags sont publics ? si oui ils faut qu'ils -% soient robustes et documente partout} -%\note{SH: Oui, a mon avis, il faut virer cette fonction de la doc.} -%} -% -%\end{ccAdvanced} - - -\ccHeading{Vertex insertion} % - - - - - - - - - - - - - - - - - - INSERTIONS - -\ccMethod{Vertex_handle insert_in_full_cell(Full_cell_handle c);} -{Inserts a new -vertex \ccc{v} in the full cell \ccc{c} and returns a handle to -it. The full cell -\ccc{c} is subdivided into \ccVar.\ccc{current_dimension()}+1 full cells which -share the vertex \ccc{v} (see Figure~\ref{triangulation:fig:insert-full-cell}). -\ccPrecond Current dimension is positive and \ccc{c} is a full cell of -\ccVar.} - -\begin{figure}[ht] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation_ref/fig/insert-in-cell.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
-The effect of insert_in_full_cell() -
-\end{ccHtmlOnly} -\caption{Insertion in a full cell, $\cd=2$\label{triangulation:fig:insert-full-cell}} -\end{figure} - -\ccMethod{Vertex_handle insert_in_face(const Face & f);} -{Inserts a vertex in the triangulation data structure by subdividing the -\ccc{Face f}. Returns a handle to the newly created \ccc{Vertex} (see -Figure below~\ref{triangulation:fig:insert-face}).} - -\begin{figure}[ht] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation_ref/fig/insert-in-face.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
-The effect of insert_in_face() -
-\end{ccHtmlOnly} -\caption{Insertion in face, $\cd=3$\label{triangulation:fig:insert-face}} -\end{figure} - -\ccMethod{Vertex_handle insert_in_facet(const Facet & ft);} -{Inserts a vertex in the triangulation data structure by subdividing the -\ccc{Facet ft}. Returns a handle to the newly created \ccc{Vertex}.} - - - -\ccMethod{template< class ForwardIterator > Vertex_handle -insert_in_hole(ForwardIterator start, ForwardIterator end, Facet f);}{The -full cells in the range $C=$\ccc{[start, end)} are removed, thus -forming a hole $H$. -A \ccc{Vertex} is inserted and connected to the boundary of the hole in order -to ``fill it''. A \ccc{Vertex_handle} to the new \ccc{Vertex} is returned -(see Figure~\ref{triangulation:fig:insert-hole}). -\ccPrecond -\ccc{c} belongs to $C$ and \ccc{c->neighbor(i)} -does not, with \ccc{f=(c,i)}. -$H$ the union of full cells in $C$ is simply connected and its -boundary $\partial H$ is a -combinatorial triangulation of the sphere $\sphere^{d-1}$. -All vertices of the triangulation are on $\partial H$. -} -\ccGlue -\ccMethod{template< class ForwardIterator, class OutputIterator > -Vertex_handle insert_in_hole(ForwardIterator start, ForwardIterator end, Facet -f, OutputIterator out);}{Same as above, but handles to the new full cells are -appended to the \ccc{out} output iterator.} - -\begin{figure}[ht] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation_ref/fig/insert-in-hole.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
-The effect of insert_in_hole() -
-\end{ccHtmlOnly} -\caption{Insertion in a hole, $\cd=2$\label{triangulation:fig:insert-hole}} -\end{figure} - -\ccMethod{Vertex_handle insert_increase_dimension(Vertex_handle star);} -{Transforms a triangulation of the sphere $\sphere^d$ into the -triangulation of the sphere $\sphere^{d+1}$ by adding a new vertex -\ccc{v}. -\ccc{v} is used to triangulate one of the two half-spheres of -$\sphere^{d+1}$ ($v$ is added as $(d+2)^{th}$ vertex to all -full cells) -and \ccc{star} is used to triangulate the other half-sphere -(all full cells that do not already have star as vertex are duplicated, -and \ccc{star} replaces \ccc{v} in these full cells). -The indexing of the vertices in the -full cell is such that, if \ccc{f} was a full cell of maximal dimension in the -initial complex, then \ccc{(f,v)}, in this order, is the corresponding full cell -in the updated triangulation. A handle to \ccc{v} is returned -(see Figure~\ref{triangulation:fig:insert-increase-dim}). -\ccPrecond\ccVar. -If the current dimension is -2 (empty triangulation), then \ccc{star} -has to be omitted, otherwise -the current dimension must be strictly less than the maximal dimension -and \ccc{star} must be a vertex of \ccVar.} - -\begin{figure}[ht] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation_ref/fig/insert-increase-dim.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
-The effect of insert_increase_dimension() -
-\end{ccHtmlOnly} -\caption{Insertion, increasing the dimension from $\cd=1$ to $\cd=2$\label{triangulation:fig:insert-increase-dim}} -\end{figure} - -\begin{ccAdvanced} - - -\ccMethod{Full_cell_handle new_full_cell();} {Adds a new full cell to \ccVar\ and -returns a handle to it. The new full cell has no vertex and no neighbor yet.} - -\ccMethod{Vertex_handle new_vertex();} -{Adds a new vertex to \ccVar\ and returns a handle to it. The new vertex has -no associated full cell nor index yet.} - -\ccMethod{void associate_vertex_with_full_cell(Full_cell_handle c, int i, -Vertex_handle v);} -{Sets the \ccc{i}-th vertex of \ccc{c} to \ccc{v} and, if \ccc{v} is non-NULL, -sets \ccc{c} as the incident full cell of \ccc{v}.} - -\ccMethod{void set_neighbors(Full_cell_handle ci, int i, Full_cell_handle cj, int -j);} -{Sets the neighbor opposite to vertex \ccc{i} of \ccc{Full_cell} \ccc{ci} to -\ccc{cj}. Sets the neighbor opposite to vertex \ccc{j} of \ccc{Full_cell} -\ccc{cj} to \ccc{ci}.} - -\ccMethod{void set_current_dimension(int d);} { Forces the current dimension -of the complex to \ccc{d}. -\ccPrecond $-1\leq d\leq$\ccc{maximal_dimension()}.} - -\end{ccAdvanced} - -\ccHeading{Vertex removal} % - - - - - - - - - - - - - - - - - - - - REMOVALS - -\ccMethod{void clear();} -{Reinitializes \ccVar\ to the empty complex.} - -\ccMethod{Vertex_handle collapse_face(const Face & f);} {Contracts the -\ccc{Face f} to a single vertex. Returns a handle to that vertex -(see Figure~\ref{triangulation:fig:collapse-face}). -\ccPrecond -The boundary of the full cells incident to \ccc{f} -is a topological sphere of dimension -\ccVar.\ccc{current_dimension()}-1). -} - -\begin{figure}[ht] -\begin{ccTexOnly} -\begin{center} -\includegraphics{Triangulation_ref/fig/collapse-face.pdf} -\end{center} -\end{ccTexOnly} -\begin{ccHtmlOnly} -
-The effect of collapse_face() -
-\end{ccHtmlOnly} -\caption{Collapsing an edge in dimension $\cd=3$, \ccc{v} is returned\label{triangulation:fig:collapse-face}} -\end{figure} - -\ccMethod{void remove_decrease_dimension(Vertex_handle v, Vertex_handle -star);} {This method does exactly the opposite of -\ccc{insert_increase_dimension()}: -\ccc{v} is removed, -full cells not containing \ccc{star} are removed -full cells containing \ccc{star} but not \ccc{v} loose vertex \ccc{star} -full cells containing \ccc{star} and \ccc{v} loose vertex \ccc{v} -(see Figure~\ref{triangulation:fig:insert-increase-dim}). -\ccPrecond -All cells contains either \ccc{star} or \ccc{v}. -Edge \ccc{star-v} exists in the triangulation -and \ccc{current_dimension()!=2}. -} - -\begin{ccAdvanced} - -\ccMethod{void delete_vertex(Vertex_handle v);} -{Remove the vertex \ccc{v} from the triangulation. -%This does not take care of -%erasing the references to \ccc{v} in other parts of the triangulation. -} - -\ccMethod{void delete_full_cell(Full_cell_handle c);} -{Remove the full cell \ccc{c} from the triangulation. -%This does not take care of -%erasing the references to \ccc{c} in other parts of the triangulation. -} - -\ccMethod{template< typename ForwardIterator > void - delete_full_cells(ForwardIterator start, ForwardIterator end);} -{Remove the full cells in the range \ccc{[start,end)} from the triangulation. -%This does not take care of erasing the references to these full cells in other parts of -%the triangulation. -} - -\end{ccAdvanced} - - - -\begin{ccDebug} -\ccHeading{Validity check} % - - - - - - - - - - - - - - - - - - - - VALIDITY - -\ccMethod{bool is_valid(bool verbose=false) const;}{% -Partially checks whether \ccVar\ is indeed a triangulation. - -It must \emph{at least}\begin{itemize} -\item check the validity of the vertices and full cells of \ccVar\ by calling -their respective \ccc{is_valid} method. -\item check that each full cell has no duplicate vertices and has as many -neighbors as its number of facets (\ccc{current_dimension()+1}). -\item check that each full cell share exactly \ccVar.\ccc{current_dimension()} -vertices with each of its neighbor. -\end{itemize} - -Returns \ccc{true} if all the tests pass, \ccc{false} if any test fails. See -the documentation for the models of this concept to see the additionnal (if -any) validity checks that they implement.% -} - -\end{ccDebug} - - -\ccHeading{Input/Output} % ---------------------------- I/O - -\ccFunction{istream & operator>>(istream & is, TriangulationDataStructure & -tds);} -{Reads a combinatorial triangulation from \ccc{is} and assigns it to -\ccc{tds}. \ccPrecond The dimension of the input complex must be less than or -equal to \ccVar.\ccc{maximal_dimension()}.} - -\ccFunction{ostream & operator<<(ostream & os, const TriangulationDataStructure -& tds);} -{Writes \ccc{tds} into the output stream \ccc{os}} - -The information stored in the \ccc{iostream} is: -\\- the current dimension (which must be \ccc{<=}\ccVar.\ccc{maximal_dimension()}), -\\- the number of vertices, -\\- for each vertex the information of that vertex, -\\- the number of full cells, -\\- for each full cell the indices of its vertices and extra information for that full cell, -\\- for each full cell the indices of its neighbors. - -The indices of vertices and full cells correspond to the order in the -file, the user cannot control it. -The classes \ccc{Vertex} and -\ccc{Full_cell} have to provide the relevant I/O operators -(possibly empty). - - -\ccSeeAlso - -\ccc{TriangulationDSVertex}\\ -\ccc{TriangulationDSFullCell}\\ -\ccc{TriangulationDSFace}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationFullCell.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationFullCell.tex deleted file mode 100644 index d11e5d56740..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationFullCell.tex +++ /dev/null @@ -1,67 +0,0 @@ -\begin{ccRefConcept}{TriangulationFullCell} - -\ccDefinition - -The concept \ccRefName\ describes the requirements on the type used by the -class \ccc{Triangulation}, and its derived classes, to -represent a full cell. - -\ccRefines - -\ccc{TriangulationDSFullCell} - -We only list below the additional specific requirements of \ccRefName. - -%Compared to \ccc{TriangulationDSFullCell}, the main difference is the addition of -%methods to access and iterate over the position of the full cell's vertices. -% as well as a method for constructing the center of the full cell's circumsphere. - -\ccHasModels - -\ccc{CGAL::Triangulation_full_cell} - -%\ccTypes - -%\ccNestedType{Point}% -%{The type of the point stored in the full cell's vertices. It must be the same -%as the point type \ccc{TriangulationTraits::Point} (or its refined concepts) -%defined by the geometric traits of the \ccc{Triangulation} -%class.} - -%\ccNestedType{Point_const_iterator}{An iterator over the points of the -%full cell.} - -\ccCreationVariable{c} - -%\ccOperations -%These operators can be used directly and are called by the I/O -%operator of class \ccc{Triangulation}. - -%\ccMethod{Point_const_iterator points_begin() const;} -%{Returns an iterator pointing to the first point of the full cell.} -%\ccGlue -%\ccMethod{Point_const_iterator points_end() const;} -%{Returns an iterator pointing beyond the last point of the full cell.} - -\ccHeading{Input/Output} - -These operators can be used directly and are called by the I/O -operator of class \ccc{Triangulation}. - -\ccFunction{istream & operator>>(istream & is, TriangulationFullCell & c);}% -{Inputs additional information stored in the full cell.} - -\ccFunction{ostream & operator<<(ostream & os, const TriangulationFullCell & c);}% -{Outputs additional information stored in the full cell.} - - -%\ccMethod{Point circumcenter() const;}{Returns the center of the sphere -%circumscribing the full cell.} - -\ccSeeAlso - -\ccc{Triangulation_full_cell}\\ -\ccc{TriangulationVertex}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationTraits.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationTraits.tex deleted file mode 100644 index 7e09a4afeab..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationTraits.tex +++ /dev/null @@ -1,180 +0,0 @@ -\begin{ccRefConcept}{TriangulationTraits} - -\ccDefinition - -The concept \ccRefName\ describes the various types and functions that a class -must provide as the first parameter (\ccc{TriangulationTraits}) to the class template -\ccc{Triangulation}. It brings the geometric ingredient to the -definition of a triangulation, while the combinatorial ingredient is brought by -the second template parameter, \ccc{TriangulationDataStructure}. - -Inserting a range of points in a triangulation is optimized using -spatial sorting, thus besides the requirements below, -a class provided as \ccc{TriangulationTraits} should also satisfy the concept -\ccc{SpatialSortingTraits_d}. - -\ccRefines -\ccc{SpatialSortingTraits_d} - -{If a range of points is inserted, the - traits must refine \ccc{SpatialSortingTraits_d}, This is not needed - if the points are inserted one by one.} - -\ccTypes - -\ccTwo{TriangulationTraits ::Compare_lexicographically_d}{} - -\ccNestedType{Dimension}% -{A type representing the dimension of the underlying space. it can be static -(\ccc{Maximal_dimension}=\ccGlobalScope\ccc{Dimension_tag}) or -dynamic (\ccc{Maximal_dimension}=\ccGlobalScope\ccc{Dynamic_dimension_tag}). -This dimension must match the dimension of the predicate -\ccc{Orientation_d} but not necessarily the one of \ccc{Point_d}. -} - -\ccNestedType{Point_d}% -{A type representing a point in Euclidean space.} - - -\ccNestedType{Point_dimension_d}% - {Functor returning the dimension of a \ccc{Point_d}. - Must provide - \ccc{int operator()(Point_d p)} returning the dimension of $p$. - } - -\ccNestedType{Orientation_d}{A predicate object that must provide the -templated operator\\\ccc{template Orientation -operator()(ForwardIterator start, ForwardIterator end)}.\\The operator returns -\ccc{CGAL::POSITIVE}, \ccc{CGAL::NEGATIVE} or \ccc{CGAL::COPLANAR} depending on -the orientation of the simplex defined by the points in the range \ccc{[start, -end)}. - \ccPrecond \ccc{std::distance(start,end)=D+1}, where -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in \ccc{[start,end)}. -} - -\ccNestedType{Contained_in_affine_hull_d}{A predicate object that must provide -the templated operator\\\ccc{template bool -operator()(ForwardIterator start, ForwardIterator end, const Point_d & -p)}.\\The operator returns \ccc{true} if and only if point \ccc{p} is -contained in the affine space spanned by the points in the range \ccc{[start, -end)}. That affine space is also called the {\em affine hull} of the points -in the range. -\ccPrecond The $k$ points in the range -must be affinely independent. -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in -\ccc{[start,end)}, for some $D$. -$2\leq k\leq D$. -} - - -In the $D$-dimensional oriented space, a $k-1$ dimensional subspace (flat) -define by $k$ points can be oriented in two different ways. -Choosing the orientation of any simplex defined by $k$ points fix the -orientation of all other simplices. To be able to orient lower -dimensional flats, we use the following classes: - - -\ccNestedType{Flat_orientation_d}{ - A type representing an orientation of an affine subspace of - dimension $k$ strictly smaller than the maximal dimension. -} - - -\ccNestedType{Construct_flat_orientation_d}{ - A construction object that must -provide the templated operator\\\ccc{template Flat_orientation_d -operator()(ForwardIterator start, ForwardIterator end)}.\\ -The flat spanned by the points in -the range \ccc{R=[start, end)} can be oriented in two different ways, -the operator -returns an object that allow to orient that flat so that \ccc{R=[start, end)} -defines a positive simplex. - \ccPrecond The $k$ points in the range -must be affinely independent. -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in \ccc{R} for -some $D$. -$2\leq k\leq D$. -} - - -\ccNestedType{In_flat_orientation_d}{ -A predicate object that must provide the -templated operator\\\ccc{template Orientation -operator()(Flat_orientation_d orient,ForwardIterator start, -ForwardIterator end)}.\\ -The operator returns -\ccc{CGAL::POSITIVE}, \ccc{CGAL::NEGATIVE} or \ccc{CGAL::COPLANAR} depending on -the orientation of the simplex defined by the points in the range \ccc{[start, -end)}. -The points are supposed to belong to the lower dimensional flat - whose orientation is given by \ccc{orient}. -\ccPrecond \ccc{std::distance(start,end)=k} where $k$ is the number of -points -used to construct \ccc{orient}. -\ccc{Point_dimension_d(*it)} is $D$ for all \ccc{it} in -\ccc{[start,end)} where $D$ is the dimension of the points used to -construct \ccc{orient}. -$2\leq k\leq D$. -} - - - - -\ccNestedType{Compare_lexicographically_d}{A predicate object that must -provide the operator\\\ccc{Comparison_result operator()(const Point_d & p, -const Point_d & q)}.\\The operator returns \ccc{SMALLER} if \ccc{p} is -lexicographically smaller than point \ccc{q}, \ccc{EQUAL} if both points are -the same and \ccc{LARGER} otherwise.} - -%%%%%%% currently unused in the code -% \ccNestedType{Affinely_independent_d}{A predicate object that must provide the -% templated operator\\\ccc{template bool -% operator()(ForwardIterator start, ForwardIterator end)}.\\The operator returns -% \ccc{true} if and only if the dimension of the affine hull of the points in -% the range \ccc{R=[start, end)} is one less than the number of points in -% \ccc{R}.} - -\ccCreation -\ccCreationVariable{traits} - -\ccConstructor{TriangulationTraits();}{The default constructor.} - -\ccOperations -\ccThree{Construct_flat_orientation_d}{construct_flat_orientation_d_object() const}{} - -The following methods permit access to the traits class's predicates: - -\ccMethod{Orientation_d orientation_d_object() const;}% -{} -\ccGlue -\ccMethod{Contained_in_affine_hull_d contained_in_affine_hull_d_object() -const;}% -{} -\ccGlue -\ccMethod{Construct_flat_orientation_d construct_flat_orientation_d_object() const;}% -{} -\ccGlue -\ccMethod{In_flat_orientation_d in_flat_orientation_d_object() const;}% -{} -\ccGlue -\ccMethod{Compare_lexicographically_d compare_lexicographically_d_object() -const;}% -{} -%\ccGlue -%\ccMethod{ Affinely_independent_d affinely_independent_d_object() const;}% -%{} - -\ccHasModels - -\ccc{CGAL::Cartesian_d},\\ -%\ccc{Simple_cartesian_d},\\ -\ccc{CGAL::????} (recommended). -\note{The new kernel is currently under developement} - -\ccSeeAlso - -\ccc{DelaunayTriangulationTraits} -\ccc{Triangulation} - - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/TriangulationVertex.tex b/Triangulation/doc_tex/Triangulation_ref/TriangulationVertex.tex deleted file mode 100644 index f941ae8fd7b..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/TriangulationVertex.tex +++ /dev/null @@ -1,70 +0,0 @@ -\begin{ccRefConcept}{TriangulationVertex} - -\ccDefinition - -The concept \ccRefName\ describes the requirements on the type used by the -class \ccc{Triangulation}, and its derived classes, to -represent a vertex. - -\ccRefines - -\ccc{TriangulationDSVertex} - -We only list below the additional specific requirements of \ccRefName. - -Compared to \ccc{TriangulationDSVertex}, the main difference is the addition of -an association of the vertex into a geometric point. - -\ccHasModels - -\ccc{CGAL::Triangulation_vertex} - -\ccTypes -\ccThree{TriangulationVertex}{v(Full_cell_handle c, const Point & p);}{} -\ccThreeToTwo - -\ccNestedType{Point}{The type of the point stored in the vertex. It must be -the same as the point type \ccc{TriangulationTraits::Point} (or its refined -concepts) when the \ccc{TriangulationVertex} is used in the class -\ccc{Triangulation} (or its derived classes).} - -\ccCreation -\ccCreationVariable{v} - -\ccConstructor{TriangulationVertex(Full_cell_handle c, const Point & p);}% -{Constructs a vertex with incident full cell \ccc{c}. The vertex is embedded at point \ccc{p}.} - -\ccGlue\ccConstructor{TriangulationVertex(const Point & p);}% -{Same as above, but without incident full cell.}%{ (Who would have guessed?)} - -\ccGlue\ccConstructor{TriangulationVertex();}% -{Same as above, but with a default-constructed \ccc{Point}.} - -\ccOperations - -\ccMethod{void set_point(const Point & p);}% -{The parameter \ccc{p} becomes the new geometrical position of the vertex.} - -\ccMethod{const Point & point() const;}% -{Returns the vertex's position.} - -\ccHeading{Input/Output} - -These operators can be used directly and are called by the I/O -operator of class \ccc{Triangulation}. - -\ccFunction{istream & operator>>(istream & is, TriangulationVertex & v);}% -{Inputs the non-combinatorial information given by the vertex, {i.e.}, -the point and other possible information.} - -\ccFunction{ostream & operator<<(ostream & os, const TriangulationVertex & v);}% -{Outputs the non-combinatorial information given by the vertex, {i.e.}, -the point and other possible information.} - -\ccSeeAlso - -\ccc{Triangulation_vertex}\\ -\ccc{TriangulationFullCell}\\ -\ccc{Triangulation} - -\end{ccRefConcept} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_data_structure.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_data_structure.tex deleted file mode 100644 index a8a2bcebec1..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_data_structure.tex +++ /dev/null @@ -1,98 +0,0 @@ -\begin{ccRefClass}{Triangulation_data_structure} - -\ccDefinition -This class is used for storing the combinatorial information of a triangulation -of dimension $k\leq d$. - -\ccInclude{CGAL/Triangulation_data_structure.h} - -\ccParameters - -\ccc{Dimensionality} can be either \begin{itemize} - -\item \ccPureGlobalScope\ccc{Dimension_tag} for some integer \ccc{d}. This -indicates that the triangulation data structure can store simplices (full cells) of dimension at most -\ccc{d}. The maximum dimension \ccc{d} is known by the compiler, which -triggers some optimizations. Or - -\item \ccPureGlobalScope\ccc{Dynamic_dimension_tag}. In this case, the maximum -dimension of the simplices (full cells) is passed as an integer argument to an instance -constructor (see \ccc{TriangulationDataStructure}).\end{itemize} - -\ccc{TriangulationDSVertex} is the class to be used as the base \ccc{Vertex} type in the -triangulation data structure. It must be a model of the concept -\ccc{TriangulationDSVertex}. The class template \ccRefName\ can be -defined by specifying - only the first parameter. It also accepts the tag \ccc{CGAL::Default} as -second parameter. In both cases, \ccc{TriangulationDSVertex} defaults to -\ccc{CGAL::Triangulation_ds_vertex<>}. - - -\ccc{TriangulationDSFullCell} is the class to be used as the base \ccc{Full_cell} type in -the triangulation data structure. It must be a model of the concept -\ccc{TriangulationDSFullCell}. The class template \ccRefName\ accepts that no -third parameter be specified. It also accepts the tag \ccc{CGAL::Default} as -third parameter. In both cases, \ccc{TriangulationDSFullCell} defaults to -\ccc{CGAL::Triangulation_ds_full_cell<>}. - -\ccIsModel - -\ccc{TriangulationDataStructure}. - -In addition, the class \ccRefName\ provides the following types and methods: - -\ccCreation -\ccCreationVariable{t} - -\ccConstructor{XXXXXXX(const Triangulation_data_structure & t2);} -{The copy constructor. Creates a copy of the \ccRefName\ \ccc{t2} passed as - argument. All vertices and full cells are duplicated.} - -\begin{ccDebug} -\ccHeading{Validity check} % - - - - - - - - - - - - - - - - - - - - VALIDITY - -The \ccc{is_valid} method is only minimally defined in the -\ccc{TriangulationDataStructure} concept, so that we document it more precisely -here, for the model \ccRefName: - -\ccMethod{bool is_valid(bool verbose = true) const;}{% -Implements the validity checks required by the concept -\ccc{TriangulationDataStructure}.% - -Note that passing all these tests does not guaranty that we have a -triangulation (abstract pure simplicial complex).% -} - -\end{ccDebug} - -\begin{ccAdvanced} - -\ccTypes - -\ccNestedType{Full_cell_data} -{A data member of type \ccc{Full_cell_data} is stored in every full cell (models -of the concept \ccc{TriangulationDSFullCell}). It is used to mark -some -full cells, during modifications of the triangulation data structure.} - -\ccHeading{Vertex insertion} % - - - - - - - - - - - - - - - - - - INSERTIONS - -\ccMethod{template< OutputIterator > Full_cell_handle insert_in_tagged_hole( - Vertex_handle v, Facet f, OutputIterator new_full_cells);} -{A set \ccc{C} of full cells satisfying the same condition as in method -\ccRefName\ccc{::insert_in_hole()} is assumed to be marked. This -method creates new full cells from vertex \ccc{v} to the boundary of \ccc{C}. -The boundary is recognized by checking the mark of the full cells. -This method is used by \ccRefName\ccc{::insert_in_hole()}. -\ccPrecond same as \ccRefName\ccc{::insert_in_hole()} -} - -\end{ccAdvanced} - -\ccSeeAlso - -\ccc{Triangulation_ds_vertex}\\ -\ccc{Triangulation_ds_full_cell}\\ -\ccc{Triangulation} - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_full_cell.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_full_cell.tex deleted file mode 100644 index b600bbd30ac..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_full_cell.tex +++ /dev/null @@ -1,83 +0,0 @@ -\begin{ccRefClass}{Triangulation_ds_full_cell} - -\ccDefinition - -The class \ccRefName\ serves as the default full cell template parameter in the -class \ccc{Triangulation_data_structure}. - -This class does not provide any geometric capabilities but only combinatorial -(adjacency) information. Thus, if the \ccc{Triangulation_data_structure} is -used as a parameter of an (embedded) \ccc{Triangulation}, then its full cell template -parameter has to fulfill additional geometric requirements, i.e. it has to be -a model of the refined concept \ccc{TriangulationFullCell}. - -This class can be used directly or can serve as a base to derive other classes -with some additional attributes tuned for a specific application. - -\ccInclude{CGAL/Triangulation_ds_full_cell.h} - -\ccParameters - -The first template parameter, \ccc{TriangulationDataStructure}, must be a model of the -\ccc{TriangulationDataStructure} concept. -%It defaults to \ccc{void}, which is used to break some dependency cycles. - -The second parameter, \ccc{TDSFullCellStoragePolicy}, indicates whether or not -the full cell should additionally store the mirror indices (the indices - of the mirror vertices). This improves speed a little, but takes -more space: - -The class template \ccRefName\ accepts that no second parameter be specified. -It also accepts the tag \ccc{CGAL::Default} as second parameter. Both cases are -equivalent to setting \ccc{TDSFullCellStoragePolicy} to -\ccc{CGAL::TDS_full_cell_default_storage_policy}. - -When the second parameter is specified, its possible ``values'' -are:\begin{itemize} - -\item \ccc{CGAL::Default}, which is the {default} value. In that case, the -policy \ccc{CGAL::TDS_full_cell_default_storage_policy} is used. - -\item \ccc{CGAL::TDS_full_cell_default_storage_policy}. In that case, the mirror -indices are {not stored}. - -\item \ccc{CGAL::TDS_full_cell_mirror_storage_policy}. In that case, the mirror -indices are stored. -\end{itemize} -See the user manual for how to choose the second option. - -\ccIsModel - -\ccc{TriangulationDSFullCell} - -\ccCreationVariable{c} - -\begin{ccDebug} -\ccHeading{Validity check} - -The \ccc{is_valid} method is only minimally defined in the -\ccc{TriangulationDSFullCell} concept, so that we document it more precisely -here, for the model \ccRefName: - -\ccMethod{bool is_valid(bool verbose=false) const;}{ -Implements the validity checks required by the concept -\ccc{TriangulationDSFullCell}. In addition, it is checked that there is no -\ccc{NULL} handle to vertices in the middle of non-\ccc{NULL} ones, that is, -that the internal memory layout is not corrupted.% -} -\end{ccDebug} - -\begin{ccAdvanced} -\ccHeading{Rebind mechanism} -In case of derivation from that class, the nested class -\ccc{Rebind_TDS} need to be provided in the derived class. -\end{ccAdvanced} - - -\ccSeeAlso - -\ccc{Triangulation_ds_vertex}\\ -\ccc{Triangulation_data_structure>} - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_vertex.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_vertex.tex deleted file mode 100644 index be94f9fe14b..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_ds_vertex.tex +++ /dev/null @@ -1,58 +0,0 @@ -\begin{ccRefClass}{Triangulation_ds_vertex} - -\ccDefinition - -The class \ccRefName\ serves as the default vertex template parameter in the -class \ccc{Triangulation_data_structure}. - -This class does not contain any geometric information but only combinatorial -(adjacency) information. Thus, if the \ccc{Triangulation_data_structure} is -used as a parameter of a (embedded) \ccc{Triangulation}, then its vertex template parameter -has to fulfill additional geometric requirements, {i.e.}, it has to be a -model of the refined concept \ccc{TriangulationVertex}. - -This class can be used directly or can serve as a base to derive other classes -with some additional attributes tuned for a specific application (a color for -example). - -\ccInclude{CGAL/Triangulation_ds_vertex.h} - -\ccParameters - -The template parameter \ccc{TriangulationDataStructure} must be a model of the -\ccc{TriangulationDataStructure} concept. -% It defaults to \ccc{void}, which is used to break some dependency cycles. - -\ccIsModel - -\ccc{TriangulationDSVertex} - -\ccCreationVariable{v} - -\begin{ccDebug} -\ccHeading{Validity check} - -The \ccc{is_valid} method is only minimally defined in the -\ccc{TriangulationDSVertex} concept, so that we document it more precisely -here, for the model \ccRefName: - -\ccMethod{bool is_valid(bool verbose=false) const;}{% -Implements the validity checks required by the concept -\ccc{TriangulationDSVertex}. Does not implement additional checks.% -} -\end{ccDebug} - -\begin{ccAdvanced} -\ccHeading{Rebind mechanism} -In case of derivation from that class, the nested class -\ccc{Rebind_TDS} need to be provided in the derived class. -\end{ccAdvanced} - - - -\ccSeeAlso - -\ccc{Triangulation_ds_full_cell}\\ -\ccc{Triangulation_data_structure>} -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_face.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_face.tex deleted file mode 100644 index 8b52ee48ed2..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_face.tex +++ /dev/null @@ -1,27 +0,0 @@ -\begin{ccRefClass}{Triangulation_face} - -\ccDefinition - -A \ccRefName\ is a model of the concept \ccc{TriangulationDSFace}. - -\ccParameters - -Parameter \ccc{TriangulationDataStructure} must be a model of the concept -\ccc{TriangulationDataStructure}. -Actually, \ccRefName\ needs only that this concept defines the types -\ccc{Full_cell_handle}, -\ccc{Vertex_handle}, and -\ccc{Maximal_dimension}. - -% FUTURE: Do we create a \ccc{ProtoComplex} concept? - -\ccIsModel - -\ccc{TriangulationDSFace} - -\ccSeeAlso - -\ccc{TriangulationDSFace}\\ -\ccc{TriangulationDataStructure} - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex deleted file mode 100644 index 2de0e061c25..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_full_cell.tex +++ /dev/null @@ -1,79 +0,0 @@ -\begin{ccRefClass}{Triangulation_full_cell} - -\ccDefinition - -The class \ccRefName\ is a model of the concept \ccc{TriangulationFullCell}. It -is used by default for representing full cells in the class -\ccc{Triangulation}. - -A \ccRefName\ stores handles to the vertices of the cell as well as handles -to its adjacent cells. - -\ccInclude{CGAL/Triangulation_full_cell.h} - -\ccParameters - -\ccc{TriangulationTraits} must be a model of the concept \ccc{TriangulationTraits}. It -provides geometric types and predicates for use in the -\ccc{Triangulation} class. - -\ccc{Data} is an optional type of data to be stored in the full cell class. The -class template \ccRefName\ accepts that no second parameter be specified. In -this case, \ccc{Data} defaults to \ccc{CGAL::No_full_cell_data}. -\ccc{CGAL::No_full_cell_data} can explicitely be specified to access the third parameter. - -Parameter \ccc{TriangulationDSFullCell} must be a model of the concept -\ccc{TriangulationDSFullCell}. -The class template \ccRefName\ accepts that no third parameter be specified. -It also accepts the tag \ccc{CGAL::Default} as third parameter. In both -cases, \ccc{TriangulationDSFullCell} defaults to \ccc{CGAL::Triangulation_ds_full_cell<>}. - -\ccInheritsFrom - -\ccc{TriangulationDSFullCell} (the third template parameter) - -\ccIsModel - -\ccc{TriangulationFullCell} - -Additionally, the class \ccRefName\ also provides the following type, -constructors and methods: - -\ccTypes - -\ccTypedef{typedef Data Data;}{The type of the additional data stored in the -cell. If you read a \ccRefName\ from a stream (a file) or write a \ccRefName -to a stream, then streaming operators \ccc{<<} and \ccc{>>} must be provided for this -type.} - -\ccCreation -\ccCreationVariable{c} - -\ccConstructor{template< typename T> Triangulation_full_cell(int dmax, const T -& t);}{Sets the maximum possible dimension of the cell to \ccc{dmax}. -The parameter \ccc{t} is passed to the \ccc{Data} constructor.} - -\ccHeading{Data access} - -\ccMethod{const Data & data() const;}{Returns a const reference to the stored data.} -\ccGlue\ccMethod{Data & data();}{Returns a non-const reference to the stored data.} - -\ccHeading{Input/Output} - -\ccFunction{istream & operator>>(istream & is, Triangulation_full_cell & v);}% -{Inputs the non-combinatorial information given by the cell, {i.e.}, -the point and other possible information. The data of type \ccc{Data} is -{also} read.} - -\ccFunction{ostream & operator<<(ostream & os, const Triangulation_full_cell & v);}% -{Outputs the non-combinatorial information given by the cell, {i.e.}, -the point and other possible information. The data of type \ccc{Data} is -{also} written.} - -\ccSeeAlso - -\ccc{Triangulation_vertex}\\ -\ccc{Triangulation_data_structure}\\ -\ccc{Triangulation}\\ -\ccc{Delaunay_triangulation} -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_locate_type.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_locate_type.tex deleted file mode 100644 index 83bbdb1c668..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_locate_type.tex +++ /dev/null @@ -1,18 +0,0 @@ -\ccModifierCrossRefOff -\begin{ccRefEnum}[Triangulation::]{Locate_type} - -\ccDefinition - -The enum \ccRefName\ is defined by the class \ccc{Triangulation} to specify -in what kind of face a point has been located in a triangulation. - -\ccEnum{enum Locate_type {ON_VERTEX, IN_FACE, IN_FACET, IN_FULL_CELL, -OUTSIDE_CONVEX_HULL, OUTSIDE_AFFINE_HULL};} -{} - -\ccSeeAlso - -\ccc{CGAL::Triangulation} - -\end{ccRefEnum} -\ccModifierCrossRefOn diff --git a/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex b/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex deleted file mode 100644 index cf6817552c5..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/Triangulation_vertex.tex +++ /dev/null @@ -1,89 +0,0 @@ -\begin{ccRefClass}{Triangulation_vertex} - -\ccDefinition - -The class \ccRefName\ is a model of the concept \ccc{TriangulationVertex}. It is -used by default for representing vertices in the class -\ccc{Triangulation}. - -A \ccRefName\ stores a point and an incident full cell. - -\ccInclude{CGAL/Triangulation_vertex.h} - -\ccParameters - -\ccc{TriangulationTraits} must be a model of the concept \ccc{TriangulationTraits}. It -provides geometric types and predicates for use in the -\ccc{Triangulation} class. It is of interest here for its -declaration of the \ccc{Point} type. - -\ccc{Data} is an optional type of data to be stored in the vertex class. The -class template \ccRefName\ accepts that no second parameter be specified. In -this case, \ccc{Data} defaults to \ccc{CGAL::No_vertex_data}. -\ccc{CGAL::No_vertex_data} can be explicitely specified to allow to access the -third parameter. - -Parameter -\ccc{TriangulationDSVertex} must be a model of the concept \ccc{TriangulationDSVertex}. The -class template \ccRefName\ accepts that no third parameter be specified. It -also accepts the tag \ccc{CGAL::Default} as third parameter. In both cases, -\ccc{TriangulationDSVertex} defaults to \ccc{CGAL::Triangulation_ds_vertex<>}. - -\ccInheritsFrom - -\ccc{TriangulationDSVertex} (the third template parameter) - -\ccIsModel - -\ccc{TriangulationVertex} - -Additionally, the class \ccRefName\ also provides the following type, -constructors and methods: - -\ccTypes - -\ccTypedef{typedef Data Data;}{The type of the additional data stored in the -vertex. If you read a \ccRefName\ from a stream (a file) or write a \ccRefName -to a stream, then streaming operators \ccc{<<} and \ccc{>>} must be provided for this -type.} - -\ccCreation -\ccCreationVariable{v} - -\ccConstructor{template< typename T> - Triangulation_vertex(Full_cell_handle c, -const Point & p, const T & t);}{Constructs a vertex with incident full cell -\ccc{c}. The vertex is embedded at point \ccc{p} and the parameter \ccc{t} is -passed to the \ccc{Data} constructor.} - -\ccGlue\ccConstructor{template< typename T> Triangulation_vertex(const Point -& p, const T & t);}{Same as above, but without incident full cell.} - -\ccGlue\ccConstructor{Triangulation_vertex();}% -{Same as above, but with default-constructed \ccc{Point} and \ccc{Data}.} - -\ccHeading{Data access} - -\ccMethod{const Data & data() const;}{Returns a const reference to the stored data.} -\ccGlue\ccMethod{Data & data();}{Returns a non-const reference to the stored data.} - -\ccHeading{Input/Output} - -\ccFunction{istream & operator>>(istream & is, Triangulation_vertex & v);}% -{Inputs the non-combinatorial information given by the vertex, {i.e.}, -the point and other possible information. The data of type \ccc{Data} is -{also} read.} - -\ccFunction{ostream & operator<<(ostream & os, const Triangulation_vertex & v);}% -{Outputs the non-combinatorial information given by the vertex, {i.e.}, -the point and other possible information. The data of type \ccc{Data} is -{also} written.} - -\ccSeeAlso - -\ccc{Triangulation_full_cell}\\ -\ccc{Triangulation_data_structure}\\ -\ccc{Triangulation}\\ -\ccc{Delaunay_triangulation} - -\end{ccRefClass} diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/collapse-face.pdf b/Triangulation/doc_tex/Triangulation_ref/fig/collapse-face.pdf deleted file mode 100644 index b4f0d4a53cc4ebb1d7a34750d1c40672c93f5675..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14602 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 diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.pdf b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.pdf deleted file mode 100644 index bd096b6f1cad719175559b902cecee26caac7899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11662 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 Nf&g@MQYzAb{{je9pXmSq diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.png b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-cell.png deleted file mode 100644 index 7365aa0c7d442148ddac0e18975445c1c5d59a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13051 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≺WEXKLOXix(b!AUth$&g~pf*`6m=9b$3Y=_2!?cN>jN2mJ&{}3=F9Fd6~pR zi{0J%8_@wqbB)_pS4H;v&$lGIZ~jD5aE83NkyLd108PQ6*T*N&fuxuZ^t|O**3rL% z`ap7PaL~jHz#~sMIKzaR$r(h0%~jKYTAX7F~iZvTzq1 zA@AZqx(o@uIM9mNxVUyCMI~@H&(C(}0|D==Z{K_aZ_gVMHU$%s zigME5dBD~H(tp=9GO`0!-817Gm(Mm+H799%vn6B4+~{K>B06E~yI`Bd3)nv)9<86; zqv?TG?v`LPn2-bJ7utGyHNazUXUJJ_=*}4t$OAzu=|nwuyM}Y$<*JAGhGeUeMtd^V z`uVCBdpLi}&~U$v4L0Ns)@d6x`J$#e6vzM;tBKz5+-YuUfg9J}4+F4{yMQg()e+6` z)j)q+=#6V1qfCNtnI2%$dDd5VDP}9=nWR-QUzmOC~Krbv`a#I4N&C%7(iHq|b zlg2f=R{$5sI!gA)%o{$9osS1Z09H`Q);^2t|{c@qavc zu%Gr_@J`}Zf&n4$;3_Er5G-6*2hbaifpd}u>I^%!h_?KVA(gY4823)FjHTqUnY%_`;RXf zAfpJcvOV3qbNjZq!s5d!5C+Jna<9`d>h`8)BL&CUkBm(K)+c9=*>0Dk=2NWUX zyG}{Tix)3iuk&$U`u~6F5x}n2NX1qH^d<#}-!7x*Xhco0zu>@yR1< z?w=Fg1YqSy#S0no7JJQq{JOopX~oM^X8@i!0KEbj{dQ32|H9-iH={2_?k?TGZywFa zj})Qv4E2GTnE?q23X+hS;1Il+6F{9E2J4-jmAKERBd1CPsK=ET6cm5{ToX+K+@Iof zot&lR+7{9S;P`xiCsWtn-d>Sz(Qb6unceP7z}00M2@Q&bnvB2zO0AaJ8Jx6*CkP9J zL(pYJC>H(wYyHG!zs=pSJYXZEqLp0b9UZ2*$!EChqI(`Crsjl3Ma)dWdSCXbYBkc>W%kcZgu1 zCzIy(bZv#{Y9DZA*3{HMloz-(@YZw#Sy@@br%HILivH`1n%HP*=l_%XfOSq_ogytU z&JH!!r_Z0Cw2Ys$judjUa^GIl{=3xZ^X!?{L)8SJ3=kLyMn300rFv|i#2j?U-Vzhc zch8I;IqQrwRGsYkb)W8-VREFh5_sB0qi*#K6f7(}{IDa+2t=Q$YHENJTR?roteLry zs!9uz)Sm)`kjK|o-Ye}yXyT1p<9+GU53A7YZX@Og%!@JY?$3&s%$J>tH;|I>QV$^^ zE4`9AqfYhv(=d=!6-`vQogJW~!8UY+L$qlzmk|JcIY6(v?R1py z51+n7);VKSwn%pNZd0N9Pfw=iW7sqb#j$o^q!0xT&+Hu%YQiZdhO%31e-IkFfMO@b z3axV~uqu=!T~eJ#A{}tiv^ckR5FyqzApdF&eU|(3%+v5^i>66_US6jOdcp42txVRZ zz;C(^QXY(9@90k^9M1E^wN(aKk|>0l)p+hLb=4hikR*#u{S$mh8A*8!esDN7*ID+2 z?tvT-{mj_dq0AF~;I&^gS_H7^kB;s$A;oaLx$Z*t@0>aJWW%8u$B(mzhP3wO!js%L zNzd08OPhYge)O8BsrrT#)Tp`sozHRbhIGM54CL*s$6JXhDa0P|)|PhFL`oteak5>~ zyDS`qdj1TL)7uOt@b6-CZdjqL1!}r{&MnN%@62xphnN!pG?^Z94tnG93QK7Y! zKp;-PQdQM+icx&&HiA1F6bJ+Y+qg00@&GM&&$!>5na`--j7O$~&eUam{Og~)(+#8~ z(ez@@li%leYhCKZycdiJgav7XgRqQzE=$NCcIIX=(h>(S+FW^!Y&Iqw=oc<_8AU{9 zhleMkZh5!XdNV1b?*DH>S(Yj;{y-qH&4Le^AEbM>-Hj8mVMWnO!1J@AWaICm=|Ao% z&A&@q)T?}|GiFjHu2bBr*`QZfFV(~ZXV2lJVjvJNs7fVzr~8dQhACW@I=n4G z>~)lUG(E^C0T6U5R#ho?MCD`Qe3tNCGVUK5$*x1{O-+==#@@kVOOKuLJKnWv)3dU& zYM_@PTz2*T7TGlUFwjVQun~N3ur=v1#Hb#r}u1;B*#EjHZNHf0%2WT4=(~@P7Q9iodqPc!! z(Vy~XYpT%BPUx<(4MStfS{iHHU=zLX zotTJ}cqlKej~&2Beil8fvopDwlP|-1Cs&8j@mQL-;lGKwuBd*nt7gpm3YX}a1|6Tb zCkAqtKb+dw*yKtPI#c7Wb4Y}KoypEj`L5%P!j~w9v3LRXf^x03*cygA+XzxI1H)S9 zwxQqbr}HvOiR3@>7Q!9M{WRO4SFvY43U)8%?!$+BOruJ2MfVzgTrW*g2kD<_?B1O1 z>?eo%Ho2|SSY8THXG_TzU`-eIq(X1nvd(_eTri;oB zJHo%Nq_u{I-FkXFw{lMvJZE~ugr7x_Nf zeC;3JOzh*fM;OnZ$*OTNizBjH>Ut6d3jD5%9k*%o)8|+9$wGM?=todSKgEB^T;TOMps~fi_{$8!CPZw3Ca`pRO zP_MwQqJG`v(5GrA)6347X0c>#uiB%9Hs>09C#X<)`LaT^Zm}WTbVVh3BRb&6F-&)A z%Eo=8df7pnDxI|0X_bKS%)GJR`JoR*BA@xLtoH0Ai3eO(+S%DzLt~(9e^sth zr!zOlJ()Lu;{?6;l?$zptstNC`&ard3OV$dHFyT#{3{#Fw@CNMMteGs7;WQHtJk^n zn-?mj&G?NTaNJ241|}whg*kSz&;u5^0en2mK1EY3Df`CyZko+rDZ#PS*#$f4dxTpL ze+W3t6jfGC`7OxKzQY7rY@i^med@rA@BVvpzxqe^_6~?>!kk^Yqv%Ypj%dQLKXxrM zF)d3;g&Z7v!M~8u4e{{AWDIJES`j$XPO7%ixq+f6<~hAS4HJ_ z)j!!yZ`U82hb^oRKOgl6yhms0aTFAU?!|85kSrL5E)W6W;VKU1kCSe|7az^a0|~=h@PqQ5n<+vdP>nC zln`RNjSEzbzP`Vw%dgp>mGC&1J_L#tlbY&aWxnjOIX-vi!A(VH$hgr`P{hMQn9{(w zNsuLb?Qp}Ih9;_rGwL3HbGnAIdP>na5<1_`N338zE54PjqC|L`AA61r9`bl*;p+0d z=^EX!?ss+PT*)`@ss!}HvBLT4sVe#T+(#J3pnddS zUjFtI3sRw?&k}yRs0IUcYp8r+*#;pIhmViV>kPgW?dNyN$g6Dal=%3j+v?DZDqMyy z-R!Qa#F~RI#|fm(!v9S%J-25`ilrTygLq#r^}MmbjFd_Z9J#dfbvzDW+@z!Z!pmEI zcD`t&xNkPoI8t7=el+Ev+!4KBga1CXYwY~E$-<1ZNrw?v%k&j`YZQj?PBSxKkD}|A z_+rL)v;5(l!;#^05mDM%W&iJz^*@ai6%~K}3WT~i|KZ~UcFHr6M9XJ9 zyMkkitR0D_4mP$*W;S}BXKKxUe!}AslbNOc=FBxRpKWrrO%O3R3mX*?66@@XYVuI8 z9y#vA93)#?KI9jnnV}61M|$k^8GoOfP8NBSsQ?0C_>%pM_Ws@igU~xhTZ z&xpF9yn=&-K<4mDw7A?^xyg6Dl|U5P26WAWl19O}_ObhYrWGRWW>6yc2C@CKTvZxw z>pwRMu8kC^Ts-G&d-7VFnEs2;QG_3#fllo9g0wL*E;}<&&+3t8SlH0X23*TW%%jYH zq4m@LswSNxC>#AOHUJHzwP-rz(8x$%8}?TW$Rs1;WxrEz!s}Aw)LO645gW1&xB(yk z{{0d~uOsyKThiB#rj+7*B~*Rw-_j;W+E*X=e+S}BT38IRuuRLXI5geM&EY4c3K&}F z4u_t&5XOA`@apk45azQ#EhpVUz}F_ zzPeP7iOKqFeRb$Y{!pXF&h*baaBfDF_#^ zb5I%O<<6TwoWeIZN8fn9bl37134!K0ySX(ar_lRdi_57IcklnM_s*?*9W8B0yK~CG z^*%I|^mRK0$=+Cr70ifTF54MO^PY%9P3hIq7RPi&8Xf%m2B-mT97|lK41W5$jD3U{O6 zWc0h}G%~ZXj$>vSQA=iTefBS9kZCw6DRsri-xp@(CdFzc;Js;u{r;0b4~0|retXwT z#YRPCjX*dH*k6>#iBNiX$Gv~m@|{gaRw*`i@3Zr32!t%_W){FIF|iwk>@Zr=c(mLR zr86;!kG`ANP7qNi2Wlh*BZY7?^U#^3pOTb}2wWp8tNg3+GTn_)A^Vw#vo3w=2pFs0 z@|>iL)15Q9droo%g~P6n8lqmGYTh@#lJR<(_B{ndk`M865Qb>-75g=?JD30LK0gqc zJp?Mf>pG^tH=~5of8A3v3p~vn9cQQVH$uc)>NuyxVn-uUSTJ@^CDMIA0K?(OJr;H0;K@0BNKec#@po+4(jhI1`WDZ=@*?#DMj zpBDdHAeUjW|WiX9N>IcNpihUxKCD)J9Ob2`MMI-3Ar8xtdeDniUxbYz(Pwy9})S1aX+ z%GWqK1s5#ONP22CMy&m>WDwBx#DjJh!R4GGT2s?Nx0qVgq&2%Ey6aKBD|Q;rg4`QUm#Zs zT>akBsSB1=2>%whC5gGth=hRcc*AQ@unUPGVGw^lHI5~#KrqApC_Y|ze{~~@j>B(# zs9#s=p`L*ORLom9DFMG2L%~g6-k3q$mQwf&@{y6ofZOl8r+@zR(W%O*_F7!NacCqk z#2|C728C<}kK^qD&CDRr@f>*@E1fT~*R1C1bjD>tVIeCewc6Dp$#H`> zwouetYj(nR3Op^>y14A@i)@wIui4ogN1N%jNRI`L=16FB4+SS@H6gU*X)NM+4I+g6qo~ zQ9(+5?DX%kvEgvTG>7qBpZGSd**cx!nUp^R1A{Vn0tj5#O%YKwUf6Bm8xJyy_RjBH z2GD!7n;Q#{Jx_L3)Khrtx_jqAI!{b^n^`afy5+Px_e&-{{U#;?LlYOT9zNsY*9E%0 zvaE77V(aF1_MWKnaAQJWUz+1?n&kS4Q{>@>muiOlO3$YgPj{S-5b0O zkLz<^6G<0?9n0lBJ%4D|}@GRkpRZvG0t>)&)D)^S|R8jqSw?xuw& zB^H{R+~2@PH{AfVj$Zan*XEWOcle%pTFA(pyu*a{C7m9( z;IQ0_ZN$7y*`MlA;a>cmUJ=JKungL3!c7T+XVaXgR({XFvcvU+Tor|wWebWT0C;_5 z`crIR69-@I>`c>O`x&79BEC8}7zC5EU%Qs}(iqR`+_oeFG};j$D+MDTAPzLD@j)I= zRt3=FC_W5<_Lf(do$k*13J!KOGkWi%ev6JPNtDj>k|EJN}6+!9ZZ#H zH}{twexSw*h0<-`bkB~Ggp?;IZ$^7sPa&3ZK^@_por?W*B3cX*qk|)twKq}CwQs!f ztYZsZgsO2(RCaNsTe`o-4|3C!vpp`A(dW;Z1_8=f3iS8aNWzEX% z#^Zj515s77t?%sWihpJMcHytiCBu#%%g87@ok$KD?bEB17(ey660Q+c!(?9+(Sxv` zBwh9%c{n^+M zK)U2E%HhZXk@3RHm8_RoyB~!g~zsGy`@7z6OB?Y1gS6+Wmz zB+tRv0jNj3?n_cqS1--a9~>Hb%)?XbbAEI9)-M;BovVQ;t`MR!A=JikDB zYG`kDQ;C_(ZM6>+`f|M8xe%3w2Hz)aLFsg&yu3MCoZdgDl@GDBveK6*02dJW>X%&* z(GxClwdQolo?jB>=TltflwBi0SdK~8{{M=jRnF$8gPF81Cgerj@86I-IXP=@Z%gj) z3931~RSD(_EG;c5`Ka+8&0y6}pNBEA++ z4uRTv5X`GFkVq!B!V%05A95k;e@v*FVVwpr>NArq9?ya^8({U<=tTWUZ!inhmIFnL ziBe-HYj%frhmxrFaQ>1H&biUE4CI)_7%wfV5)CXYEZ)2ko(aZPm6w-S0fSi1-hD~U z)6)yxU(<;1^OUB$Yc_NpxeH53 z0Er6t{uCAlp24qS1?(Q0N-th0fu6c*C#yNMB&|e5G3Iv>Z zdtMy>)v;Dq_KrHLFkoh3Db}wFQ_kM2?&|6yq7r({_5gF`$8AdT3MACm*Ec041!mXa zeQXcJwLYewY0Rfyv*k8T=4hr^tJY%k!9Z^ z&C@ciCyu2nD=&~p1AF#qp3reCUN{K6_#bK%-6=tK3M2>U6lvJ{|Zb_5ciiXZ2g98FE z7CUU@snFxgI+Z}|X5+^hQ{Lm_qnu=MeGEse^`xp_9fTq~ zM+Y7$DHkO37bl|wTIU_XO)VSv$}xh!>7|N;djTP=^6%ea(;^NM+imFWdbYv>_QC?^ zYX*cMZcs)>ku9j1)Y#9^inw#mRN>-;x4k((vIDt%lker5B6(F#cUeZW*=M zQQQ%}gECqE9Sb~Z?{=AK2eGm7?9tbuK7z~(vD;h`0dXM{C<6bKQJSaNv%}_w(>n~? zuWOA(oMECyIYZ2?c?E?w);0nuHOfJbg6vmUf9dJ#LwVLJEY_Eou;k?Vd3k~I{as&= zq5=9A+EAusCSl%OE{}aO3M^pfS>NlcVF%rB=)6<(%la zJEv%K(Cvd67;Lvv8sBMsFMax9$H!deJz;1>1TQb|Qt_$K%);sZDu-Ul+h&2p#e?jDgb zT7e(cN{foJwDNUag?IKs6YA;!Vhu&tbY8qIC7i7&VlODTwY}Y+DsEQ|p`xM!%hNST z*C;4IE)ir(w?;x^?%b)Ztp#KCz~o8CAeOpzcCeaoFl#zwS#Q5rvFxblB%q_K>w9(( z+GbYmTG^i}alAH&35K(u7ax3!YoD%mepT5!pnTEsm0`Nx>d9+jcx+)|p~FPE`Tk0; zBMlzpmTHnj7C#BzIvhL zo=3wI*EX7#y!E3$$lezNW3e(W1eg$N0Q7^y!(a-}suH2B48}6-jy5NznH>gg!`}!Q&!;3f#r-(bq@IVch1|8P%tu0np|IBA0Dn!kq9RC%+1Zg=P)3O57#Ip zu{^!K4fOT-^(QJ`_lHB_)npo{>xEQn)(Omct pB{1d;fk;lxDc=R3BdNY*(4N%GocsP!_U7XxN^)wlCDJbg{s*o(iz5I4 diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.pdf b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.pdf deleted file mode 100644 index e0feb0d4e113ee5dbf8ad3b6b7243774a4d4a16e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14031 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 diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.png b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-face.png deleted file mode 100644 index 7b6f04ff701d7614679a9572d78ee9a023bce809..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29216 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 Nq;=##o~B*U{{XtZIz0dY diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.pdf b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.pdf deleted file mode 100644 index 49d5c5dfede0022639c947e3885282ab684b7d7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20250 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 diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.png b/Triangulation/doc_tex/Triangulation_ref/fig/insert-in-hole.png deleted file mode 100644 index ff2b99c4d7a40d80c39219d6d97b0c38cbc9167c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65767 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 z�M58y#!031rxMxLpHcAy-7v6-Q%5Oy~TQ1Wvf5kPD$r%LhCb*h;}dIe7z+`2V`e zQ8AeD^jl|fu>`vj&E2=FPghkN{SqR=A|6UQ;vp|JFRdbm{+f1`(OPXSOwKLNbmrv~ zW%u7>ef{Rv-t^i~;T1qefEHWzYHzTswx&UG0#>`u;{fx3G*&sY7c4^{i$ZwKe~5df zvAPt7DQpmz9IdM?rEKuTz(CzVQdbiGtw=?+hNHGC(J4q_3l;((p62M~Xgiyf94Vr7 zb!`}-QMel#{ZzdS8#~cOKfamHeOpE1f)F3S*t~~|tD8d-MM~AsumQwr^&Dk2W{`gRs`MGU5K4lUcu$UWdr+8oeHm|MtxS+(ZprQ7V&TUg|c~~Qo=9KvO>pGv?YGN{6_n2h_ayn6`!`V zc00G6u|@Xf#>&L%i`Dg!D`}YrdwqGg+eNjWJjwm^X&OXjSl^tjUw${>ViSm1|FN4e zFfh1mP38kB?i`*DjAVWpKiF>ASXTN&aJwQSVHX<((5V<3k#%YG<7@E$Ikjm6qprNh z2Rq`U*gVDeM2UREBFn3dzSg^M=Pvc=CMBKv{Q4_8+}XJT3eN9%jv9av|CyRJ$PwUx z6La5XNK~X+e2Tn_#2m$}i*{a+ckn{C4e9g$t0Ql1^bbm#>f3Tdl`5k_`eijJ24SGtV%%OB;ZQpJ;mlOv+Y2P%fv zl#=$jA0|ez{SaYVYJ$rF^$-Mbhv>Yac!O@fzQtj0v1`ir%3C#OdwZwj{Y%)6dA-DzEl3eV# zQPB~Kq2a$DD`a?5jsN=>nEEj__1b1pQHjzH&`Sg^PF-G{HMmv&hPIg_C!ZrXpD{Nm zs}>Nh+pXJZj62@5{#fAAzE7O0XLDRdCT#Z#b3&}R$J6&u_?CkXRlnqHi2gVmnYczo%tbxyl^seAE zAxML8Zn9LFy?x~$-Mk?a;7+#3&d2Vw;6z&5a?9xE9Ad7o`l&O^!BDcHBmT-1{iM`N zqKCt3aKFWGTW0RC=-9#J@$$KM92Gr69i2#>xvv_?5GWuv{N+==pR4rM*edd=?BX*EmJn+w z9M<{yU?Okn34o5u%-EQgojt;@qjm zTmokPmbNy$37TI}n!uHOeFha1`?emyZ8Uu-)bHM@f!`rJEiJd=s5_E8mzA~hq%xIS zgpJhU67jrTRadd7N;=L383Sm!1T&Rv(3!^ zO#ex4RdKJhT5)EbzE|mSIq_IvmXQy3_v)`zFC}kJVb9~hV}W2BjR%@dBAdv|oSX&S-QBkQ1CXetxeRK#1qE}SeycgZ z7_uD;zTn1X}LDLI5%nM*m6udw-dE2A)F-Q z@@?bu)2}V#6hvOeH12j_Nr4Lhsi_kSzY})C35!aejJRTc$725H8y>)Ti*f0DPZ^E&A1Xm|7lyWk zN&LEKC2Hq+Cj;Tym&nk=>an%W#c|3vy87Jz9_<=|tq6D$U@O39v!lCqU4o!J0O}vK zQFXJfYAVu^qsX?0zP{AYp9lV>$ay$uFnHW5^to)Xoa&?9rypgp$qAkl5^M556x`(g zMJIO)5)?8z*xQSB{vs>P2ahww*YfYIAV2;5_z`~h`TKK;!xgNxcl2_0x9=3y|Idw< z+4t{z92{QGFL?SIq$G<>HToelNFoI=bqNNy3@TMH)4lZZo7%eswcU4XclPp1^JK$| zrFRD2I!GK{CdKe$WaKs&mi3jsXeOExtQWk^w?gN7ZG`4^-Q=DLqgV3O)rAIZm{OdL zaUp!d5oXxm-{0WOIbSbT3_ix`X`=`BJ2@jGyO|BO;b0o8^*W4rL^Etq%71PeXfqX* z8MPR75qvgAJ{mgy^BM8;745Z)V+v8#4nkMcqqL~B#Jwd$pL3EeJ0U&mXU|?J{`qls zL_JX(iU;@QuZzeH-_<&i3mPb5`aXM&s%5TMVeJWlm}5 z6lHTW(=M-tVPIQeW4&*Mxkj{;@RqI;?)M!I6}&Fs)8LC3$LlPuqVP=HdWi4p|A?m6 zV^3BgC@5@GNCl>;<8{8ayd2&hWnA+X%qnm{!Yg-}%wb9r>-KH!^4Fxu<&K5l4WlF8 z-iQy6`JZVPoFBhadE2v46<(WtKGcptTd~=ilrZ*v;*9l1UdzYwVmK3)0>%(u6>dF7eb zEY}`aCB8r4&i!8bJ-=Q_9x1P(sS(AHW1W%zP%hRm&^?*_ok-_du%t>{ojZDZo`Dw@ET7vr*hP5Y6>wbq zQ&}k#^uQ#|)I9vHwbYwXC1)>e>FqKCxOxILO1xppqXFswMNWFE8{U*Jr$eUbXI zI%t{MD~nG~_t9(R)6Y+-(XMoX1#+@UKJ>UZT855#+u$5giMruYQr5u_$$-l&2cDwy z^#PAEd)e99(AF8B1pNmM&Qo*3?Hmn*TGibb^0EtBWL) z;HL|eWr?~QPiS*I{8w`-*t>f17g_cP3e`>xYLoO)*D{QZR&-*OiuCT3H5_$l{=jPk zwvt8>if*U2o*v&JPRyXs;ElV!tN!d6xbnbB1u0U9kB@L`8G-fCV}BW7)LZEncG5rp zjr?eEeCcR1H{Y8%HZ}^cb+ojAT(Tao zRMXQthx}Gsd$C@OsM?}Q5%U~uYI^gCM$dis z4vi;U`bPWeYs?Vi_HC$aK#5X>|FsecC(6E!b1~d6{(ys1`LnU9AWgWer!`2C zDfjDFQLkgXu^&KAXi7?Ez#U3aQLiTdTZZYks^S?n~utb_&X#)QrvfeT(%eHIVy$}=> zK~NAuS}92Z=@1E(?hX+U>FyNiMp{xDX^>9o2I)q+yL(Na?|YxM-m(1W(0i!oea12O z*yeU#6}zC#9ZhXz&0pfwQto*StH9{knfbMrWVM3z1|(iI42;N#h|Mc&xExZ6JVm9Y zweV3GU3s(3O$r_@1Z6;((-|Hn(bq-8tl;++r;MYf9)e2F-2;=LsTbU?{W~qIIVF`W zYmTzpgHu1}e@1TV6$)^FM0vht1Gk5-tOmV%9nw zGFGR9O|Of`^H00`<25YHc7@4|Z3Nze#=7yC!TIKx{=tL3Y`M&l08ou zgMhs~2Ltx4sC~ea5b@ZD`b3|&eoQHwBV9hoEi3lN1UWH5)p_0S>+Bk?)c(by7)^9C z`Nx7u$7E;%;u@@3*sc=-cnTaZOZmx3gO|)i&VKYE95^ zEMxkKMW$OdVeNPGknKvR|IbvB(G5@|?eDLvzlb!L159nNOuHRZ^t zhK1(TJMKir@kZ}S$ z3S_a5oRlFp4wNl;rGT)1XO)@oH>7sJ9qQ`rybpdh(Nk_u3tEWNf`?np#T_X^Q#*G0 zMmCg8E8SHYd#~iUZ$E`e_CTw1rjuTSo@MCMR7tgu9Ua)Q+SdntD?77o+=OgVPaZ84 z>b@7$NXW`s?TKTD_t{O}GpPPJ@67PRHvl50E_>KR374;7(n&}liWMJ;~>c@pYtp>Gb^4$nSwBgngDakiz>XB_;Bh@BP!ff#7xq z`4LZP*@yn*e$Vx^idi;l>-jU1q-GVnx~G2gkX*-XPhGgyQ}$RdPg!ZMY<|=f&_oe< zVue(Bh#-ipa$9H}yf_(LI|So|9}I50FN_E*KOqt3zbhfa49NFTQGKBA4ehq_hK9tm z`7!Vt*RLSe=V_;EV#O&qqErklKgN(ydji-orf&S<6@}8yfb)7^c zNv~R4F^-M^i~~%MD?xzV1j^h8gi&5z9zRb@kjqWu@2{w{wN7nqeQqPrZZ!Zk21roQ_q}$$ zyAZwyxgnSzHbdLJ4!}Rt=5QzGuoBUHpWU`0p76?Ovi{~)!@_(ULx_4z#t!>x=f;e( z^TO543CXdWIg|Ah3Qqr*B-<`qPUZ6Ka*T34=-;bTY+GtWo(;C=K5mMQcX57<_>|L~ zNZm&BDA-nF_LY!1ntzHdZ48`B%wJ*GTM2wN}=QGku7@sY5P`9;S|>)ozkdFK{Og+dEUSi)C<;PyY!WoN z+@(Vbz8WWeK0VRp!Av3YKk#kq>B$=$n0o-}Ye7ZD#{yXST{{hFRaGEp5+FXse9xb# zsf^Cqvb7v|#e{H2r@>2^Db6ktRhPc}+x>NIav+B=$CR$_rGmvzQW-2n=l4$M5@)45 z`SO;Es@N5c>|NzQ)BSnBaeO(TSyAiA<7gm?Z^3@Ab?56D>dwn4WP}5wRtBH$31oC6 zjI2tIY8=WLG;X<<8jVsufBx>$qTv=YV8h@#oeuZ#nr>dG{fiOhYXp$CN8q!tZO%+z z+&()!+u?J9WX;6WiP}*|IWFp2trFTr-u6Mw#_n?&z8_}W{1{pUF%`yme%wUSmb|wS z5l0bum$_&)SI>9#3g z%uR%f*nhOhe#dMP_q3%ZimxX|MMrm77wPY1*fVehl)KiDr>d+C7Cdgl=MB`l-tKNz zX6E&gr9i1x$e_UEUL-_JZSr=hbLmV%K=&aQX_qzJWJ5 zebZH?y3<_C46fz}%cOR82xZGp9ltOJW2#U4#>B=4v)y)TSEK3+3QEmvg^mv;2JtE{ zKNB@_CC)fI>dz9r)~;wZpM0nGzR z7oCAo)zsJs2)XKNc-|oj4rysFn5&3Qqvzaz{Q4y?CszVm`rJ6^q$j^cZ3Fft=9>w8Sr_rni#ET|r&zEkfjF%5mjm04z& z>Yo@k+@(8IIbB?M1OZ8&?W_QP%hAyj_aF=}aiF$^1P71wuXeaI85wQBM-HfxZ7nS} z#EY$U^~uG>vVwxC`T4!p9p8+!wR6Wl9*-4~%+x-^x~tYy{$k^*3^##>P=ViY%Z#31 zAkoignQGCA?u2w7`++_QF z{hsbp>{-ADJL@afF;!(A32_tzKyW~2IL;L$K^$*S!-q-*%ui^UWf(3t{^(yj#Ao>g z_I77yS6jUUi|=j0JdNX>dW&;b1Yx3!{fRYYMEA=u{iMW7eml40H5I`&H(?`tLQO%D zCgtHV<>8pYb(AWvK|v~bAM;?|3>~kn{zxr~Ixw1%uZwliq4Xdh;kF~TuxU}nr1Btb z-_xjma=Q*K2@L}WhqL}4vjm5gMLQwM)P^5FehUpHrJ*NE zild$Ja$F~VZD=+c7G_{#O8lI&eXgkK1O8+0kh+n&CRXpB8O}IAqZBm9-d%ME%`^F& zY_UE@z4^}i#hxqnayqjgXk0=T?Z+3BD(9mucddh~l#LA>X4+7VI0@fc2>f}I`f%HAJPx>}h4_nyQxpE(p9)LWP|Z|jCM8T|Y>3}r zI8DA!-jbGOqsrWV%D; za@;sXkWS6=pDc;xE}1_z=;#Q@l)O5e6SU)=boGgf8i7`#`{W)QQ+rPjul+75LfK@t zx2gdTvCZd1NlEr4*|$d{?ppyx?qpUQwJ%LP6X%}cXildaZC@{U4vV@^bOSmf=_&us zUu>B{)vu*v40BI*-erV2?D7!m?d*y{j`ziDoa8^Bxs?i9RnhfjG*zpFv~FaK>4-z@ zEGz(lx*-97QIuPAD~X>>XHMLpR6jH@0FgtrI_<9knN&ID=$3Z;6%H&2@zTVqL&BWm zOltobb%$^%U$au~a2NBErjjeRbGRie#+%2h^~JKCY4K9OWqXC7>qxb9{_M!F8W|>- z*OHA_bhi1e;2G@u&d)et99*Z4`*SV`6oKQeoy=cyP=+((Z~Q=fPk-KNsS|E%NMXa3 z0p<$+OQRhNYil0c&6uhxM^jS5sd%1s7A-w-R zLiMuMUO-bI%CrsV+*BCFOC*e+M(T$g9Vh?;*c9Cixg@%xj(&deUKmtc{sQ0%gPjgQDfV( zWGrsVv`IQu91>zoL>D9ds778_ipIO1w60Il!f8U?Qn3$+I=a8$-0rwtUOsD@`xym+ zO@pm{SKIPwWl>6)G{pza1+>BAA|<`U%UY`-sKmWpL?Pj8qun zTY&^5nZPByxD@nGN-2)%3kG+qr{@^G7Lq#yaru}PP1ga9c-o?opOUxIX7$*Bw=B+e zz$2Vyocoa&LGX|T$9J?pvO>dri8+Hm!(*R#xV0ua&r2fL$fnwnH(@$anpbN0h;qv9 z=$;Yhm{lKGb*(`-%qo(S3@=_7UfO54biKh60{J61w|jWl1|ltp*Bp+A)Fp~L8ywu+ z7iVW6@x_IO-K!_@>QwKJq7Oj3Z+v-PN?Q5hF!v8#)sMcWw$u{&OzKkVZnE5>8n{@< z?(V*?cLp0CK6`FGy6WHICo@64g|UUPgyHxd*wDsG_pSBE0hKs$UubG#3cQ9VZKX zjj5>f^b~@yD73Re$pk<3#&K_x|>aO zk||94P0i*z+$*GqLAtmfy^`Dg_h=Ojj@CatoBRtEqm?-+I?>#`p96_pktQ;z@a=4m zMMjm}8W+s`Ln#>#wb}Nm5p+UKB~48zXB~jT14a~reP{AL1p5*biGxHYi_K>F@S>#B zE)$nqTRWP(ZGM#pU_P>WXNwi3`{S#?_(pN&j1>Aebb_v@ZuURbi1l+bj&-)yvNH{I z36hv*qny-mY;cMcJu!r{g_ZEsZ@Y(&7M!?l%abfET%3%2`UJgkG?YdloK|n_j0wXX z_YZfcr?&+73rVK*`9^5eszTjeOjML|b=^BX<9G}=P5(*A(-S_%5Y#@azWteB*mNhQ zx-MS~@j!AvAB9EeDHp%5aLa!jSl8u>R*w-Er+9D>^ zWoGuR*{lmWV5T?mtK;)0eR2LmZQJzsK_O4m+h>Cl1QXJW^|N)M6{5Pp5JE-kh=v)b|A5ToZiz>f-`3-kp z?AZ7*_mi>$OG`^gq9U)mC0|2AtEa+Z0s15`mpZmJe>jc9I6mYlG?3@plgP>=QSX^0oa5z@}T`IHLlrV*|vvjFLM_PaIqcz9fjUJ5Zjzltf$YS`AkuM59_vwZ%9R=E$_Su z3V#^ClfLaNQCH2`_HzH|4`kh;+x{u~n1mG;%lG|LKo9_b`~K`pHYPAm;EZZ#ck+e! z0$y6@XJ>Z5n&v|f8(M_OdL{gK6fjC3o75x3y+|Yi!mbqeOnM- zbb$OvYPg!=g@9-75(3dJtw2vh_k7+jOfjtLUhaPBBGx-r*}pjrq4A-kkpW zS)!da>xiZDySGl&O;t80O^t{K0R7I+YWdQ;7T*WZJp{CAsi@eKb!Pkf`}Mk_kQ!9X zcG49UmAlSF4Bs@WK6->Btbn0l(r6sR9pu3x@VULik7`3~1L?!wTFd#{b`ze%P~=w`^H$YN{??tjP{URjWC^cVe)UIvpO@Bg=MGs23Cmm7 zl|6C_y@UA{5a|Hc4kcgs0xHwa5BNaV7kG)rhK8zzmg#CANJlK|{!EQ=IGpYVmzDi! z6eKZopyNgRiup*~UV8Vh;&L8dlGd+KHLeG?ib65LFBQU0P1LMtD{Z=J=}%^-Z>H}; zkL`Dkhn~=RA?jt3Pa8vqX7ikR$L-tCVpvOk2D2{r^_o0xo0XJUa7=+wNJvCf^izPK zqR0%Qu)v0e_siNhiqXc#!l(oOcnBPIc7!87)U?@ef2maN(xylA;E=M-r_aCb?nQ-1 zVEVEdZlbfx^#kGX05l908<*i`z53mqG`ThVTf{y)!*Q3Dvj?FGWC(MX7lviADrQmh z;@hXEgoQ;vWT~P22#_%F2&BTT=3v+c*sP)9&)gd4%Q*J0cdYv94mS@Eh2=6+(3s!5 z%0?*Qyp{0%fK0N^ukK=dq&?Tvx!jpAFC@Jh;l+nOC^mRglUtMJJg}Tb=0Rt6{{!|- zP}LLuYgb#g5zCmqxZKQL{XX!sxsq(Ye{w0!j~O;NWLqqsjdmH5;2pm6I-+CVlENv z!@%phQX+8?n)o8e1VD?JHzuXa|^Y7Z(Z zk}Iy!T;Mx9_$Pz>lH4@g6hz{x;tyJ8D)8~~2@1k6H@_Dok}44unOBgv^k{kV$UOR&;Y|(WGTUh0qVQcr z_XJ!59LdcJ}tw(JO`D_980pbHhMBx~*xn{gD5YhplOAZV2Sn=h>)-#)%%L5L! z#|VZvEzMV7Q{2|^9Wds#CMd? zryj=Oe>13PF`s)sLg|7ZpWs@?Q}B;;oSx;IYPxV7SS*#q)}5pk8V91AR03Cvtd11} zG75O#IXQ8V-}{+Q92wiu=7BFGjwBFj;O~#CRkyph%R9D<$npCeFQRQSceFCm~p6Jo*t!NA&E}rr(_}D4(MsVEqW32uSI=C+^GO zt=+iD^S{m<9L-aM5j+i!FyqJVqzmxszm?oNZ8(D$EDvRbW1BB zo&Z_-WNWew!@2U1`2WP2iOKhB3K-k&)FIs47IxAz5BB%M3>Jg5pT@nDfVUf($opW+ zgq`mzq0uX$`Z@Zv-J`YAGz(&P0z8X+DpOaOr}%p}XG2KQ;GZXKqA=_q%Yy%)u_6(=s(S{igO19&PVgk@`zdXGFhh zuAaqj4-;%DCmpBedhDEOCA)K`!-rgvGxFmo2tfsJX1(9_%tG4jPf}kZ{w}SnYN~c7 zN~rwS;IALHT6WIM36GAJ5))Iav41(@UvY?<$m1|SKYt4`iAkb3I)8XqV4%2|cy8|B zX}!+=V7dowqFje)nfw{K)zsoCj@LG>x8f_MqIVA_IZT}iQ7fSN^yv6l*=UW^p+GZs zZB;ij^WfkB_4aKdUdM=3*{8^~#{eIImLD+sF)_L1GC$I1ig9Sv<+5qtLQL^n+-S^m z=PogQA)QQCvV&RpT>VI4RIzBVc}w_jz#Ku-TYRP-zKq(UguM@ibQhfuMjY}$PSkz4 zHZ|8|JQ?9fiZ=gC$EP-(!b=e!o}1siN$R!wRum?N|zwa3fA$GBWayv0nrf{>gTN zu)jqySNTh63JLz}A~SIG($gt|M4qN*S6(P<{Y0&bj-n)g;ZL4*LwQs6jSK7#f2WHb zJrsRJgK}z-VtFo_&@FDeKBv&kTA?^U^!>Xo8=Z!y1G_6Mv1kQYJ0R#Gu&|$;Qql&P zTrhhbm$9j#qkE?}fsZREE32z}UPwWO7yJ>*V6dG4=i%eJCs+-@h%b%LFFqNf(Le@* z(!r{@kS5BAB}c&A*XmI`ueP}h0hhlP3k$b|kig6fI!I})x7=Hmi4zW(P*sC3F*Nib zyk4kyh<-@g~0 zDa41xUtx-MiYS_8@JLAiFZq9c7La2Iuo6L3L1Z!HeoEgZQL#59yCHSO5yoeG@8ad( zmxL#kaQ=5&gNJwr?!1+iw!Ys>G3w`!0e=XE2~_v1OetDwS{?dKCzR)uqVL}Sa5oJY zQ!qH#7Qx$MEst4`l`YQ6^$(uE2-ng=0=RqLldV))kj~{Nm zA~q_F8Z>#>OWDlTcFVmc>T+Z^FJ?^fKZ5>Yec}kco0gW*?56MLT3iOBrOFVu&GbU$ z%|R#;8R9QKz5%NnA9wjSegO+J8-u#CoC@q!T7_<;^_pxhuEiQZ#L@yG-JX&0$vZpS zPW=8`g~zsGz*G^$#Rb?Oj}T`E<$F&p6eHoWg|O|p!~X2A6MtF`?%Ln-AWhiD0{>L( zRTOcoi)VBuqh9rsU*FVhrmPKBjaok&^0jyTR_&e5&dD!R`L(L2N`Qb?@(yg{LAg~u zsHUO+y15S0f8cCEu(-+~nC5z8t8e<#t?-{!9c zOl#szJn8Gv*v9Kp*Wcz{uw6Q zR9kZ26|xjejOY=6ElwG1k+^y+n2B@#E^Ep`>c+%+A_axX;)gyT9~l|N zj0~GsuK+v<+clI6KOn({lDz4=@b>ZoA|2wt1H&49+OaJWe(cEdvcR{mnfDis!{7HskPHH1I)+0LL`i~SIwU#6@ z@`N;#oGrP7c~h@owt=1cjOUc(DIskft)Q0AOlQqe<(}0_hicO=!WE8Vzk%w)2}%8xFpCY#A-73V1BukrmoThY*uftxK=&8yz5!9>-FVjJRu>b z-C{d7pnU6;y*j+Y1+bd?`=@ zgFKr=&ZXG-Bl^eeL$kc@kGDP^3@>vNaQfdfx4zdgHOiCDA^cjJsh~18^~L9GoX)vC zHNl!1#0OyVg312%j&|(i`r|83m`VOE#sKR0w}FAZ%F6kN-T3+qcTp;5r=d~ zbn5glo*DVe2IMnV1^0*j9{5_`VjM0#?_2LC%d%EHt_S+Yf!wm-TV^X#VFAnETU+H% zX$g>C3yBITzloU=0f9eFZWUfs{5RJ+6~m!^lQ#2}0|zEkYVdhm^zhKWcQ1D=1+}KP zd+L|DwvDityL$sfS0S?RT}sYyg{7o43KG$OZ85J>!VDQzbsnR`&jdkiiiXCGttbMT z-RsR`uUl8{Z%A+WFW*BnEbJQn8r_U5l5z|^-06KQEwq>Rkv4tU^yf6ARjpfcMkyr+ z_t;LlR>$bWR%}AdO!6O=pGU|_iaymklhKhEyy)AlBJ&_OGBF9!sPrg}Hyauq8lzK< zINHQN^y)23TI>6t(dIBgqJe)E=c5;TZv{Jy%a&fr_%Ojx3zYdkle>%pw$)=jTJgau2 zC&1y+jW$>`HQ{e|*ZakbBtBRc8jVov}Ye{QOhuc&Cu|GmH8c%7x5npi+gjPmEtt58ra8Xjah z*WVP&90brgRLJrgOkj&qacD1>Cz603n> z({cL^MW=daME=}EA_m9^GEFj6WFLvDIEXH2)YO!fDjo&CKnSS{uZQ&O`=`bG6V3v1 zmt8y1L+A8{b@vbF+Z$<@-;$D)2|P)b#6C?e;QWhf5Ygf%B$z<71iHY)z?)SRb$ovl z=mKaX_yWEIe2T2Bb;j`*&0gaF+7QnuLka_a>D;9KBFSRRwu@bVLm}gE+o61FlKJC9 zRK3&-c2IbE8k<(=HWe7s^oJA`Ow=owR$9;z=GNAWwq+LDL=Z^y_Vz~e*tE2quvml% zP#G<|)+Hs^SWGUwBH8|%#5a#8nVAo-#WfXXCjOQt5%3`)FwG$;_ck!N-PhXervtnv zwgM&)p=I}?KmeEl?C;v&Ts9DFje-Zv=kI<6n994!ZI?yBfYjU*Ut$Fk&(cRLPI>=+ET$gb#=a(v7h32 zOh04u>*(;w^c4l8Xi9uaA?~31u=A&L{1<+mO>HG)=E&^3dQ@^F;`nsjPZ04ZTd6YD zT;Z`Qi*?Qh8L8n1^Y9LRZEn5`pP+%e@<*kNJ&|CAGTPJEu z^N&1_@5-Y4y?(BIrkvf^vYFBCp3aeXx?j@;BF9;AdIHhpanOSYv!$P)niCfhA#ZPg z8bL!i>d=wSUj$n1Q+89pu(vHQQXgWo{Ly^4x#sX;kP@MsQMq|OzX3TZ;#pBAt=s+B zT!{N5JeL(6dkj&>*WV5YtRXLm$l_LQ8=%S4CE(n4iI<9!65Vt2(hX!SOh_cUKy4nt zuDX781qrer%*^<>xWjjivHBGv9D}wk$QRv(q~ju3}iBUXI6qPybI$`?RLJ? zsSdI5qIs;+P|HU~?(Obv22OISTiN%Gti4QoJg~RdHc2qC%VRIbC?>%o!G`{~@$Xci zm0rO(`}!?m8FnhFa-BA5oCGHAH}djByK|e@)mrKjEMWev4lFNe_FKOQ;RDT7ZM^c6M3sUeuGcXCn5f; zv=CM|V&US#2=$7Y`D0Utak5rR9dwqz^E$D4kX}e7&D7X2Zm>--xm~xv)HzP#n?4c) z4R}+do>(9>GLCJ0b9yp1|Ffxa;62Pbi{(JKH;ulU-Hv&A`H4T1Uz3IZ%c+EKd3hHW zwD}H5a{jPNsr-rW)0S6L4BulqmpgYj;AO+MGd-E-mc;8m^rxt8g6sU)1ObP40oY;* z98)p7Mdk*0;o!5Is)L7hUrufZFwTlfIvj>WnJMJtiBGg~UkZO2+{v%WaV>xGdH5u~ z7PL%awwSy5j521aBVM`B{-Tvimey+JZCGb~Ny6b5m{a@voQAGaUS}PlTIFmKYpNNS^B+II7)&~5htJkcnfb0%hj~l_;S+|d~uoVZO%CI;?L$E11 z?fJ-bNV~({$D?@8Y!ZHdjJ0*&2}pWC{wDp;XGj)4&Qm!!xXbziSBmsd)=E@;ic3xo zNBAv%;Dob2i`7ch6()g~t@?(&obV$+b}g5Q+r1j?z|}F$uZle(4QcO+i%IIM;%Cw*ij+;ujIE zXjpCUL%8)E{r!+VkxP)vz04LUb`?1lUmEq8%BX7*{%0i3vZ^6Ol8Pbap7ZSRd%sUt zz`03iQ{>nc^=LG|=rbNcq+@e0Lwgf40@4cjj~`R^BGomDr`;S@{X+?W!>25?IF+X+ ze%Bd#<28($>MyO9pR1@)+!Da{(Yd4>8vaKHb^Hqn)S06V1J()e>1sFp(_4rKVPj4` zcPJ^E@CUIcb8B`9CInK?#ka=y47_)d!Sj% zJov}q=n`-*fZoI_F9||_3Kjt{Z(-NagAk-Ar?=dFvp!3IB*zRXFvwHED-M2>`5|u= zk1&{w}S97E`ulG*ZB&G$Y0nc@RWpP zw(pkKDtnO`FlqoYk07+LAnj5u!u^2kY(=wZcccD9CzW)w)b;$FExdw99D96C((?2=dc4p1L}p5{7X0@$u^X z8G#4#@gi>8;2O7ExWooV%kA3-R1%^tr=dPRZPU|NosqP;`MC|A*U|^l3JR}awJLP| zDg*Ge>a8+Q&=a|xImQMLJPHcF_;sAL$>3-(n|%M{aeMj&5RUJpQ|ip*F!Klt!z5HU4|Q(f%ogn^*2VH5g-S? zd`aU3BBF@?B&@^*#2QqGVoI6u80wJ)umI=}JB3vo&MHO=goT75pz<;*BZKAvF`{9~ zD_Y4woBvC3a@hyH22l|MMg*O-+HS$0deQmZb90U``}xLjbda`oPU`gkJmy6Rgbjsc z^QrJbltTWTJ^DS^q-TZ)aF5~J8i+5-4`hQV62rGnPS5GEF_0dlRS!#wIi5dn9vh2M zp|v7#;oAvFS%s!8P<3GIm!zh?$5|JY2e23moD2;3QR)z(5Al>#)u*PH=YK8gB4U`o zN<0IEwLLi;1IQkBnCKR~(oFjlHRW7c_4mcI-2`p!uTM`cNtZLbk^T-JtlY)M7FP)s z{Q;I3!I0brzQw8XJhK4U7yST8_g5iwxS5Z7LH=Yo|(afP6t*?`n7Bui_&g|t; zr@YAD9Ln^^MGW&J#cH|e&T}^hbm=LO~vS3qqb^ftYU9t6#JP7EbIJ50wv24^N1Uk9-*LPzEOw=UYwLs%qy*1lZ#$wPv*GxQJ7SQys`2yFslxYcqZ2Mc6 zeG`aa)dDLkG$Z8OOqJdHvi~OwV9e~aI#~oeI{xHqR3jQ1Cni4gJ@P1&HZ!xK&(m^k zY@M!F(o(A~j?3?b+l`s{UCHQ)_4YT4z)S0yuQko+e&XumcC|az&31_7T6w3nv-BxS zs$jj+3qu4oJp(3WD%dx0>RgQY^g6qKv66?uTJ$y8xkdVchbyiN@#W1AWmVO09g8xC zhN!*qzg00&$!I8+aEXGN=Ai1p=4p~l#%c@8si$4^^p{FP`j|zX>{fT$$HIR556ox{ zh??GpA?f(c{usf7S&);w!8Lm{ooJVTpfQ{_gh)=9AU@}kKl=4^TW`9$($1-}g<$KI zj(0GUJDlHYRWbod;5fr0q8}F-so?B<8Ol(;f1+`2{%=hDuiK_;w~})e47wq@s}1TG z$xJPn9NWU4O%vfzo!$gzE~Tf7_m2_Hkv=pw-UX+z zaSmpJm6Y5}x=b2W1YQX7)+OeM#>3Rq9vd5ew@Ydon%MaG8ttY#|H9i#Qm|>2hnqXj z=UvU;6=?MQaNx`BXJ;98eVoE$EJoY zd~l7D8d&p`IUs$vIqZJF>}8BwVS2FMPZPuaWnD2MG03Ch^fyj4f{BN3@b_mFF;^+} zu4k%M@U7P-3XvD%CA?~BX@%y$7dxcp7xwHgfx}i?TkGI3t}7o%@4|7+3%jvZRbj^? z$I8NB9+xM-w7N7Y1+AKj;&D?*+jvP5ziT{~(c^`XwBTR{25Rc(%~{P*|M=kFXlk)@ zW`!*ygCl@!eCvt#{n|Omo5YgEBA9G@$Dnak(#9VnW>$Dy(mH1@fq^lqq3&pYb~Ko2 z(%mzus@4{We*nQkSa14LgACrh3lQ`J<~rho-D)V5oWKFXzF26ZTH8QwSjvokwjU!m ze#8BabpU3|a7GD+TzVAumx67cYTl6RRwQoRE*c0NQ;I1Fkr=>d8H(_fz-a8NNONNP>~vj|AdKb*lzPfH$m9Zk;2RCE9!$_Kfm!JowpBI4`t4O z_Cd2J3PO&NqNU>{K7J>SBK!LTSwr=SWuJS#qr19ls1E{!C8odMX0q%hE$1}-y@UPb zU=pd!LA_yJyVjjW+|4JUnAGdskPLxs^(tz5dCp! zWaM81B*eKfur-KkWlTwY(+e5@IR_Te5UE+-j? zO$CAk+ywYwz0AtJE$KTAemLc~EV$@prjL{+_Um%u7hy zPE}Y;J0ZEm^Tk#{B@%#aX|mZcWp0I#=+Ae4la&p_$4` z!p~c(2(;tF-2AK$DMJj*q8iiVaDaRaRQu%}F7{kK5;QC`?{^#R~}% z3A0-cc1Gj$$a=_#yEyKSR&M-$lm|WY`gbc;}U)gxru*T|lhmHZ|QPm!H{O*^J~qg;FW;JI?<09if-f z^5~=?nEo`D{1>m2#Hfoi&o|8P9Kv> zfMwwM?xEl)qx1R^>!mpdqCGHdoUkfZ%X89n;6&Nn8RZ%P)3ibiFoEvk~U4Z43)V1EY!>xS=obAh;w*XGR+ znUOmM!xhP4N|C6DpWlAYMa_}r2+BW~k4Y{abq;VjyAa%*?4a(D2^I-VnAV?vXZY+Z;YtWKq_(!O?v&Jq}FD7Svp=9yF#?>mqr zC9SAiN5_PQ!fGsXwBpY_1e0G;Bj1L6BBTm`C-vx2-_6AisAUIrK$^Z?pAIdRZ@I=G z%@n2;3KoA|Ev$Dl*Y)~z+w`uGjJ#pQP}!-b)Buc?SLcD~)qgxtm%A)P2~*LG7VZZs+d6C` zx%vSWnbjmt_PJjtkPwh~y3pU$;y2)3M)u?ukQUm{dhVZsx1yz`;m_DVqQFdMV5s`(Gl#s$vTu%&vyhOiwY9S03psV;q~^Ar z$-*DSx%Uy?o$bD2qGjb}icyg=G&ta-@KQ;cj@4G5R9}9%jE{Gim_YNmKl-HZnQ2>6 zm+b-ZqC?*C8yRcg#!zr0{5p?w7{`&Zs4z0Ui|;s4q&Ht)lDzQxzeTtD1=#D+2t~JM zrnd!_XE2`T3g+Se zevI^XjLD%1H1Ts-UZ%IL?l!%PaPfBw}>3y5e7$uaI@ z{H`}i)KtRH}otRVvjKo;`G&%ZrLqN-qLPD88r8%kPgY9V1^gU_D}S18QsTxgCl z0Crheh;ScdH)Bw%PqcYjTKbD{rs@?BDFQJvF_AxBrC_o6j+{k&M>Q_)*;kJg)7fiz z`NPtDNl``H7!MEc;9i*N$HV8)AZxrEMUP;D!j8hIo7&Te8>U$+FDn0JFk&XR%^p4N z4e~taX)$PtUeUPoA7|2SMQ?DZ|AUeC9_veN#OCHEKo%?Wgw>hmAhZhxKO~qxbwz7o zVz#PECN0Xz{MjthfhLZ>r)Y}AJZT++O|~MN5(Bz&YZe5(W1s0Kes}s={e#6R%QTzV z%Jx2@+0+*h`Os;L%QA*tkwohWYgg%e=nH7XKBEK~OB`($Kj-CJvAN!`SD1!sB`}gv zL@FF5=`(qdw%Kic#5sj6@tknOi->q%F@70bWhpWP@+bT=VIEs%&~(1)C1TsGnCYgY zp%f93%-`>dhE{S^8-8Yy!Ca$f`#VHo#fKl|k~=Gp{0IFD7%KexvBQ3l!=(t9-`-05 z%s|)(Mh&078!;Va)c)MptO^bUXtcRt{(z1N$O!0{{W}vB-V(ri_AGUAQTKnQ(n|L4 zj_>5ncaI}!k^UyVyg8*mxj2vzBY0DSUS55$jF~DZDI>lYu}1S~7*-k-1<#+)`q4lmlxIe%g%$tpfNn*Kb2N1FqVnEdrz^r%$y-y7~y?>ZtzS5h0hs|F1q((r=+!R zYUg~%LdgKRnLEuyv_*fbl16_Ch>M#9o~;E(JSdQinVnW^ zT&V13pAHqcdn_i{OeS|E55N-+v@^~uLvA3g6F~h$T$rfaBlh<*RTAWu_0^M*5a~Xm z)iJ}{Zt~^wv%QsDCj$kGMt2v`Fn#30q|fY*>t|wTLil**@vz#BO!FBSp}pYxJC5C+ z=Nh(pK_*mB^yt$~vRQK-?5~5f(ldm;hzLPXQlB?b!pZj4>2fdy zG`hu5YXGts#Op@}D(Ize~GW8a*LDImoLm#qxL7O8-X61T}Y4VU%dDZLN*jtWodItW@e1XiZY4^q=lEZ zOZ0Wl&0dF|9cFudLGmYkMj2EXQ2cE7AweB$`~a`;R`SC$zc^Df+1OreTQ+126an}J z>+7P*s#wXZk@^0aF-e1qPga5yGTa397$YJwztWHSmFkYYZ9T8Ih;LU0i9d6DYW+U7 zpLz?2D@Zd+Zp2|9gd3P+VE3G_kmTCJGIM{jG&Lwl=nd@VT@4GQwijkl!>wIJjBsyHccY^!KCfbUzqIYAvgMPq zc9y#r)c#1A68XfF@kSr9Aj;3ZWJYD+V4!~gvNPN=S)9)1V_oxH~PgBO@X z&rW9Dq~bY#3qBV~%gizQe+c`_s4UkteiVICK?MW_q(MOtkWQtM?ha`rq@^UJLjEr$ZV>5~j(xe-Ugv+#*&nta=9puSF$eg*&vW0`^-I&Y^jSCZd#k}YF}Q+R z5Qo%Z74+xX-ekwb-8%G?v=4|dylBU>4&O*A7Y_+1ozwGyzjt_2k4@;uG+v?I5rF`V zOPzCOX|lanmnTZHr)Ou}{1c7FKQ+#+owqiZmTaN^`j*$jh=}j3_AgvGlF|y@mv^)& zRaA~G{K&eEd&E61@%>sJAqPZppnkjC*k_(}plqbrT}eb;hM^&KRr!_tONvbN&4V6` z0&@|Q`8f>|dXkY4tBeyi)ZmfJZCf0X8?={5;`Hf#4DE97Od34{xxPx+|=GMpW|3vO|)kS87>R@mGgN`@3$?F3T zC2wdT%~5_4FMU1B07dYiCG2O}Yt?ey@6gPJT zGC+P|u^kolOcaz1vZ^{j3a3(cRmF!4JhYN>P>$Ba!0@}^(^%b1i5WE*OK2_FnhFp0bRt{ z*jScavYDx=imIynr7oZA>A=W{aE2n7?ck5QP64aj3}m$hf$T~^cL(Wr^E;p*^9u^# za-RBh|GzTTMuoUowf*0Lo+)||p5E1g)BYO7As`A!qI~EUqH0Tvum={=k z{Qd9YGKQR4zn`lty=So!$IQ&Adu*zUjNv6sF5>rzC&<6^S7&xX?)hBx_q!1I^vLO6 zP=~NPIp)pHT@Ri+e2cr@{NeNMfl1-S-%h6&b}<#!J!*gM3iZs3WZVv7ENZNZuNv%R z1MxHv9cXF=8pdYlr%gT*kXw$AAwy{;@u^2`Qx=kXzsu=%aR z_@%FsZLbZ7BovSaL+|qG7x?--9q!x|8t=euz4fzmFwH=>@wnFZ_ow=LsK)cdd;&^g zkB0P$isNB9c=O?oxO8Q?eanltHr3qQzw972m$W&Ha{-55d&r+T3Hw+88Q%zjgjOU-i*rR3%g^ zx_YmHhd`a>rKXmGt`LiBEM9BQq zlq7lhzkeAUYtO`M&tQy%-*$b75;0+SK=E>Kn;8f7x4VhSOub7HE2}xgT6UU1-LJXq z*KAJHh{{BwBvCZi$5pPEwmgNHcy#588c3d@Oai6&jp@-dH7`t5%p_hQfZV9R*dibe z)h)Hpt4!2v`_m6;!;K)P=~t8Z_Y6yd#%JGenF1^4`}ZY3ZZ8PFg>d5!Tvsr8LZyOn zN1i@&W9J2wmiHt!JmGa_gN80Jl~-3;OjcrQGP{L9zJ@msuWm+$itCwRnqs2|s$WZv zx#_xeQZB1yLf=SEQp<{J@3$*Dn)`koFx=2=(io&Bph-E|pF}qX^M6TcCMVZXP>6hh z&Xqh>?QAcs2ffi|U^Qhlu7=2~{$zeumb>5!9;56>ZY$8 zcM2{}sw>iFzn4`_>~4(y`SpuZM1*8}o1cf4ma)iO@8{_!H6V2bo+1RoYA>346Ok4m zE94mE7~lULmdoyL{n=6`_;31li1W*>@BH2V3v=J(?@5H7#rqxiU7bHlj;^l6`S}p{ z2l=9%;q?i(o3lgoW>6qYL}zcfXN9jLw73Yie#l1zsw*{>Of(|pf3`o160g_Rwk(x- zt3}XsvNl}_o23hgE3SssJaqW@9*`sjK;~Bxughh+L~~>AI9a5)MnnW;`U>HE-jbQU zaN|UZZIC+ny^@`#;OSijfQrxE<+Acdj|zx-iBA(#>NJ#->jy`&9%Td?Hz@C*5IHb1 z61&2l=3jXwCMMovywLt$qyASX4YH8jb8>mbs-y(StoRu$FT@xxZF}(BsV+|lf}b!Y zvruyLCf)7FZe(_E{?Ty0J#zfb(pvUMZu-WdC4Wpdh5+=-;GHoz>t2u|R4t}fwsx+s zNBjzf`{Tp5PAh#Q6v6+~7bN_w-6eNIlSei{;UH$Cz^j@GpPv(h3=R+7h-k{Z#PQ)L4> z8m3t?)RdYfhBC)V@`~XWsiO_%Oz+%1dJYedl)G$uy+1bY@b6sM_MTjoqX*F zWx=>U%A7L4P875ypIEvQ`w?I0tnFJvBGm5=#yonBl-CLPb-z7>8L3v48fm`SlHOEckaf0u`Bz>^>UBwbgsUqwRLE` z$b)wS>oJ~gcHYIX!uXE~kg6C0A7t@h=0&Byg4fH>_op65ZN{P@6ieTowROlP@m*C` zvcF_A>F)ecQ3?G6EQBM^Z^00-K9m7D{lvt?z;?WN@j@9_UQ;tKC1qd?Z0e>Tlfnbf zb-AXeTdppF0tkeRZT7ULmX5643=#L{ZW zH*_n#P-LTIPva09)Ig*Ec(J{WI{)}@(qC$vjm``y4wn-Qhd-!v6;ElqK?Tdl_bmZ+ z{p_E{8=$sWwR~7&)g}neyu;<;e^Q0HSpZxd8xw%)GeE6T()0ms- z|Cm@;R7{%*6sOP^7KTH<3b{I|4f)ZT1wa}+ez_pZ*&xg&H^9PHiiudYHQmvw{)@)@)u9`&~b7R1`GOG-W!e?BK>VP z(lIgps)(cCDaOWA1yN8w5L7qCBjwROwp#!n#`nWt?k_3txD3@D4&qE1+kmFRe~}KV_FP*1x8}dUop;3ipQoySEC; zDwG|yUvhK3oA1f#F*4Axsi-~=7eBb^wAwdVne8A|3oabP89{hvdU^ecr1Bu~ofw_W zdG>7hjT)qatN_>bI2heTT3tOJeBI{edEkGrwPhJ~-2y}wD(rj&Q%T!945;>s7D2F~ z_au4#9UDTxVMpr@D&-K4S1623vvlZnKMh?74o zj%U9f|Jw8!b3AciWoDkekJ%9)fA#m7W=~JV_cRq{W%!oy-7*YO{+{qcX$3q0^3=+Z z4w$Pll6`%2d^}fUPm6Hk{iy%yxb~i(h@-J_c9E6-hY$PRvAu8sx7BVD6Te7ESW&yF z{_-V?bZg6YFU2p97V&1br1{OYg=e$pdonEl*dqovn(JGLz@FZsyC@|k4|0qLfwcd4 z^4`JW7-TU2GNif<1@KxsI&Kd8`LC|7Ae0U8)s*HCm{wI36yQBkx3cp1@`8H^Q<$6? zDtew%tb8=vfTIG=iPZV(Vsdf#E?-z$Vg-~rUvErzTPb~DY*nbqRUTF>RkuH+9F{5@ z6TD6S3OYK4>FH2#U#`F0F2%=(GaD#-dcJSqne`_{OxxQVN-sK#uI*O)pJX79 zS`Q{LFB{mib2HW&e16vWYMIy-UEn8nA0yAa^6(u5?MqAB{R6`DeG^?P#`ilj(47VP zYG-F>MaAd0xx9IpNf96cFSVTJ__D*!lqYUBmLC_(=r`oXJw_lY>SOUTC%sU1J*Zvo z)#L{lQO&W^tjg7jRno!E5 zsVMq9^G8^h9Fm!$x(4CGdOR+k*i~BL+x@@GV);?Z{9aGX<;{#oWN{K~Bn8JmR5~Q9 z@y{#FBOx@2i9>W6cxHSGtoixxnwvj=o;hBm+n>Z83v#;wJPNE|&>Y6Z6z1zo$;_;v zndm*548s+_+c_I6%r~+jm#5n=Z|p=3N<2M3H}Dm}3!losaJ@ZDg(T}GeIfmp^pp7? zYQHs_K~ll~9FZ&slbw`u+}x#a>pR4|(zmdn&unIMT)(Ak@mxzO?WMV@m0bV!bS022 zx?Lv3QkO=VHm0UI5Za@unds&98X7Hq-645N8|1H@t*uAY^fDq!kyx4oU%b)^=VcRs zJF}IPTv78t$K@7Lj#B0FXgeIru)B+a_*qig{bBoqDZO7)N|~Fb-Jtc^+%XA4ln3pz zI7LEEHVz&xq!54l{F%HU94YDG>cSBsxxBq^y?wg~|3sCs=<4kq9U6jwa2MIH|Atq} ziWIVypmx2;=b2IxZ*5*VcbZ%ZtEdya?;|D;&!$Sl(Fs^Ltxc%7>>^qT1LLGn8~gENdPc@Sgbfm%ua+5$84<#w zq6vwK*a5;2T?x6nPYY9^?m$HaT9+NCD<=eL|EC4GzVc(#5q5Rk@Y&q~RqVB%n6|~% z7CzlEznHd}nHJB{X2xFVcYO(kN367m4J&Tn?bfLojF|+q)n|>ay6b1_P1w%UYcHH# zE*>#PV-eMw?&~8u`}%aMtjTN%2?p4q^AaCDv!OvpLV^aW?rjqPKpe1$2)Gp`McB*3 zdZeeGbBB|I{g9d}OH-oI^hQtL>uT-2sPvDYU!rx#BCt8-zA?G$5=uMsl#J zWD%Z~l_$8uypH=$btNUXQ2c0t?AuvaM^>>qKnAINujl4`WD??9`-@EV1gONcg|h0) zA3u9B<HBbJqt z5)vl!VTMxd7${}5vf2e{4*WL$TT5{KLC4wB!b%WCA6DL0ZNIZ3fh~9IR=cz4GS!iB zZ|)1)Wy9anrBac&DJQ1Kx>JokwQQIOtO`o%z~Jewc%<|5i>>CZ=DANuo=01ga)Dn& zO@G;5^~85~gur+UTR7^ydrv9sq*>A@Vui`oH8h|gskF2-D>E}UCx@(@cT&dNH=3P= z(W>wAOq^bd1e)e9d3oT)@iF=Q zx-XYo_*Qt5&vJX3n2=4)8Li02kKH4q5)?xKaKTU^*7($?xEW5ot?g~3g@fPSE_Y9U zJz;?J7Ge=7u-4%zX;0z~*NEY|EyzA;a&SCm{lU9@*8R0FM<{-QiHkNYI`twdIQ{8}L9%F#`((3PeB7&UE zG@p^K3S8X&<`xJ}hFYW?&hgJky$~i17E?ogeZU%6n3)N#yn&a1D@M1`eUzPfKOler z`*FtT@88g9PD+=?EF&l=qv^s{%DVoLA2T!!7)EOx#}7pu`bE4^DSLLQO(fv;v%N&) zK8*YNi$^%2Hc{=Y!1-*Q60sH+$KxL?V)omw@;ymurLnOw6r5chy*wLLr- zlBD{**0hXw@4mgg1FAUct4!_^o6ymkC>x>G*&g{0d8~j|Mv9|_btS{v)x5dJmkBRJ z1)c(!2m1?I70YcdSmFC&1f{39g#07u9%Er)Nz)o=ZYBqP6c+zY=}W6MPQ0+#Z=^fB z$;sgg+6wzhqPKkodm-ie(umDnKfdN1nuX#Ad-^N*loB$9%{hG{_Q?!#`V|o-e52Cl z^f)V;9WMj#;(|L2p=WBay!6|5Vd+x?-^@()=ws*wd4Cj-?_Sbqgb(K*1tle}mwOvqv^z9pL0E&YnUn}*Rgqd=CBqY?$ z^85mkil2SHPy=UQD@Kp zA}{7P8e9jXqp#*>c@vUtPz<6VtA-ADdUm!RK$#yueuO7=j*gAJpr$S>FOOH((7{9( z)>^r@W?^-5xQ9=d*2Ha!g%X$~PY|3e?(aWQV?lth7@u%&KSeM2efceHoNQXKf;laI zQ*LZn15JcFhgN;3wyrP@!&i``!N~^V<)bEig~{ogz*gr}Z1^hz&^$?t*Ei_g$H<=l zW-J#Mh_megZ|wT|gOg?GRs`F>m4!uXeEdf-QH+!2dlAX;1jl=eR(`qA4j0d92W#)g zh&?CX4MHwq@<-3eheif|(zm)X9X_obs7m4&tmG+kJ6+mGLxd?Q9s~!bnQ(2?r7b4~ z;`x611k0UMhXEy~5C6jMZX@_T5U*^OT7NB0??;GJfHE{aokGE8-?&KkP&VOHU2E$8 zev99N%Lz&%8`%qn26;6{a$|VfBXdk8rO^p}G3N0L*@XhfY~5RYyzgR!V_5W9=!SY^ zl;f`ax`}I?va;ViQN=;E-=C|8M_loJQP8Q=rbr;-DJ!dzo$CV?eDY@jZZ6Kw0Odgs zL|=b@a%?OWJ#XE07Nt}Su(yT04?*|t;csOJ`bOLHp$PG9C@QNw z#vx@*d!H?2^ENf7ge5>YLYJ=bH(7+LBl>lhN?IN}GCLwAH^ctri!a7FeuF}(_2nv> z8a3tBXW+Ir^bkV9{sQ_EU8w5x6@=lkK!d%G1-bxF01$xBdfvFd4E+I3x;2xIp)nLn z@BIlvA(4f99%9>Wk)X*ge?K@oG)6}D1(rCq z|6aArNg<@7{9APdeH*nA@Hk?g97+X+FgRadj;Aq@^6`~m$A8Jp{2GDv=hG911LMwh z0mPd>#j-}xs0F{J@A(Ta8O?Sl&%2{|ima}V-@ct=;Nv#k*7kRR465RwG4pM^%fcNW zm;>YE+uGZ0?d;$QxsUH!Al8=xGzoV{}^j2X=y8IQQ1is@+eD~(~D!N6IZhvn(KNzK|>4l z(Et8|GAj^suO>w=C-+5w@E52n7HTH9vtVw9j{$xMC_{ng0eV3M1wXSrD*pamP(h(M zFVDQKJvf$nQtz}n^LgjA%a1e$cd}I9ni_-mLwAx=XlTx=Ge0NA&N8=z>wZlhvkgnl z%A?|^Zlo^BF3c~?s}2lI4pfU%Gpz9cT0BGS!@0%7ws{HacLqX+;L%{j5B+6PJVwS` zx7wvfkMTs#LkJszQbOor&g#oVUxTnwT%g6_BZFfT)KITqH#NGa13#jzeFarWfUUIE zxk^;$PVV&e$?MKHy)!Pcv(7d#i|8I*eeuFJ_yfjR>&nm7-cUDJ#82b$enn2Rm8{Qw z`^FtshO-ZUKc=74g$u%e@nood zGKl9G837Hn|I!M7#4%hJ!pCa`97RDG05KN|16z`FCV&v$xd$m`J-n;)$ zZwhk8OnY)RcYReib#`3ifS9N=?gv*-_Es1yTpuUKVtjpn!`sqAZ>i6OK}}DuqNZkL zZqCZY zYr3B_Vdc-vQD2fwYHbBh{fXRt_KWe%wqFWfrO!m_FJ*bSU;o>k`jv8Bblj+ES--vv z9T;~6kF_n`OB;NZEi}Zxo?!PYz+FID_$zsM6-?iEF-c*tL6wwg(<@G!j6x3=m;UnQ z{7~MW4x{7Mh9Ge$8lKkIuZW+Q`PCsL`bv*Y1a$;-777Kh!qbai3wgvgECk(9R5nz) zc@Uhl{Nnw^Fd{3SkgKw8IMrC5JpSsY{x3J;Rdv+_C#Qn0kcY<&`Ny*_j=R9(0DhFs z=!w)D;O`H240Jg{=P1;_pS2`GzX=f9=%zwNc7(?mY93nC^sIboe* zOuLylXTCzGJbQUGzwmv5Q)$(3yYqWF?j37cYlm*@+n&F?y#w0X*ldQmEzF4))@jJd z_MwjN{%;e`sfk#Dr~l+koSg9>J)@#BW-6+JU`cq6=jP@LE{;hE+9>K%iS4h9v!P{g zIXlocj`~Fd?F;>PMsu-savut*3w{TMO~sav2NgZKFPt~68aEoJYqhq!DaM+blRW)C z+oUSnrMR*dFIY6$+HU%X!QE(N^oK-PC2qeZ*$AP~Athb7G4lkS+OM>fb#l9DdfKHs zX8vWhgM$NHLaM5&eQGKXdb_nz#nIR<(n^#7SOOIBA#@JQl_pWNzQrnd1d;7hB5tBqUOFQSxfM2&U=z+S($m zYQc)4q^Cg~aL2B$zJtFtbZ)@g!sl`AI>Z>l;l!h(u3nvCi|P6uJ_0ws!0UL1f|-5kNdZ3osaxH8c`(b2o}kAoh8_ z#y-#|lJ&eTaIsIb$vM!vO6L>?2NB=j9N_rluAPU4WoEloJ^Sb1sx<7``wjfI#=6QB;wjhNpBk(ipj{LGctOEg8>K-BqwM6 zy@C$0L$HI%yOTV6_+uL4_k)g!uIx^e7u{VASML7i=R6m7irKprh&+rZ{RekJl=WuZ zB^i!%-y|b{smJ`Z#~RCRT}{rHqc-Qov1Wp2YRY9hGbvg>%hLVyJR=|g$S-0hZUog#Vwl znrV=Q@JJMDL_SwJ>FOqLd>D=EWtKLXIuRsrCTuu8(%=8uhB?lYULNzvd$+~PwT!ue zjue5TqS9h(E6Tx#@|tUEsw^V|Ok^RXyw2xGrc+;12|HUG5D!U7p~%)2D*%RJfL~dx zdH*#^|MV26;7a1Ra@<>Zq6%{-ewPBC!I1E;JT=-M6J=k%q~bAWwYHO1lwX~%Vw~UMkYno%*PK0teaT96_`KpCpnyWVVtda3L<+|o+`oMU5tT2Vm;eoT5aQ5cLkj9|L8!L;i*INWAJ|C|y zIj?YTm{XpQj*bE}Qe12Uj&UfDxt-w!Dxt=z3dPVqc)f00s;?D?c>MlwN`3MK{|N1!6g2T*9F&C@a*EENWByV@&C6i zUJfsB6$y>1l$YU)X*cSZ8V2-y<-Dt{?dRmtd36z@S@AHSwS2l_l8a07(xb)Q#oXLb zFQvm54Rd+fxU(xnKmwDrh=O8dc9P~P%|hH_XS+y~NyTM7CmKUx5D@sXAkOsd+vA%o%@+k8{7eq>nJdtmJuwFbwR>jabCO`?%F6A_Z-^D@K>YsV^>`y{dYioP^>dtH}IH`cYvmaIu}tqrG+g=j3&^)o!yi5>wx47{Or%yXk9=2RQzl=c8=9VXxlTT;*r;HO zV%C})Z7g-tQy5q96HLX>uKHnlu}3XY2SxH%>{yQg4XHH5>OJjcH)6OiM(;2@u=}+rz zNPIN^y|6AsE-IAAc^eab_K#O|WVB{jZE107VSdQx;@zZC$2rQn+X!@A7ub$Z@H_-+ z^!o$;eHCzqSKBOqPD^`M@S7>+0qmpK*Vm=*de3S09>;S$Nc+e7_QUWUK8PeL5&-@7eUCHdQkn&;0eg#_1b=;Cz6O}fAF z?tt2f-(#-5{d011^4J&r0nhXEb9&8+qmz@H4VHa2!>0shjFVS0BOmeFCF?T2zV z;=+pZW9zNO&DHUoqSU+-e!ErQD%1H?W}NSm-z)g$rl#k+o12%C*v7(BCY!R4#|@@YQ|X=Wgh_W2H(VHSdu7y5RsyyqAExz06mr8)3dTlPE5Q2 z0R4$abZ1{uAS>%|>*9$02YmYO<Dsm8)&my0X9mMdZ8XKjFu_9x$nwM>R&nJa)YQ?^=7Fyb z>)svc8US|gwgA9ai!FY6d3iu0?#@&jn3;98w~zUB7(ahrL&{?U2n!{p{lpl@>i%*_ z1xI>Rkhb^kY$711MbMbm>g&tS&Xzx0VY!x9&hawxMnqT|oxsiG*(=_pfPnk+A(%4+ z{#)Fm=%WNirbhP|?jh`~?J|24$Hs^8Ji>GRxKA-IbC9z-y>?f5T^P5GC1hkqhldS}jUkz!Sr8Ex z5iwO^3E@l1pgRGRQ)J{Y+_H#;Wj{D(gm&&g~SX27N_MccjCBVcW$LOY6H6!fi+^v<|& zs)Bi8(QDSUQrD7_UE`Z$QmpV1<=IaQnIwNnvR0GLZpJYF{q`M2IwW?CV`I~ma{qw+`Dt2+L)O3S;1tvZH5(<@I^E&u_p0YSl(r%O`!KS zEo*Sn$LkWG(xDUmPvY*!0hLFAM?v7jzgOT(2s)*{u>6X{TOJ?RrK24Be z^(8v`FG%%4+y-hfxN3nsLG1l|3#?XGRv_-0fq?-S>=na3_zl6oe(#RpYgJrMf}lr_ z%XQ0NjEq+nWEdSCv_FK!s97n?9g^&_Ja`y&{`FU|F+IJZ0+>BDzx`KR8zY6VPE2$2 zO?P8RNa@ONq^AdlE8~v3;TjGV*A~pk#bPd`k1hf{8eKa5d+|ye41xvIyiZUrrq9Ns z#~--n6lE2is_#?QOWEKpg-sQv<}Q{UtnZAyXCrhQnw{_2}#nVHEx*62gfq#O4?=dW6t>o}`FN?RREs!u|AiVj-Q zaE1$i2(tMAum(bbxj28r?2ALZQivPG{+1L+$HqceVC+9e!DQ1-TU$Gnm~&`;p7F&C zLM*KBsj19+l%NN|#0&*E&hOKw%a4zENR#8^o@$8U1e+l z|KtiA&c;tHGu|`2+Pnq28W%1X>Jx8p zpJ?XSYC9g)x;kI2PklH4M0yLG^^o$(lSBJW(Z=Tm00}|c6=jhQ#5e*4|L=4_jQ~Nr zsp;gzL}yo*GZZaZ@<(X{YM-xFZ99}M(c9bW!P`L1zyQ0qEL{0gQWwneY}%4vE zp7NTH4UZS8tFLqMUm1UO+&#QQH9za%(U8MO*vqSv;R*EAU`=UIrEFExr4Efv5>mZyeLqd zNb95M+4k?sfIH+w+!t_3qQ}bD%G|N(92-PH*YV$FB1WJ6R)O6TC2_GHR*UZ9#*oy?q zO8}x8D6>%AEyzXxBmQ_pEQ{@@G(Jiq*m5Q6I%$-PtABWSuxCxXxRyeN;*r*w(qLAPOFTT<1<4*2 z7bIZ#8m0b1SJQaL_a7$tZ-~GA_-IBsx#52)XQcY{^o0;zCB7Q3rlJDsQ4ujQV?)EEOZhv}vM4ar)U>y2@v!}f zFxpci1({dR94SJUFlokjR>YU2$XJK}k%zZmaMtQQx9F}9M<4S4>L#irAtSh+KgZNJ zFfF)8Fe95(E&hzL4WvS|+7Hnp*l<=~LmoqNEu z<2Ezf;_CKH>@EAj@$YUUGc!m?`|8)BF+JboMS&HNoST;=Mdtc`)Te{?KB|MG{r$d& zJYnvh!DweRd!I-J)uiwOPUo!_Qu`}X2ss-#n=qQ-|I(G;yB^L$eet49^%MU8*#3ZMdv$dcJ~qS;^YKEc(!+3YHrLY&`})-tW@xBY4}RAH+$oIf+1c6r z`1*aoP4}>W4zY^SV=6*JeG~r%+YkPK?V%KSu;B0F=e=TUtgbb-`DlsU5Hw{ zhlcj7k{i9<8yO7*1&mr%pxX0NkU~bR?e2Q~-B8ij*N2x$Ru&`tbiOYONlXGZDBeSC!^z?4fwwa7l_aJsnEYzVuTZ#gUKEGfa^GVD%-bB|V z3l7J#iDFJv)YvCH0!wmx{OPUj?=|Z15kEA4&@vPXxVoKFEoun%tm8lR%8r|8IduZI z)TH3v+X@EFn1_$Z7#VLMsk_*{y~9%);xneo&B0^)>eVYywi#GjUil@$QV)IbCh$;h zO|qunQC3k2Pu>F~22f!OHDUh#F{!Cu@$nVmk1(I8Jg6qPjOjaeFnYU4%Htk0kgr^; z%<*moo0#90ZD*}uOH=7%R>SN~%y*&(N&S||^rUa1UdG%;L|>R?xA+jfl--*7)z^0o zaQ*tSIq@!&{ygl+@X|vl(94-MW$zGcMuSy^*f~VyQ~@-9R3}q zLd223=wkc_Y5j|;XqeOCa5%ng+&{H78~EumxmdIMz*PL+KM;)~TG9k5F z$edH0Wn|(XaSJcW?tG(P6Pl~X@38_+P%g0=_fdF+2?Ev!({723u$kFLsM2bdltlQG za9FilSUNJuz=$YT`Hy0~?fLik7{*SiuFfF7$l1v`Qoxl6aFn%m=4K|SdF(d;+(CZ) zII-S^22xikuv9>9OhkApd`iqpQhnO-wsy_x{twJfw4U3Zpg?V~vGHzhE>jhz!LXRS zoahi!R4gegi?R&5^k+Ve27U@Q|GRhZ-iEK-9aOGz_1%pb`S})O`RWLHB_*N3vWJ`m zP*#SIhc`Yr$ZV~x*M(zGLgJ>R^fjJf-jKprf(4&^6OUdpG*m2YK#qg2sqd%a`?P}4 z%Fhk=lc-o2-MF`j&~-fA>W3VSgw$^Te*qHyio$p9Y*m!N`w4tZL}VnapRM?cTNl8L z1G!jMS!ri$>-_O!!PV@g?|ejJVy*R}APy?X0h`65m2yEB1#mT#DZ_*XRt`+9KMO0$ zV*>-Ni$O6AB(ILLj4R^eDMiErzXaZJVVbUy8Xx^k#AAfBhyqKZN&4-fPj6X_(1W@$ zCjjtK{%;h*afm{L_WRR$K98~J=r)g=oz>L}b3Aqp9sH-Vpopxl{%C4SgHBbBgaFPN zC_ccl78e)0W9ZXX^XU#~2j{+hgUqcbw24$`_kP$}56I71b2b?G?e-=je$1I)dH?p{ z6d~EvVz1HoKj6fxSDdB={!3qH8|OCd_P8Vt(**jAO5mzhXORhE~11q};4wPi6adfAt8Q(;k2=xAtA$UwM54y5b9 zeEB*jXu@Qp6vjZd#blejXCf~oO+xYx_ngIxKn}ve__h{>5Kek$KP?IgC@Yw%4CGI% z2P_IFZ%eIkm->kdy#4vjpZ5;AS8x(950&wbwW60nLOBY`g_yg*IL=tew@xk^pLXYd)WlIIv%r6!MF%Gjy> z)op~E_VYWV-gy4x&n#iT|1tGtAAnAlPKtMU>#$tJn^9SNa@l-H|3nj^S5UAWuUSd$ zwxRL&x_Ne^?!a+A)P24Ma;Id+3j`PS?Dcs#NV$+oWhPEJ1bMvbbI zGR`QOvi0gje}D1&YN6`f8`;5;gXHQYyNk79*pY4a_gWu64(N}2jZMIoO3m*PpFsFu zZ3k;wXYGUNGq)`wLc$v0*g`@uAlDV{vqGJE=T@Ss>gw&uQZZTCoo!9$eM&MRhbUNU zg8coT;?;z|efLgPS&5a2H7z=AB_N4Ak&y8H9b|=%x{`L&qoaQpUL$^37Z1#F6!rzw zXx8@UByC!(-9b>{;T_buNR}G>H3N&pV$B9jF`v)Q+dqF&j)~!T$#DSCK!ATwROGXZ z??I;pm^W9ob1-7_yG>QwWnEOUo)Z956BU=37#kgpc>x?C3_P@lD4x02J1c= zwYBwF^js(%2ln6swPt8?HM8-3-P@`oO+Fj@{d*$Eo%H5R*g6Y->JPto@k#jeej_s_ z$MKH>`pFGhWv#C;he}ym!eMomN1B@YjOdAY`+UnX1hS!_b;B3;nQt)$>F<3sv}uR~ z;4EL<-nKL~T0(qQnhNEi9xZB+d%RR=s`E{>sP%_x5&tC3{X{ zyT7-X_^1E&Py547Rmppaq>|qvEjlWn4Do*uz>Bv*68a=gPU`MF!8(qO5N>Uan6F<> z@8%$rJWS2+fe&2Z=}e=CN6Y62WihN8*Hp*w^MSesMwJGEPp^T4|B%UBy_J7(a`IP4 z2i(sfBF1CTdet>b-RqeKQjjH>oKXr{i76kYW)v&fPnE$8RD7n7v5z55XK+1RTv)af z(Uj4!>n7dP0}|=d)8(g#JH_fH!VnMYQ&=c;BmVzn4xOgvrU(h}*MJReIXxvPDR~wn z3|5$5-D)v08sLySI}3IqL5W(<8WDARGvP{sn#ab*21SPdIzP82iU*5C72MfcVV?)+ zis%%p`mV*5E)1s*rTJh^0iE-htp5PiSb^1P|QxA@EAN=!X2f*$8ceM zPq;Z`kEBVY3GtNOTotSZKE1EL-Xor=Veg#Q6cqdp0|%_JW45Ag9tQK3R`VdP2h(xN z;2JCqoLpSwj~9F6S+mN@jv$F0#wC9`aS|{@hru5}Pv8`T|K_!MDJX~rNUMy@18Etm z;PY9%?~iu={L!;~fM}O(ZfYv>j_gUn^uY8 zWv_lZn=Ze5tE9wV?0aUzqu*bGawS~C8g_9dIXPs{+Ps~FepWHV-o_!JwMpW-Gt+e? zg#1rEaHPmu@7C2Y>H?V3=;#P^$VWz_)wc@4H?0i-1Z<8KKoIKkf0s#sBE4PSsH=ls z)?yBN5@&1gF-Wlkz6X8FlMKO&)SS+$rsjW)3{&Cw~tZ{CC@GB|8cLB1~~?us-f{3ewUQVjtP<0B(a%b!P| z)skfvGvi@qd^PVNzq=)htFg(z2Y(!D$Qc2ZAp(JotpvJv zeB>Topi-bk8}LAoF?2WwcOrZ^C7Us2TG7RRHHilV&z3ncBTOtuHFj#gj@f<|i_laY z$)Wz=t}FTViw>7F+d%hbm(N|U_8TQ!LGo}_z2eVOvDcexuZ~7L#}fY;pP;OwY-nE3 z(l9DK%(F@FpYS$2D2o%g2Y^Y)o)Dg%pOce9fU%dr!s24n@;fnDX zvJ0Sk<$QBl+BrjvV5w)Fr))?o|N8dfM{<@fPE_%yG_)75p7~&TS;1Kzx-<8nyYHH2 z581P>Kq6GEa>c15AuSD94VXq6Asq*3IqG6$ zR@TzGIvzxw>sbWW<}fM^O%CAS@IbM@d`U$?@rsiZ4%fQ~Am$$~teZBPMMtD8pwb;z zkq}+D zpiOkx1}Ez7#s(MI(LgIhtPI4FrDXw#R7EPGkToYi|7dUTM|pY1nrPW?%#euTjPy>9 zN9bY_Ebxkoyn){CaJf(YG~EGq2l#PUL{+SN)i-vCxV-E&B0MT_FER{EdV08XUXt=Q zFIn@u1@Nf3f%>+kMB&-d-(NpUZV7ZvFdG9qXr)J_WpkaE|Ru@w*8fA?0tq;*we`@oSRpUqlnr5U_wZNzrxqsx<-8hGk5 zs;b^N;Oq#nt;n$kKQbK6RRNx@0_-e%dnwHhM?c}l|M1}`6gw1!m=cd(lS4*7-@%!z z`G1S3saKo#-?>fDEi*c4er$9*$3-Z!vG0nADXonsj{ok4O~?KI{YLk7QINpLW0xbI==vOpWLSbti9v&VWQ`OL@`TpH| zOe4EB`2jNl?*KyJ>BFcy$lM^BelBHb(ZBGHsG9!0vc$;elm{j_HG|cUUi z@Ag`-*Yl+&V#;##2b1kmlt({a=^OvqT|`1`){is(NYPcx&l6QMM>RtTbWBVYsW{;P!yUe5keC83SJ*^0F$S!$OOSNIznG=rjB0cQav$F%_b6pj3V2|C4K9C8A0XxoH_&ik6yXwaek61>r zRC(w%2JRciJ&SCd3-}3)8fE^$!3Ak)w_jT&F^hq29pWzFdxqDN|62Y|PhV5&_ne%7 zmc^bP!#{l)se&76pp4C^i17(+p&2$EVyn3*kf3f+!x}Cw zpc=nsv#i7;JpfxU01_ZFlmbItnyL{e2}>N=bHd;lB}MY-jGWC4*=)fS-pw)I{gb<% zh&;ry`m>`CC(b*+ah6+~n)lBpjD<&$5T6ij&CIZHaPD}*B0wGtHUwEX=&Q=mO4DeK zJ?D0G@E*jjPQ63Cfmqh_RT;^C=GeDJl$X{lO!&BCV`{E$epRa>qj_mQJ~{J0T-VnI ziH!SY6WDS}O0aU6QPJ0MDJe7HM`_o5Fa=0?A3O*M(%p3c zX#weuBaNhiAkrlv3QD(hmvl%;2`JqmA|Nf2(jX`z-66lto%ybrS!?*ibzNNL_`c7x z>l0gFPVSDeF=@!Caq}aKX(1Y}d>UX`X&f8`7zXGc>Z4{@UUW1iz4&|o6Q_(zD`AK% zQ|Vv%j@K7DXJ@JxhEh^56cv{Qt(cnriLw2Ur^(8?;PX^F$GPZ!I4m1yLL$)+vg3*x z&!NzB0r)mHR_+<|T#X&&iLZ{s1M-G2w~jx@WG3Yzt zn=P9ye509wZp==Z?99NBNZ^GA7`hlUUqzb2=}z`uRu+(MxNZdcbKfEKLTfj>@IYYi z@0Oh9Y-Zq0GKfL*_O_;G?3GwmGIgX57+IRm=u1al2Z=09YhiRJDk4HbMg~dD#?}@R z1&no4x?>1`OqWE2QGe}iV30}ywE5`Hsrfl^Vtjy79&Hm1Ju|&hElSUk67fL*>9x9= zv{)W37tiL9zRTG&Yq3j?-0sCtV42XVbPg^wZW!@))?3f%NKZfRyMg>k*_FvCa4 z{g|j7RV$RFk?_-?;(IL7&95}>uJ&iozwU0j zHxVBk5;OE~+Z6HK)%8+EGQADvTcFJ)!p1PTk-`)k!hG9o-WW-1CLu0vX=UYec6dun z%*yqJ3sV z32?a=BpSj}?2|&_?CNZNLbJk^|-9I-a}XYOD9KHK0srGnp~4B z3bU{j4Gc39qBOoWxuXB%mD$`hZEcM^ImtU|@&PW3fUq#I8V5Vg|87Nkf~=-+eI2|e zSmu`M_7`?Ms;s<=%W6J;+}Yhlx$Gb-K_U;U8x$ibz@khW=`3psODso*he4!WR#qlO z`u34s;{Rt5y=8?Sobulk`c;lISnEQe(BAna!8H4}_qTmhZ^XoJeP+sEPP0fX5>}VS0Z@t)RlL zaOMqG-_KJ9x+b_5KwvoxAygmA(rDF`F{=04n54rD>LX-`Jk{D3L>_Hz%~u1!@*D1w zbMaiaI~b9mgK*ssSUk(mgBNd8@q+oUmzNjDH6#lQdPLVZgTY4-+c_a6+`fIAjcs*r z?efs+#d9YvJDXqWX*9QHwV>k;)CEInX=y12M_XGOV&dET zZEEl^q3T+>m$kHHwtk62$GEU_4E4{84UUFu5x082qJVNOJ9{hVF8bcGtLj!WPfO^9 z0xtu@Rw#DK0O~C6{~xFcWj!9vmUgcEcyh(*zDrF0lage8bL0H<_dRfB01Vr|%G%*@ zlm3ENb_9w60bd{e7at+_K6*s8^yktaU_a>ih{HYuPYqUz-*f&G7S`N+4$diH-2ttk zqTMa?H)!Dcbto6}>P|m+NoGxcL`P`yNjOx9N1h~>UOZ$^yji4P)cq`sKFV(}OS2SF z8c9g~9|xPs<$mdHCTFv?K`hZ{cT)ulpsq=?mSL3j0hH|G@NarXhM}hB;D_3GM!=2* z^CP%8xItE5wS++2M#0F)NKb!Jm6!jY=BM(>bmB)5yC$p{Jrc5w&2^F_^10;3m^ZIW zusHbc7|T?9t1!nyqmJA9ci_YVo(e8AIIso#^uSjgWwA0|ppM4G&8-d^V^q`m zXLvZmLP8P}5}<;GiScB&eLa8h%fJN2$1x*qXgTS$ZRgmlU(_>>nU1r8D9yd8SQj(KJ%~QO???-vVGG>^i(bLhD zgPNsAqg#4K{;Ne(wLJaJS1(h#L(80;?)F>VyN4K_d*`rdCST(%*dll*6Q#-;UzC!v zRb{=uP}$to&%-HUaNqEJ;xO6NJ!1rYC9)M3lLOP6yw=X%{_53jFTSp?cQZ1|>ItOd zmh%RG5pa270jTu!zz%dGdU#Z3Rse|Z@8exfR=(?3ho&bd2jhfjf&jSk!*fCgK0fAb zlXQNCKi6k}G*+~=8i_bgwLCads@3=M&hqBqSxlmp%X8J6(s-8;Zc~GBBVy z;hg&RP2jmViEJBK*uW6|Xh=5K%uMLM7@7URK(@4d04k?edRhcaIZDSuXHZA=nJNMr zzCVxBwFYaS{}pWV5Ap zb(A5UU|9%R7m^y6K*oBpB6#J(enQ}td3s8Ar=0$y;|84|l%UGc@+m1j)YBt0wEo}Z zx^wCI{yaK8HC4SG7{)&zb`cAf6iJLRnc;t<@rL%kh~X2bR~VA8rCT2u=MH62@1kMU*mClF3VRXJbyXuEP;Zuf*`HLA^p`ibwYoqg#V>HRgb7ajdzYu-~)Vb}oMY?4Pmo{IeDf5*_UoMG<;~4z&#M)UfC0KcLJPu%{{Ot~a8v4in4JUSxc3tS8mEeX?jz#32wW~t z{|^lTwGUr3_&vsaUsLlctgGTxvC**E$awB>DOp|;ju8f$KU1hKF-NYp0!AW7gxnO; zKh~mEc6Bb1*~G8+T5Fr^>JIf_fAgM{hg+uepyzmb7e5aZ(?Wl$AWKu&edl>_B^Uzc z4%`-S3;HmW@ckT|nE(uOYf%2X*sS(Rms~egBTlf6p{r^Y`nu z0HL`0FHY;BtgZSy=%XBCr`mg|ue zeP;RKASY?z%*iozyAFe)Y_%JN!2N@ELdNT^aYCrCs2r z5erkP@x`oJS$!#gpZF{C60BgL&gD)1v$2tpmR7?5tv5q=z}w&cpo}B+&6}|w)?0=n z%x0jP`I(<mcR@OJ{ix0lJF7>S^kKv_Go&I zsHnocJWG1)4i|?RH({=?Jw3lbNTEh@Y?qXp+F&!13niwo-T3)#AD`1f9|MAui2Uy(#DspcRu9B}lP1MT`Avnet0C<$Bs#Cjku9_=6#dI7!7X7MK!1@A`SaNCRgn4E;-+Epl98+qh? z2PQc4&F+Gb`^Ci@8XFB>GE{Ip-CA7*e*Dher~Nhb0kbQ;HGD=zHbwlE)M?iheB#J= zgOG#BnwvG)NJ72}ZMJ*m?|gZLL}fh>)|&*adL)Pf#y(693R-P@c(CeRFU`$`1vZTh z4ObD3n;Ul(NMh94Lv5~G3`V?VTQoKeT%jkw8(-ZR8Ntpm{&&)sOC53DZoKP{fRtG% zQMdu^&!?-Ls{_mGOBc|#V791z{rW;&+=_q8csCH0vlf5}yFaqBvToeC@p-Pfu&}$U z>nF^Gfo=@tlb~{Pw%jJJ(LJ4Sa|2PWZXeTlL~K1ySHgbur=oJ6U-wpOA4BBIEbla( z$k)niY_J6md&ssqe)?omMP7We8o@Uh6bwsLVGvwGS|`u~aMk#DZFTj1V`EuaSz}|f zgJ}envjXOAeV&If$p6(`#PqH-BxFU6jzFG+%%JtcSiM#+!VfQ`NCw z&xzuA;hZa$@R}G!iNm|0HhHrh!&b;(_chkNcN#1L&-m;6S5`Fol8}KQC;9zS!ryhS z{)IWnmx53*nKP7HAIM@l!u0(O%~5Y}gAb?{?IvKr$t%Iv86IycFW-%hPK+vTeR42I zaZMy*soE*PK0ty-f(Z44DzZgho?n1hW5D;{ZwvdGk#QH`F}=nptEIrkfM*DxgSM{j z*ZzK>KHglZMMMfZJtC^g|1fO+&kL_JDUG+K{@;?H16MlNEiHZKz|Ft)*16`p)1E%r z7Z*9zcc?zGwH`b)Pz{SN=k1VxjVyD1(c9Y(B#WWJLALcQw+n?pZP0tZ?x4EBM;>9K zlip&s`uND3Ta89DbA4g+8JxQM=ZhHl_?!w$kX>{PN{VvpCGCz_msRr`9z1^X_`?(a zx+rz#xKR6*jrD5-wga&QeAgZetv!q4s0aG*(!pGO-H^T+G!BS zj<^fc3fyaqnLNN{kARMw(lXJ)Y^Ck{(S_VA;T<69Sx8A6nEbYrq5 zk8-y7$L}Jpy=ZLAh>W5&ZarT~(DI>r6?CGW3@rO&6RKKBkB)5@NwL^yZq9f*M9#ZS zTT7PAtWStWP1nCuK7dcX?kdx24l}H+Lh+3Z%QZMXX@sJLFAscg++NK3EFE_ehn-W* z##Y?b6~0>?z8tl5)PePMq8tqHC@3lK6@MR@SqDJ|44eP{{rh=y_(lUC)%6kPCBTUR z&mM7ic=7~--%UN8-Q;Ya({DqB$m*58n-Pb2jjU$aL%7+#Z7ZHKF%|jmy(A>2y}NL7 z%`rOL@o>*<&s+fQ1s|5Dc`4z^>FKb=si~<+T1skZc{#^c43UTA3Iz)DqsNcACHS~P z8-86J;j?Nt)@*h~9L;&_wXglq{MgcZB9XdZ=iBq1{k<^dL@ZJ9@8_eiVu*bI+1XI- zCD|nwQpmF-z^=ylED+Tw8JPELAdeDdm~rHteA+(MZ|eI(B|n_!#xa=w-6oV2c|?M8UgvE^C8;P&2D%!ckNDGgW2HL%|J!`_?V!x;0)JsVjFU zX?FJ&MEO)zXKg;ib#TzsOWu4rJFDMBp4jyyN{33%&GZlE-O#5`?UdQrhdx%*S+e>O zP2}adzJCm^qCQ~G1||&nM@|GG0R24&*8#9fYi@1^0ht=J3PKJlKr1UNz?RwqQgVfd zpJio@4)iNszAbQGlkqs#jw?x7%r<>@Hi6GK+g80iO`sUQ)Q8Sz+)|P{y76k{kI#X3 zVC-6&uxw;g@t)tA&{Ib7Y&>NtN$EQe<`C z(+Qu6i{oBWefH=%sgmONCqmm#=f4c4WtT-7^gc6X33Oo)`;hQ9EzFMtU=aYi!E6nn zOg&OFawv9GcWrk8f(XoS!qe>S*QU-MfLg#cp-#>CJ>S^%+H`H zijO8j@C!k_h9(SjPa`L;k&$$iymZgx?>0;Dq$+4mCi-nzyhwR@Iu?AmXjZ#2L9Lt(`G_h(<5)wAM~;wcHqCTJb`^mDBz+uAi`3HSEq>uSI7 z+y7fXky%8ibhbPd#5KbqLhb$C7-VO&#dEI4RM8mOYODBA`H7!LMC7oOP}a-g42C9> zl1<>HM@g9s_KrFahtLp2D%ICdPY?dUo?enn#)tC#SGSa&Uemg8L?Q17ciP&(9BtpUt)2 z;93AiHb9?-k&;&C<7Fe4 z|3pzXoelUDjQhrC)Q$X!7m~Edm1?)0)X7H=goVReu$bCi_$u;Ks7Of@;^X6UoTt8g zQ36p~NeP#^`7+FmZr!?7jClh=mDGV_)++ooJ}Mz0A|xceaLvT{rjvl+L{p;~Rqcq= zvTN47H_1`&&rf}95^P5&WC?OPmN<4DA|t2iHnC_Psadj4UEAywM1f@ZWE}t zz_!-qNQ62_F+!=b?FK@wwxpy4GIB6S=1mI4kt@2$L`65hJ&+J# zvr9a|4JTu!7~mIxzZ?lEspCxj&Qcfdh`WwrFH9Mq6~6On@|8u|9E6SS$z)Jk(0@0Y zk0!#IY)U4k<7tpiLR+L+U;i~)=-k*C5D;+q_s5a#YewJmodhizd2D)FA1}b_bqR?O za;z_K%u4KR-hZg2xag7Vd|Te48G3`=#wPz_CnU=ax6n_jo!`D7^T}e1=SvA`LBYMT z>p)V{)YLTO)wBICMz5r4bMy}lfm0lO^$rbDVq@eo4)BXs@Nh359dZ?O>X30}P!NPE zOw*E8M|H%SwwqW)V_gr%#C&RN`|$q#=7aIa-o7vQRtG>Ows&$KBXjzzFxw~oK_CL5 z3X{rqPZ*fqB?w`Ws3@%%TH6D5->Jy>*hHJYf!aO2WRDb+`%YDr_vw9Vw0&eF4$k%1I*ka-BeNl@4-KN^Twst)&4G6|h?vci+&|J-SNHVEU zRoD``_&%eDj!n;Oh&dR5%Y%u@0#tO0Yv6a~U~dn6C}95U^CU6fUAS(NvA((4>b$0@ zruH?8Ruq;BW7(VkUU*wjrct0f243}^`P#+RH%K||uY>YbAn4nX%00cp^9zojN7w2P z%FA5^1z=AEaHkc}tKj+pGX|P1-MJi6Cu9CY6RL-g9=Sn%+|$zorMH=5v~_z0gQ`X4 zDYx>77AN|_hl}XXU&Q|fVq(%0;=y>Xtf**sbo35(O>OP;^t6o6`6TFUp}*48(;L5i z4Uz9ZUdX->jt+6O`u|m)|JED%HZhUh zYXOY!%11oP%F4x<=upji!T=QZGv2v#r@@dHrJ|@9)b|r8DBuVI5eBARJ2BtznjB># zd=rSgOWh78w@Sa1DuZP80ZmlN+qX)2s(ZIsL;4nn3$-dL%DTAaaWDd45)D-uyfRB` z>!BdbSwu5+APPEe;O@y9ohXCMs&moC&Tb3VwQ`Wv*45!+1hjVNoVh<$;$5X$HfBj6 zWoHijEFMkBSYeb&M{8$mYXH8$1-f@osO34z^94HB<-R5i#zAz@+g zOR>+tF!9)rlXAAdM zE+%FO=<62rR=yXFzkn@*I(2{A8UP=Y{J|KSYvC!hBUX=6;2SaBovy!txv3MoL`gxn z(rSWt{I_l%0E9Q`=@CS_4y&SjKLAN+e;32`OwdV}O$* zMi(un{1lAjq}iG(ce|>r-O@pw35QiRXAU1B7d&Zy2-YpY0}j{Hc?9NWaV*L}@KL}| zx%;l7q5^0}z-a-I!3Oi2>v)|8j~^RL6Syid`fNzbDx^8?)HQtfw%V_$sV2L0j7R`N z+S<>by%tEUl~%cOY0tyR4ioUbFr!jpj%#jdftteB#%8i&3i#-m85u;Vf`Wn%%M+n3 zY4|a#qg^(wrm?*%uJhh?U^5J4OZ}c;IPvmPRt^#CCdSAsFV9L(=PsR}xSuLT?l%E*lC#r4 z6%d^xVzwm3#DK8=>DxD__AfwB|MKMvIXU@VwkpRU9)2EpZ))gKx>0i<;sM$kYIEE9 z)ZL9mVvP90?JxHngi3cp2*9k8IS_W!L^H~^0u=R z@BGHN!3uai0=e?{@2yTM6K48YK0xV!p$TWv-q!Zp_&5O}A>XZAaJs$z1_3WVUz-DD zm&L`!x}l^h1V)o8#>U21KL;B!$O?pE`>9HJ39v0hOZK9=vNFEIq}e6*Dz(DY6&opT zxCseoYY`t0&w>gaUcC|Q?ttV9suj4RP$=A{iUc!vm`B~#^P{1n;xVizLc+!7TvYML zfX!M9mg$y11g{}N4|ad5!%qf>!u|c1fx{pYi-?E-%;@I7<0jZ~j|%Oz01m7gzc!QU zF%RXG&#d1JWe-F8z~Sz$!3Pt0C8g_O3ZKqCFD#feH%1+cI7|l;0ZY!t-aheezTDFG zGveMxYYYStL{$bUw_#X*-fIDYRor&7ErM zHT)D^SQP{a8UQ2ETf$H;GjkR+PGE2*06PkZXB+@Gf#5C0um!W0z!02#^eu|9@87?8 z-(*32kVb7&FfI)DkbwYAyE|M*s*9uXe?sk1Zebe`vp+QH6_ zJa(q6FT?B1hA&KB57R-z0_;${PB;cCy(SS}im$xF0tmyOG`kV=Q6j!jxIem%hM+13 zHKuuYG>nk|r-9W4gK5GMU1kSm%j$`M(8j9dL(&3Nk;v1U3DZfS603nPw%#Yg3)pg! zm5Qxq26fLeD=VFVB??1K))&4^I!@oqlSM#Hp{2kP1<2kL&6FZ*R&IAgV;#$5o_MS69#ZUV39lFHf=(T0-|_ z_KA|iaq`0=?5GA-31k&GC!p=i(=Cqo z7&L0%nT>BRN-sm&nX<3V&&I@tiW#=i#?kFZBK&f$x=X0CK)lAs7ju{G?BoQ7k&IGq zu~0Rfj)0K0V8jN<=>WOK`%o|?Wkg<`z|auBUD#a9<^`V>0LgcEQ<=$d@^W+Y_Y~wp z0Zfv~j#+sNHwy0^Q2nZgWYWPC3dBdjrto4K8XACtwbi^A{qow|5u4J7Whnl7(d!+q z#{2}T9`G0TSnL9_ON0Whq#LI^Kik4AGx)~34}pgdc}%yY%f=+QZMOn#ks-#~-aZ3Z z@NeE+c}#FB2LP)Y?jnE`x;{cw_$gbsUub2r!R|7GZ#NU-C*&_Ma)EQ!1%CsZK&s(` z2Oz$=m5PB-LTph$z=4{>k{%cFwheky*#8Ci0^F2E*g^|g2S%d;VV_4vh>dUI2l;fz z!b}4Qgc$SQ9d4)sU9eYz?iC&ZP?E3seJ|#^OLCRSJPv!6ZAvMELEf`6wO2;2zO~d%TH@KrFvG-`|EA1bqMfEA;>O_c3{sf6UB8 zuH?bnN67K~_ka5Wy*%Vnp20&2fk1qY&z|WdeANyADW$3)e?K|UGzEOKAaxO8Lv*E~ zr3Dv-UW;Q#aRefg8%*mC4i13#odztbC=7@(S6|!jj(tDrAng~wrL0{2UR6<3p&Vrr G@P7a*h#wdL diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.pdf b/Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.pdf deleted file mode 100644 index 763954a9f16c546ff4b158e4b192ed4e93468217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12389 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 U=kP1mutQ?z1W-_j%83E~4_3xJ!2kdN diff --git a/Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.png b/Triangulation/doc_tex/Triangulation_ref/fig/insert-increase-dim.png deleted file mode 100644 index cbe55f6ea2b368ddbe6141d40b652946c42e3730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30236 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 z 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®- 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\\ -\ccRefIdfierPage{CGAL::Triangulation_ds_vertex}\\ -\ccRefIdfierPage{CGAL::Triangulation_ds_full_cell} - -\ccRefIdfierPage{CGAL::Triangulation_face} - -\subsubsection*{(Geometric) triangulations} - -\ccRefIdfierPage{CGAL::Triangulation}\\ -\ccRefIdfierPage{CGAL::Delaunay_triangulation} -%\ccRefIdfierPage{CGAL::Regular_triangulation} - -\ccRefIdfierPage{CGAL::Triangulation_vertex}\\ -\ccRefIdfierPage{CGAL::Triangulation_full_cell} - -\subsection{Enums} - -\ccRefIdfierPage{CGAL::Triangulation::Locate_type} diff --git a/Triangulation/doc_tex/Triangulation_ref/main.tex b/Triangulation/doc_tex/Triangulation_ref/main.tex deleted file mode 100644 index 36144d6dc16..00000000000 --- a/Triangulation/doc_tex/Triangulation_ref/main.tex +++ /dev/null @@ -1,41 +0,0 @@ - -%\newcommand{\sphere}{\ensuremath{\mathcal S}} - -\input{Triangulation_ref/intro.tex} - -% Concepts - -\input{Triangulation_ref/TriangulationDataStructure.tex} -\input{Triangulation_ref/Tds_vertex.tex} -\input{Triangulation_ref/Tds_full_cell.tex} - -\input{Triangulation_ref/TriangulationDSVertex.tex} -\input{Triangulation_ref/TriangulationDSFullCell.tex} -\input{Triangulation_ref/TriangulationDSFace.tex} - -\input{Triangulation_ref/TriangulationTraits.tex} -\input{Triangulation_ref/DelaunayTriangulationTraits.tex} -%\input{Triangulation_ref/RegularTriangulationTraits.tex} - -\input{Triangulation_ref/TriangulationVertex.tex} -\input{Triangulation_ref/TriangulationFullCell.tex} - -% Classes - -\input{Triangulation_ref/Triangulation_data_structure.tex} - -\input{Triangulation_ref/Triangulation_ds_vertex.tex} -\input{Triangulation_ref/Triangulation_ds_full_cell.tex} -\input{Triangulation_ref/Triangulation_face.tex} - -\input{Triangulation_ref/Triangulation.tex} -\input{Triangulation_ref/Delaunay_triangulation.tex} -%\input{Triangulation_ref/Regular_triangulation.tex} - -\input{Triangulation_ref/Triangulation_vertex.tex} -\input{Triangulation_ref/Triangulation_full_cell.tex} - -% Enums - -\input{Triangulation_ref/Triangulation_locate_type.tex} -