工具箱相关
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

NetTopologySuite.xml 2.8MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362
  1. <?xml version="1.0"?>
  2. <doc>
  3. <assembly>
  4. <name>NetTopologySuite</name>
  5. </assembly>
  6. <members>
  7. <member name="T:NetTopologySuite.Algorithm.AngleUtility">
  8. <summary>
  9. Utility functions for working with angles.
  10. Unless otherwise noted, methods in this class express angles in radians.
  11. </summary>
  12. </member>
  13. <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiTimes2">
  14. <summary>
  15. Value of 2 * Pi
  16. </summary>
  17. </member>
  18. <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiOver2">
  19. <summary>
  20. Value of Pi / 2
  21. </summary>
  22. </member>
  23. <member name="F:NetTopologySuite.Algorithm.AngleUtility.PiOver4">
  24. <summary>
  25. Value of Pi / 4
  26. </summary>
  27. </member>
  28. <member name="M:NetTopologySuite.Algorithm.AngleUtility.ToDegrees(System.Double)">
  29. <summary>
  30. Converts from radians to degrees.
  31. </summary>
  32. <param name="radians">An angle in radians</param>
  33. <returns>The angle in degrees</returns>
  34. </member>
  35. <member name="M:NetTopologySuite.Algorithm.AngleUtility.ToRadians(System.Double)">
  36. <summary>
  37. Converts from degrees to radians.
  38. </summary>
  39. <param name="angleDegrees">An angle in degrees</param>
  40. <returns>The angle in radians</returns>
  41. </member>
  42. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Angle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43. <summary>
  44. Returns the angle of the vector from p0 to p1, relative to the positive X-axis.
  45. </summary>
  46. <remarks>The angle is normalized to be in the range [ -Pi, Pi ].</remarks>
  47. <param name="p0">The initial point of the vector.</param>
  48. <param name="p1">The terminal point of the vector.</param>
  49. <returns>The normalized angle (in radians) that p0-p1 makes with the positive X-axis</returns>
  50. </member>
  51. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Angle(NetTopologySuite.Geometries.Coordinate)">
  52. <summary>
  53. Returns the angle of the vector from (0,0) to p, relative to the positive X-axis.
  54. </summary>
  55. <remarks>
  56. The angle is normalized to be in the range ( -Pi, Pi ].
  57. </remarks>
  58. <param name="p">The terminal point of the vector.</param>
  59. <returns>The normalized angle (in radians) that (0,0)-p makes with the positive X-axis.</returns>
  60. </member>
  61. <member name="M:NetTopologySuite.Algorithm.AngleUtility.IsAcute(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  62. <summary>
  63. Tests whether the angle between p0-p1-p2 is acute.
  64. </summary>
  65. <remarks>
  66. <para>An angle is acute if it is less than 90 degrees.</para>
  67. <para>Note: this implementation is not precise (deterministic) for angles very close to 90 degrees.</para>
  68. </remarks>
  69. <param name="p0">An endpoint of the angle</param>
  70. <param name="p1">The base of the angle</param>
  71. <param name="p2">Another endpoint of the angle</param>
  72. <returns><see langword="true"/> if the angle is acute.</returns>
  73. </member>
  74. <member name="M:NetTopologySuite.Algorithm.AngleUtility.IsObtuse(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  75. <summary>
  76. Tests whether the angle between p0-p1-p2 is obtuse
  77. </summary>
  78. <remarks>
  79. <para>An angle is obtuse if it is greater than 90 degrees.</para>
  80. <para>Note: this implementation is not precise (deterministic) for angles very close to 90 degrees.</para>
  81. </remarks>
  82. <param name="p0">An endpoint of the angle</param>
  83. <param name="p1">The base of the angle</param>
  84. <param name="p2">Another endpoint of the angle</param>
  85. <returns><see langword="true"/> if the angle is obtuse.</returns>
  86. </member>
  87. <member name="M:NetTopologySuite.Algorithm.AngleUtility.AngleBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  88. <summary>
  89. Returns the unoriented smallest angle between two vectors.
  90. </summary>
  91. <remarks>
  92. The computed angle will be in the range [0, Pi).
  93. </remarks>
  94. <param name="tip1">The tip of one vector</param>
  95. <param name="tail">The tail of each vector</param>
  96. <param name="tip2">The tip of the other vector</param>
  97. </member>
  98. <member name="M:NetTopologySuite.Algorithm.AngleUtility.AngleBetweenOriented(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  99. <summary>
  100. Returns the oriented smallest angle between two vectors.
  101. The computed angle will be in the range (-Pi, Pi].
  102. A positive result corresponds to a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/> rotation (CCW) from v1 to v2;
  103. a negative result corresponds to a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> (CW) rotation;
  104. a zero result corresponds to no rotation.
  105. </summary>
  106. <param name="tip1">The tip of v1</param>
  107. <param name="tail">The tail of each vector</param>
  108. <param name="tip2">The tip of v2</param>
  109. <returns>The angle between v1 and v2, relative to v1</returns>
  110. </member>
  111. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Bisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  112. <summary>
  113. Computes the angle of the unoriented bisector
  114. of the smallest angle between two vectors.
  115. </summary>
  116. <remarks>The computed angle will be in the range (-Pi, Pi].</remarks>
  117. <param name="tip1">The tip of v1</param>
  118. <param name="tail">The tail of each vector</param>
  119. <param name="tip2">The tip of v2</param>
  120. <returns>The angle of the bisector between v1 and v2</returns>
  121. </member>
  122. <member name="M:NetTopologySuite.Algorithm.AngleUtility.InteriorAngle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  123. <summary>
  124. Computes the interior angle between two segments of a ring.
  125. The ring is assumed to be oriented in a clockwise direction.
  126. </summary>
  127. <remarks>The computed angle will be in the range [0, 2Pi]</remarks>
  128. <param name="p0">A point of the ring</param>
  129. <param name="p1">The next point of the ring</param>
  130. <param name="p2">The next point of the ring</param>
  131. <returns>The interior angle based at <paramref name="p1"/></returns>
  132. </member>
  133. <member name="M:NetTopologySuite.Algorithm.AngleUtility.GetTurn(System.Double,System.Double)">
  134. <summary>
  135. Returns whether an angle must turn clockwise or counterclockwise to overlap another angle.
  136. </summary>
  137. <param name="ang1">An angle (in radians)</param>
  138. <param name="ang2">An angle (in radians)</param>
  139. <returns>Whether a1 must turn <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/> or <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.None"/> to overlap a2.</returns>
  140. </member>
  141. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Normalize(System.Double)">
  142. <summary>
  143. Computes the normalized value of an angle, which is the equivalent angle in the range ( -Pi, Pi ].
  144. </summary>
  145. <param name="angle">The angle to normalize</param>
  146. <returns>An equivalent angle in the range (-Pi, Pi]</returns>
  147. </member>
  148. <member name="M:NetTopologySuite.Algorithm.AngleUtility.NormalizePositive(System.Double)">
  149. <summary>
  150. Computes the normalized positive value of an angle, which is the equivalent angle in the range [ 0, 2*Pi ).
  151. <para/>
  152. E.g.
  153. <list type="table">
  154. <listheader><term>Function call</term><description>Result</description></listheader>
  155. <item><term>NormalizePositive(0.0)</term><description>0.0</description></item>
  156. <item><term>NormalizePositive(-PI)</term><description><see cref="F:System.Math.PI"/></description></item>
  157. <item><term>NormalizePositive(-2PI)</term><description>0.0</description></item>
  158. <item><term>NormalizePositive(-3PI)</term><description><see cref="F:System.Math.PI"/></description></item>
  159. <item><term>NormalizePositive(-4PI)</term><description>0.0</description></item>
  160. <item><term>NormalizePositive(PI)</term><description><see cref="F:System.Math.PI"/></description></item>
  161. <item><term>NormalizePositive(2PI)</term><description>0.0</description></item>
  162. <item><term>NormalizePositive(3PI)</term><description><see cref="F:System.Math.PI"/></description></item>
  163. <item><term>NormalizePositive(4PI)</term><description>0.0</description></item>
  164. </list>
  165. </summary>
  166. <remarks></remarks>
  167. <param name="angle">The angle to normalize, in radians.</param>
  168. <returns>An equivalent positive angle</returns>
  169. </member>
  170. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Diff(System.Double,System.Double)">
  171. <summary>
  172. Computes the unoriented smallest difference between two angles.
  173. </summary>
  174. <remarks>
  175. <list type="bullet">
  176. <item><description>The angles are assumed to be normalized to the range [-Pi, Pi].</description></item>
  177. <item><description>The result will be in the range [0, Pi].</description></item>
  178. </list>
  179. </remarks>
  180. <param name="ang1">The angle of one vector (in [-Pi, Pi] )</param>
  181. <param name="ang2">The angle of the other vector (in range [-Pi, Pi] )</param>
  182. <returns>The angle (in radians) between the two vectors (in range [0, Pi] )</returns>
  183. </member>
  184. <member name="M:NetTopologySuite.Algorithm.AngleUtility.SinSnap(System.Double)">
  185. <summary>
  186. Computes <c>Math.Sin</c> of an angle, snapping near-zero values to zero.
  187. </summary>
  188. <param name="ang">The input angle (in radians)</param>
  189. <returns>The result of the trigonometric function</returns>
  190. </member>
  191. <member name="M:NetTopologySuite.Algorithm.AngleUtility.CosSnap(System.Double)">
  192. <summary>
  193. Computes <c>Math.Cos</c> of an angle, snapping near-zero values to zero.
  194. </summary>
  195. <param name="ang">The input angle (in radians)</param>
  196. <returns>The result of the trigonometric function</returns>
  197. </member>
  198. <member name="M:NetTopologySuite.Algorithm.AngleUtility.Project(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
  199. <summary>
  200. Projects a point by a given angle and distance.
  201. </summary>
  202. <param name="p">The point to project</param>
  203. <param name="angle">The angle at which to project</param>
  204. <param name="dist">The distance to project</param>
  205. <returns>The projected point</returns>
  206. </member>
  207. <member name="T:NetTopologySuite.Algorithm.Area">
  208. <summary>
  209. Functions for computing area.
  210. </summary>
  211. <author>Martin Davis</author>
  212. </member>
  213. <member name="M:NetTopologySuite.Algorithm.Area.OfRing(NetTopologySuite.Geometries.Coordinate[])">
  214. <summary>
  215. Computes the area for a ring.
  216. </summary>
  217. <param name="ring">The coordinates forming the ring</param>
  218. <returns>The area of the ring</returns>
  219. </member>
  220. <member name="M:NetTopologySuite.Algorithm.Area.OfRing(NetTopologySuite.Geometries.CoordinateSequence)">
  221. <summary>
  222. Computes the area for a ring.
  223. </summary>
  224. <param name="ring">The coordinates forming the ring</param>
  225. <returns>The area of the ring</returns>
  226. </member>
  227. <member name="M:NetTopologySuite.Algorithm.Area.OfRingSigned(NetTopologySuite.Geometries.Coordinate[])">
  228. <summary>
  229. Computes the signed area for a ring. The signed area is positive if the
  230. ring is oriented CW, negative if the ring is oriented CCW, and zero if the
  231. ring is degenerate or flat.
  232. </summary>
  233. <param name="ring">The coordinates forming the ring</param>
  234. <returns>The signed area of the ring</returns>
  235. </member>
  236. <member name="M:NetTopologySuite.Algorithm.Area.OfRingSigned(NetTopologySuite.Geometries.CoordinateSequence)">
  237. <summary>
  238. Computes the signed area for a ring. The signed area is positive if the
  239. <list type="table">
  240. <listheader>
  241. <term>value</term>
  242. <description>meaning</description>
  243. </listheader>
  244. <item><term>&gt; 0</term>
  245. <description>The ring is oriented clockwise (CW)</description></item>
  246. <item><term>&lt; 0</term>
  247. <description>The ring is oriented counter clockwise (CCW)</description></item>
  248. <item><term>== 0</term>
  249. <description>The ring is degenerate or flat</description></item>
  250. </list>
  251. ring is oriented CW, negative if the ring is oriented CCW, and zero if the
  252. ring is degenerate or flat.
  253. </summary>
  254. <param name="ring">The coordinates forming the ring</param>
  255. <returns>The signed area of the ring</returns>
  256. </member>
  257. <member name="T:NetTopologySuite.Algorithm.IBoundaryNodeRule">
  258. <summary>
  259. An interface for rules which determine whether node points
  260. which are in boundaries of <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometry components
  261. are in the boundary of the parent geometry collection.
  262. The SFS specifies a single kind of boundary node rule,
  263. the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> rule.
  264. However, other kinds of Boundary Node Rules are appropriate
  265. in specific situations (for instance, linear network topology
  266. usually follows the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>.)
  267. Some JTS operations
  268. (such as <see cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>, <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> and <see cref="T:NetTopologySuite.Operation.Valid.IsSimpleOp"/>)
  269. allow the BoundaryNodeRule to be specified,
  270. and respect the supplied rule when computing the results of the operation.
  271. <para/>
  272. An example use case for a non-SFS-standard Boundary Node Rule is
  273. that of checking that a set of <see cref="T:NetTopologySuite.Geometries.LineString"/>s have
  274. valid linear network topology, when turn-arounds are represented
  275. as closed rings. In this situation, the entry road to the
  276. turn-around is only valid when it touches the turn-around ring
  277. at the single (common) endpoint. This is equivalent
  278. to requiring the set of <tt>LineString</tt>s to be
  279. <b>simple</b> under the <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>.
  280. The SFS-standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> is not
  281. sufficient to perform this test, since it
  282. states that closed rings have <b>no</b> boundary points.
  283. <para/>
  284. This interface and its subclasses follow the <tt>Strategy</tt> design pattern.
  285. </summary>
  286. <author>Martin Davis</author>
  287. <seealso cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
  288. <seealso cref="T:NetTopologySuite.Operation.BoundaryOp"/>
  289. <seealso cref="T:NetTopologySuite.Operation.Valid.IsSimpleOp"/>
  290. <seealso cref="T:NetTopologySuite.Algorithm.PointLocator"/>
  291. </member>
  292. <member name="M:NetTopologySuite.Algorithm.IBoundaryNodeRule.IsInBoundary(System.Int32)">
  293. <summary>
  294. Tests whether a point that lies in <c>boundaryCount</c>
  295. geometry component boundaries is considered to form part of the boundary
  296. of the parent geometry.
  297. </summary>
  298. <param name="boundaryCount">boundaryCount the number of component boundaries that this point occurs in</param>
  299. <returns>true if points in this number of boundaries lie in the parent boundary</returns>
  300. </member>
  301. <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules">
  302. <summary>
  303. Provides access to static instances of common <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>s.
  304. </summary>
  305. </member>
  306. <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryRule">
  307. <summary>
  308. The Mod-2 Boundary Node Rule (which is the rule specified in the OGC SFS).
  309. </summary>
  310. <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>
  311. </member>
  312. <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule">
  313. <summary>The Endpoint Boundary Node Rule.</summary>
  314. <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule"/>
  315. </member>
  316. <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.MultivalentEndpointBoundaryRule">
  317. <summary>The MultiValent Endpoint Boundary Node Rule.</summary>
  318. <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MultiValentEndPointBoundaryNodeRule"/>
  319. </member>
  320. <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndpointBoundaryRule">
  321. <summary>The Monovalent Endpoint Boundary Node Rule.</summary>
  322. <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndPointBoundaryNodeRule"/>
  323. </member>
  324. <member name="F:NetTopologySuite.Algorithm.BoundaryNodeRules.OgcSfsBoundaryRule">
  325. <summary>
  326. The Boundary Node Rule specified by the OGC Simple Features Specification,
  327. which is the same as the Mod-2 rule.
  328. </summary>
  329. <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>
  330. </member>
  331. <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule">
  332. <summary>
  333. A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> specifies that points are in the
  334. boundary of a lineal geometry if
  335. the point lies on the boundary of an odd number
  336. of components.
  337. Under this rule <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s and closed
  338. <see cref="T:NetTopologySuite.Geometries.LineString"/>s have an empty boundary.
  339. </summary>
  340. <remarks>
  341. This is the rule specified by the <i>OGC SFS</i>,
  342. and is the default rule used in JTS.
  343. </remarks>
  344. <author>Martin Davis</author>
  345. </member>
  346. <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.EndPointBoundaryNodeRule">
  347. <summary>
  348. A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule" /> which specifies that any points which are endpoints
  349. of lineal components are in the boundary of the
  350. parent geometry.
  351. This corresponds to the "intuitive" topological definition
  352. of boundary.
  353. Under this rule <see cref="T:NetTopologySuite.Geometries.LinearRing" />s have a non-empty boundary
  354. (the common endpoint of the underlying LineString).
  355. </summary>
  356. <remarks>
  357. This rule is useful when dealing with linear networks.
  358. For example, it can be used to check
  359. whether linear networks are correctly noded.
  360. The usual network topology constraint is that linear segments may touch only at endpoints.
  361. In the case of a segment touching a closed segment (ring) at one point,
  362. the Mod2 rule cannot distinguish between the permitted case of touching at the
  363. node point and the invalid case of touching at some other interior (non-node) point.
  364. The EndPoint rule does distinguish between these cases,
  365. so is more appropriate for use.
  366. </remarks>
  367. <author>Martin Davis</author>
  368. </member>
  369. <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MultiValentEndPointBoundaryNodeRule">
  370. <summary>
  371. A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> which determines that only
  372. endpoints with valency greater than 1 are on the boundary.
  373. This corresponds to the boundary of a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
  374. being all the "attached" endpoints, but not
  375. the "unattached" ones.
  376. </summary>
  377. <author>Martin Davis</author>
  378. </member>
  379. <member name="T:NetTopologySuite.Algorithm.BoundaryNodeRules.MonoValentEndPointBoundaryNodeRule">
  380. <summary>
  381. A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> which determines that only
  382. endpoints with valency of exactly 1 are on the boundary.
  383. This corresponds to the boundary of a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
  384. being all the "unattached" endpoints.
  385. </summary>
  386. <author>Martin Davis</author>
  387. </member>
  388. <member name="T:NetTopologySuite.Algorithm.Centroid">
  389. <summary>
  390. Computes the centroid of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> of any dimension.
  391. For collections the centroid is computed for the collection of
  392. non-empty elements of highest dimension.
  393. The centroid of an empty geometry is <c>null</c>
  394. </summary>
  395. <remarks>
  396. <h3>Algorithm</h3>
  397. <list type="bullet">
  398. <item><description><b>Dimension 2</b> - the centroid ic computed
  399. as a weighted sum of the centroids
  400. of a decomposition of the area into (possibly overlapping) triangles.
  401. Holes and multipolygons are handled correctly.
  402. See <c>http://www.faqs.org/faqs/graphics/algorithms-faq/</c>
  403. for further details of the basic approach.</description></item>
  404. <item><description><b>Dimension 1</b> - Computes the average of the midpoints
  405. of all line segments weighted by the segment length.
  406. Zero-length lines are treated as points.
  407. </description></item>
  408. <item><description><b>Dimension 0</b> - Compute the average coordinate over all points.
  409. Repeated points are all included in the average
  410. </description></item>
  411. </list>
  412. If the input geometries are empty, a <c>null</c> Coordinate is returned.
  413. </remarks>
  414. <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
  415. <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
  416. <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
  417. <version>1.7</version>
  418. </member>
  419. <member name="M:NetTopologySuite.Algorithm.Centroid.GetCentroid(NetTopologySuite.Geometries.Geometry)">
  420. <summary>
  421. Computes the centroid point of a geometry.
  422. </summary>
  423. <param name="geom">The geometry to use</param>
  424. <returns>
  425. The centroid point, or null if the geometry is empty
  426. </returns>
  427. </member>
  428. <member name="F:NetTopologySuite.Algorithm.Centroid._areaBasePt">
  429. <summary>
  430. the point all triangles are based at
  431. </summary>
  432. </member>
  433. <member name="F:NetTopologySuite.Algorithm.Centroid._triangleCent3">
  434. <summary>
  435. temporary variable to hold centroid of triangle
  436. </summary>
  437. </member>
  438. <member name="F:NetTopologySuite.Algorithm.Centroid._areasum2">
  439. <summary>
  440. Partial area sum
  441. </summary>
  442. </member>
  443. <member name="F:NetTopologySuite.Algorithm.Centroid._cg3">
  444. <summary>
  445. partial centroid sum
  446. </summary>
  447. </member>
  448. <member name="M:NetTopologySuite.Algorithm.Centroid.#ctor(NetTopologySuite.Geometries.Geometry)">
  449. <summary>
  450. Creates a new instance for computing the centroid of a geometry
  451. </summary>
  452. </member>
  453. <member name="M:NetTopologySuite.Algorithm.Centroid.Add(NetTopologySuite.Geometries.Geometry)">
  454. <summary>
  455. Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to the centroid total.
  456. </summary>
  457. <param name="geom">>The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to add.</param>
  458. </member>
  459. <member name="M:NetTopologySuite.Algorithm.Centroid.GetCentroid">
  460. <summary>
  461. Gets the computed centroid.
  462. </summary>
  463. <returns>The computed centroid, or null if the input is empty</returns>
  464. </member>
  465. <member name="M:NetTopologySuite.Algorithm.Centroid.Centroid3(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  466. <summary>
  467. Computes three times the centroid of the triangle p1-p2-p3.
  468. The factor of 3 is
  469. left in to permit division to be avoided until later.
  470. </summary>
  471. </member>
  472. <member name="M:NetTopologySuite.Algorithm.Centroid.Area2(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  473. <summary>
  474. Returns twice the signed area of the triangle p1-p2-p3.
  475. The area is positive if the triangle is oriented CCW, and negative if CW.
  476. </summary>
  477. </member>
  478. <member name="M:NetTopologySuite.Algorithm.Centroid.AddLineSegments(NetTopologySuite.Geometries.Coordinate[])">
  479. <summary>
  480. Adds the line segments defined by an array of coordinates
  481. to the linear centroid accumulators.
  482. </summary>
  483. <param name="pts">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s</param>
  484. </member>
  485. <member name="M:NetTopologySuite.Algorithm.Centroid.AddPoint(NetTopologySuite.Geometries.Coordinate)">
  486. <summary>
  487. Adds a point to the point centroid accumulator.
  488. </summary>
  489. <param name="pt">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/></param>
  490. </member>
  491. <member name="T:NetTopologySuite.Algorithm.CGAlgorithms3D">
  492. <summary>
  493. Basic computational geometry algorithms
  494. for geometry and coordinates defined in 3-dimensional Cartesian space.
  495. </summary>
  496. <author>Martin Davis</author>
  497. </member>
  498. <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.Distance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  499. <summary>
  500. Computes the distance between the points <paramref name="p0"/> and
  501. <paramref name="p1"/> in 3D space
  502. </summary>
  503. <param name="p0">The first point</param>
  504. <param name="p1">The second point</param>
  505. <returns>The distance between the two points</returns>
  506. </member>
  507. <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.DistancePointSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  508. <summary>
  509. Computes the distance between the point <paramref name="p"/> and the
  510. segment from <paramref name="A"/> to <paramref name="B"/> in 3D space
  511. </summary>
  512. <param name="p">The point</param>
  513. <param name="A">The start point of the segment</param>
  514. <param name="B">The end point of the segment</param>
  515. <returns></returns>
  516. </member>
  517. <member name="M:NetTopologySuite.Algorithm.CGAlgorithms3D.DistanceSegmentSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  518. <summary>Computes the distance between two 3D segments.</summary>
  519. <param name="A">The start point of the first segment</param>
  520. <param name="B">The end point of the first segment</param>
  521. <param name="C">The start point of the second segment</param>
  522. <param name="D">The end point of the second segment</param>
  523. <returns>The distance between the segments</returns>
  524. </member>
  525. <member name="T:NetTopologySuite.Algorithm.CGAlgorithmsDD">
  526. <summary>
  527. Implements basic computational geometry algorithms using <seealso cref="T:NetTopologySuite.Mathematics.DD"/> arithmetic.
  528. </summary>
  529. <author>Martin Davis</author>
  530. </member>
  531. <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  532. <summary>
  533. Returns the index of the direction of the point <c>q</c> relative to
  534. a vector specified by <c>p1-p2</c>.
  535. </summary>
  536. <param name="p1">The origin point of the vector</param>
  537. <param name="p2">The final point of the vector</param>
  538. <param name="q">the point to compute the direction to</param>
  539. <returns>
  540. <list type="bullet">
  541. <item><description><c>1</c> if q is counter-clockwise (left) from p1-p2</description></item>
  542. <item><description><c>-1</c> if q is clockwise (right) from p1-p2</description></item>
  543. <item><description><c>0</c> if q is collinear with p1-p2</description></item></list>
  544. </returns>
  545. </member>
  546. <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndex(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  547. <summary>
  548. Returns the index of the direction of the point <c>q</c> relative to
  549. a vector specified by <c>p1-p2</c>.
  550. </summary>
  551. <param name="p1x">The x-ordinate of the origin point of the vector</param>
  552. <param name="p1y">The y-ordinate of the origin point of the vector</param>
  553. <param name="p2x">The x-ordinate of the final point of the vector</param>
  554. <param name="p2y">The y-ordinate of the final point of the vector</param>
  555. <param name="qx">The x-ordinate of the point to compute the direction to</param>
  556. <param name="qy">The y-ordinate of the point to compute the direction to</param>
  557. <returns>
  558. <list type="bullet">
  559. <item><description><c>1</c> if q is counter-clockwise (left) from p1-p2</description></item>
  560. <item><description><c>-1</c> if q is clockwise (right) from p1-p2</description></item>
  561. <item><description><c>0</c> if q is collinear with p1-p2</description></item></list>
  562. </returns>
  563. </member>
  564. <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.SignOfDet2x2(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  565. <summary>
  566. Computes the sign of the determinant of the 2x2 matrix
  567. with the given entries.
  568. </summary>
  569. <param name="x1"></param>
  570. <param name="y1"></param>
  571. <param name="x2"></param>
  572. <param name="y2"></param>
  573. <returns>
  574. <list type="bullet">
  575. <item><description>-1 if the determinant is negative,</description></item>
  576. <item><description>1 if the determinant is positive,</description></item>
  577. <item><description>0 if the determinant is 0.</description></item>
  578. </list>
  579. </returns>
  580. </member>
  581. <member name="F:NetTopologySuite.Algorithm.CGAlgorithmsDD.DoublePrecisionSafeEpsilon">
  582. <summary>
  583. A value which is safely greater than the
  584. relative round-off error in double-precision numbers
  585. </summary>
  586. </member>
  587. <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.OrientationIndexFilter(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  588. <summary>
  589. A filter for computing the orientation index of three coordinates.
  590. <para/>
  591. If the orientation can be computed safely using standard DP
  592. arithmetic, this routine returns the orientation index.
  593. Otherwise, a value i > 1 is returned.
  594. In this case the orientation index must
  595. be computed using some other more robust method.
  596. The filter is fast to compute, so can be used to
  597. avoid the use of slower robust methods except when they are really needed,
  598. thus providing better average performance.
  599. <para/>
  600. Uses an approach due to Jonathan Shewchuk, which is in the public domain.
  601. </summary>
  602. <param name="pax">The x-ordinate of point A</param>
  603. <param name="pay">The y-ordinate of point A</param>
  604. <param name="pbx">The x-ordinate of point B</param>
  605. <param name="pby">The y-ordinate of point B</param>
  606. <param name="pcx">The x-ordinate of point C</param>
  607. <param name="pcy">The y-ordinate of point C</param>
  608. <returns>
  609. <list type="bullet">
  610. <item><description>The orientation index if it can be computed safely</description></item>
  611. <item><description>&gt; 1 if the orientation index cannot be computed safely</description></item>>
  612. </list>
  613. </returns>
  614. </member>
  615. <member name="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  616. <summary>
  617. Computes an intersection point between two lines
  618. using DD arithmetic.
  619. If the lines are parallel (either identical
  620. or separate) a null value is returned.
  621. </summary>
  622. <param name="p1">An endpoint of line segment 1</param>
  623. <param name="p2">An endpoint of line segment 1</param>
  624. <param name="q1">An endpoint of line segment 2</param>
  625. <param name="q2">An endpoint of line segment 2</param>
  626. <returns>An intersection point if one exists, or <c>null</c> if lines are parallel.</returns>
  627. </member>
  628. <member name="T:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint">
  629. <summary>
  630. Computes the distance between a point and a geometry
  631. (which may be a collection containing any type of geometry).
  632. Also computes the pair of points containing the input
  633. point and the nearest point on the geometry.
  634. </summary>
  635. <author>Martin Davis</author>
  636. </member>
  637. <member name="M:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint.Distance(NetTopologySuite.Geometries.Point)">
  638. <summary>
  639. Computes the distance from a point to the geometry.
  640. </summary>
  641. <param name="pt">The input point</param>
  642. <returns>The distance to the geometry</returns>
  643. </member>
  644. <member name="M:NetTopologySuite.Algorithm.Construct.IndexedDistanceToPoint.NearestPoints(NetTopologySuite.Geometries.Point)">
  645. <summary>
  646. Gets the nearest locations between the geometry and a point.
  647. The first location lies on the geometry,
  648. and the second location is the provided point.</summary>
  649. <param name="pt">The point to compute the nearest location for</param>
  650. <returns>A pair of locations</returns>
  651. </member>
  652. <member name="T:NetTopologySuite.Algorithm.Construct.IndexedPointInPolygonsLocator">
  653. <summary>
  654. Determines the location of a point in the polygonal elements of a geometry.
  655. Uses spatial indexing to provide efficient performance.
  656. </summary>
  657. <author>Martin Davis</author>
  658. </member>
  659. <member name="M:NetTopologySuite.Algorithm.Construct.IndexedPointInPolygonsLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
  660. <inheritdoc/>
  661. </member>
  662. <member name="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle">
  663. <summary>
  664. Constructs the Largest Empty Circle for a set
  665. of obstacle geometries, up to a given accuracy distance tolerance.
  666. The obstacles may be any combination of point, linear and polygonal geometries.
  667. <para/>
  668. The Largest Empty Circle (LEC) is the largest circle
  669. whose interior does not intersect with any obstacle
  670. and whose center lies within a polygonal boundary.
  671. The circle center is the point in the interior of the boundary
  672. which has the farthest distance from the obstacles
  673. (up to the accuracy of the distance tolerance).
  674. The circle itself is determined by the center point
  675. and a point lying on an obstacle determining the circle radius.
  676. <para/>
  677. The polygonal boundary may be supplied explicitly.
  678. If it is not specified the convex hull of the obstacles is used as the boundary.
  679. <para/>
  680. To compute an LEC which lies <i>wholly</i> within
  681. a polygonal boundary, include the boundary of the polygon(s) as a linear obstacle.
  682. <para/>
  683. The implementation uses a successive-approximation technique
  684. over a grid of square cells covering the obstacles and boundary.
  685. The grid is refined using a branch-and-bound algorithm.
  686. Point containment and distance are computed in a performant
  687. way by using spatial indexes.
  688. <para/>
  689. </summary>
  690. <author>Martin Davis</author>
  691. <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
  692. <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
  693. <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
  694. </member>
  695. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter(NetTopologySuite.Geometries.Geometry,System.Double)">
  696. <summary>
  697. Computes the center point of the Largest Empty Circle
  698. interior-disjoint to a set of obstacles,
  699. with accuracy to a given tolerance distance.
  700. The obstacles may be any collection of points, lines and polygons.
  701. The center of the LEC lies within the convex hull of the obstacles.
  702. </summary>
  703. <param name="obstacles">A geometry representing the obstacles</param>
  704. <param name="tolerance">The distance tolerance for computing the center point</param>
  705. <returns>The center point of the Largest Empty Circle</returns>
  706. </member>
  707. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  708. <summary>
  709. Computes the center point of the Largest Empty Circle
  710. interior-disjoint to a set of obstacles and within a polygonal boundary,
  711. with accuracy to a given tolerance distance.
  712. The obstacles may be any collection of points, lines and polygons.
  713. The center of the LEC lies within the given boundary.
  714. </summary>
  715. <param name="obstacles">A geometry representing the obstacles</param>
  716. <param name="boundary">A polygonal geometry to contain the LEC center</param>
  717. <param name="tolerance">The distance tolerance for computing the center point</param>
  718. <returns>The center point of the Largest Empty Circle</returns>
  719. </member>
  720. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,System.Double)">
  721. <summary>
  722. Computes a radius line of the Largest Empty Circle
  723. interior-disjoint to a set of obstacles,
  724. with accuracy to a given tolerance distance.
  725. The obstacles may be any collection of points, lines and polygons.
  726. The center of the LEC lies within the convex hull of the obstacles.
  727. </summary>
  728. <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
  729. <param name="tolerance">The distance tolerance for computing the center point</param>
  730. <returns>A line from the center of the circle to a point on the edge</returns>
  731. </member>
  732. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  733. <summary>
  734. Computes a radius line of the Largest Empty Circle
  735. interior-disjoint to a set of obstacles and within a polygonal boundary,
  736. with accuracy to a given tolerance distance.
  737. The obstacles may be any collection of points, lines and polygons.
  738. The center of the LEC lies within the given boundary.
  739. </summary>
  740. <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
  741. <param name="boundary">A polygonal geometry to contain the LEC center</param>
  742. <param name="tolerance">The distance tolerance for computing the center point</param>
  743. <returns>A line from the center of the circle to a point on the edge</returns>
  744. </member>
  745. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
  746. <summary>
  747. Creates a new instance of a Largest Empty Circle construction.
  748. </summary>
  749. <param name="obstacles">A geometry representing the obstacles (points and lines)</param>
  750. <param name="tolerance">The distance tolerance for computing the center point</param>
  751. </member>
  752. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  753. <summary>
  754. Creates a new instance of a Largest Empty Circle construction,
  755. interior-disjoint to a set of obstacle geometries
  756. and having its center within a polygonal boundary.
  757. The obstacles may be any collection of points, lines and polygons.
  758. If the boundary is null or empty the convex hull
  759. of the obstacles is used as the boundary.
  760. </summary>
  761. <param name="obstacles">A non-empty geometry representing the obstacles (points and lines)</param>
  762. <param name="boundary">A polygonal geometry to contain the LEC center (may be null or empty)</param>
  763. <param name="tolerance">The distance tolerance for computing the center point (a positive value)</param>
  764. </member>
  765. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetCenter">
  766. <summary>
  767. Gets the center point of the Largest Empty Circle
  768. (up to the tolerance distance).
  769. </summary>
  770. <returns>The center point of the Largest Empty Circle</returns>
  771. </member>
  772. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusPoint">
  773. <summary>
  774. Gets a point defining the radius of the Largest Empty Circle.
  775. This is a point on the obstacles which is
  776. nearest to the computed center of the Largest Empty Circle.
  777. The line segment from the center to this point
  778. is a radius of the constructed circle, and this point
  779. lies on the boundary of the circle.
  780. </summary>
  781. <returns>A point defining the radius of the Largest Empty Circle</returns>
  782. </member>
  783. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.GetRadiusLine">
  784. <summary>
  785. Gets a line representing a radius of the Largest Empty Circle.
  786. </summary>
  787. <returns>A line from the center of the circle to a point on the edge</returns>
  788. </member>
  789. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.DistanceToConstraints(NetTopologySuite.Geometries.Point)">
  790. <summary>
  791. Computes the signed distance from a point to the constraints
  792. (obstacles and boundary).
  793. Points outside the boundary polygon are assigned a negative distance.
  794. Their containing cells will be last in the priority queue
  795. (but will still end up being tested since they may be refined).
  796. </summary>
  797. <param name="p">The point to compute the distance for</param>
  798. <returns>The signed distance to the constraints (negative indicates outside the boundary)</returns>
  799. </member>
  800. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.MayContainCircleCenter(NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell)">
  801. <summary>
  802. Tests whether a cell may contain the circle center,
  803. and thus should be refined (split into subcells
  804. to be investigated further.)
  805. </summary>
  806. <param name="cell">The cell to test</param>
  807. <returns><c>true</c> if the cell might contain the circle center</returns>
  808. </member>
  809. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.CreateInitialGrid(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell})">
  810. <summary>
  811. Initializes the queue with a cell covering
  812. the extent of the area.
  813. </summary>
  814. <param name="env">The area extent to cover</param>
  815. <param name="cellQueue">The queue to initialize</param>
  816. </member>
  817. <member name="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell">
  818. <summary>
  819. A square grid cell centered on a given point
  820. with a given side half-length,
  821. and having a given distance from the center point to the constraints.
  822. The maximum possible distance from any point in the cell to the
  823. constraints can be computed.
  824. This is used as the ordering and upper-bound function in
  825. the branch-and-bound algorithm.
  826. </summary>
  827. </member>
  828. <member name="M:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell.CompareTo(NetTopologySuite.Algorithm.Construct.LargestEmptyCircle.Cell)">
  829. <summary>
  830. For maximum efficieny sort the PriorityQueue with largest maxDistance at front.
  831. Since AlternativePriorityQueue sorts least-first, need to invert the comparison
  832. </summary>
  833. </member>
  834. <member name="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle">
  835. <summary>
  836. Constructs the Maximum Inscribed Circle for a
  837. polygonal <see cref="T:NetTopologySuite.Geometries.Geometry"/>, up to a specified tolerance.
  838. The Maximum Inscribed Circle is determined by a point in the interior of the area
  839. which has the farthest distance from the area boundary,
  840. along with a boundary point at that distance.
  841. <para/>
  842. In the context of geography the center of the Maximum Inscribed Circle
  843. is known as the <b>Pole of Inaccessibility</b>.
  844. A cartographic use case is to determine a suitable point
  845. to place a map label within a polygon.
  846. <para/>
  847. The radius length of the Maximum Inscribed Circle is a
  848. measure of how "narrow" a polygon is. It is the
  849. distance at which the negative buffer becomes empty.
  850. <para/>
  851. The class supports polygons with holes and multipolygons.
  852. <para/>
  853. The implementation uses a successive-approximation technique
  854. over a grid of square cells covering the area geometry.
  855. The grid is refined using a branch-and-bound algorithm.
  856. Point containment and distance are computed in a performant
  857. way by using spatial indexes.
  858. <h3>Future Enhancements</h3>
  859. <list type="bullet">
  860. <item><description>Support a polygonal constraint on placement of center</description></item>
  861. </list>
  862. </summary>
  863. <author>Martin Davis</author>
  864. <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
  865. <see cref="T:NetTopologySuite.Algorithm.InteriorPoint"/>
  866. <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
  867. </member>
  868. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetCenter(NetTopologySuite.Geometries.Geometry,System.Double)">
  869. <summary>
  870. Computes the center point of the Maximum Inscribed Circle
  871. of a polygonal geometry, up to a given tolerance distance.
  872. </summary>
  873. <param name="polygonal">A polygonal geometry</param>
  874. <param name="tolerance">The distance tolerance for computing the center point</param>
  875. <returns>The center point of the maximum inscribed circle</returns>
  876. </member>
  877. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusLine(NetTopologySuite.Geometries.Geometry,System.Double)">
  878. <summary>
  879. Computes a radius line of the Maximum Inscribed Circle
  880. of a polygonal geometry, up to a given tolerance distance.
  881. </summary>
  882. <param name="polygonal">A polygonal geometry</param>
  883. <param name="tolerance">The distance tolerance for computing the center point</param>
  884. <returns>A line from the center to a point on the circle</returns>
  885. </member>
  886. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.ComputeMaximumIterations(NetTopologySuite.Geometries.Geometry,System.Double)">
  887. <summary>
  888. Computes the maximum number of iterations allowed.
  889. Uses a heuristic based on the size of the input geometry
  890. and the tolerance distance.
  891. A smaller tolerance distance allows more iterations.
  892. This is a rough heuristic, intended
  893. to prevent huge iterations for very thin geometries.
  894. </summary>
  895. <param name="geom">The input geometry</param>
  896. <param name="toleranceDist">The tolerance distance</param>
  897. <returns>The maximum number of iterations allowed</returns>
  898. </member>
  899. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
  900. <summary>
  901. Creates a new instance of a Maximum Inscribed Circle computation.
  902. </summary>
  903. <param name="polygonal">An areal geometry</param>
  904. <param name="tolerance">The distance tolerance for computing the centre point
  905. (must be positive)</param>
  906. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the tolerance is non-positive</exception>
  907. <exception cref="T:System.ArgumentException">Thrown if the input geometry is non-polygonal or empty</exception>
  908. </member>
  909. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetCenter">
  910. <summary>
  911. Gets the center point of the maximum inscribed circle
  912. (up to the tolerance distance).</summary>
  913. <returns>The center point of the maximum inscribed circle</returns>
  914. </member>
  915. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusPoint">
  916. <summary>
  917. Gets a point defining the radius of the Maximum Inscribed Circle.
  918. This is a point on the boundary which is
  919. nearest to the computed center of the Maximum Inscribed Circle.
  920. The line segment from the center to this point
  921. is a radius of the constructed circle, and this point
  922. lies on the boundary of the circle.
  923. </summary>
  924. <returns>A point defining the radius of the Maximum Inscribed Circle</returns>
  925. </member>
  926. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.GetRadiusLine">
  927. <summary>
  928. Gets a line representing a radius of the Largest Empty Circle.
  929. </summary>
  930. <returns>A line from the center of the circle to a point on the edge</returns>
  931. </member>
  932. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.DistanceToBoundary(NetTopologySuite.Geometries.Point)">
  933. <summary>
  934. Computes the signed distance from a point to the area boundary.
  935. Points outside the polygon are assigned a negative distance.
  936. Their containing cells will be last in the priority queue
  937. (but may still end up being tested since they may need to be refined).
  938. </summary>
  939. <param name="p">The point to compute the distance for</param>
  940. <returns>The signed distance to the area boundary (negative indicates outside the area)</returns>
  941. </member>
  942. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.CreateInitialGrid(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell})">
  943. <summary>
  944. Initializes the queue with a grid of cells covering
  945. the extent of the area.
  946. </summary>
  947. <param name="env">The area extent to cover</param>
  948. <param name="cellQueue">The queue to initialize</param>
  949. </member>
  950. <member name="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell">
  951. <summary>
  952. A square grid cell centered on a given point
  953. with a given side half-length,
  954. and having a given distance from the center point to the constraints.
  955. The maximum possible distance from any point in the cell to the
  956. constraints can be computed.
  957. This is used as the ordering and upper-bound function in
  958. the branch-and-bound algorithm.
  959. </summary>
  960. </member>
  961. <member name="M:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell.CompareTo(NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle.Cell)">
  962. <summary>
  963. For maximum efficieny sort the PriorityQueue with largest maxDistance at front.
  964. Since AlternativePriorityQueue sorts least-first, need to invert the comparison
  965. </summary>
  966. </member>
  967. <member name="T:NetTopologySuite.Algorithm.ConvexHull">
  968. <summary>
  969. Computes the convex hull of a <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  970. The convex hull is the smallest convex Geometry that contains all the
  971. points in the input Geometry.
  972. <para/>
  973. Uses the Graham Scan algorithm.
  974. <para/>
  975. Incorporates heuristics to optimize checking for degenerate results,
  976. and to reduce the number of points processed for large inputs.
  977. </summary>
  978. </member>
  979. <member name="M:NetTopologySuite.Algorithm.ConvexHull.Create(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  980. <summary>
  981. Computes the convex hull for the given sequence of <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances.
  982. </summary>
  983. <param name="geoms">
  984. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances whose convex hull to compute.
  985. </param>
  986. <returns>
  987. The convex hull of <paramref name="geoms"/>.
  988. </returns>
  989. </member>
  990. <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(NetTopologySuite.Geometries.Geometry)">
  991. <summary>
  992. Create a new convex hull construction for the input <c>Geometry</c>.
  993. </summary>
  994. <param name="geometry"></param>
  995. </member>
  996. <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate},NetTopologySuite.Geometries.GeometryFactory)">
  997. <summary>
  998. Create a new convex hull construction for the input <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
  999. </summary>
  1000. <param name="pts"></param>
  1001. <param name="geomFactory">The factory to create the convex hull geometry</param>
  1002. </member>
  1003. <member name="M:NetTopologySuite.Algorithm.ConvexHull.#ctor(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
  1004. <summary>
  1005. Create a new convex hull construction for the input <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array.
  1006. </summary>
  1007. <param name="pts">The coordinate array</param>
  1008. <param name="geomFactory">The factory to create the convex hull geometry</param>
  1009. </member>
  1010. <member name="M:NetTopologySuite.Algorithm.ConvexHull.GetConvexHull">
  1011. <summary>
  1012. Returns a <c>Geometry</c> that represents the convex hull of the input point.
  1013. The point will contain the minimal number of points needed to
  1014. represent the convex hull. In particular, no more than two consecutive
  1015. points will be collinear.
  1016. </summary>
  1017. <returns>
  1018. If the convex hull contains 3 or more points, a <c>Polygon</c>;
  1019. 2 points, a <c>LineString</c>;
  1020. 1 point, a <c>Point</c>;
  1021. 0 points, an empty <c>GeometryCollection</c>.
  1022. </returns>
  1023. </member>
  1024. <member name="M:NetTopologySuite.Algorithm.ConvexHull.CreateFewPointsResult">
  1025. <summary>
  1026. Checks if there are &#8804;2 unique points,
  1027. which produce an obviously degenerate result.
  1028. If there are more points, returns null to indicate this.
  1029. <para/>
  1030. This is a fast check for an obviously degenerate result.
  1031. If the result is not obviously degenerate (at least 3 unique points found)
  1032. the full uniquing of the entire point set is
  1033. done only once during the reduce phase.
  1034. </summary>
  1035. <returns>A degenerate hull geometry, or null if the number of input points is large</returns>
  1036. </member>
  1037. <member name="M:NetTopologySuite.Algorithm.ConvexHull.ExtractUnique(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  1038. <summary>
  1039. Extracts unique coordinates from an array of coordinates,
  1040. up to a maximum count of values.
  1041. If more than the given maximum of unique values are found,
  1042. this is reported by returning <c>null</c>.
  1043. (the expectation is that the original array can then be used).
  1044. </summary>
  1045. <param name="pts">An array of coordinates</param>
  1046. <param name="maxPts">The maximum number of unique points</param>
  1047. <returns>An array of unique values, or null</returns>
  1048. </member>
  1049. <member name="M:NetTopologySuite.Algorithm.ConvexHull.Reduce(NetTopologySuite.Geometries.Coordinate[])">
  1050. <summary>
  1051. Uses a heuristic to reduce the number of points scanned to compute the hull.
  1052. The heuristic is to find a polygon guaranteed to
  1053. be in (or on) the hull, and eliminate all points inside it.
  1054. A quadrilateral defined by the extremal points
  1055. in the four orthogonal directions
  1056. can be used, but even more inclusive is
  1057. to use an octilateral defined by the points in the 8 cardinal directions.
  1058. Note that even if the method used to determine the polygon vertices
  1059. is not 100% robust, this does not affect the robustness of the convex hull.
  1060. <para/>
  1061. To satisfy the requirements of the Graham Scan algorithm,
  1062. the returned array has at least 3 entries.
  1063. <para/>
  1064. This has the side effect of making the reduced points unique,
  1065. as required by the convex hull algorithm used.
  1066. </summary>
  1067. <param name="pts">The coordinates to reduce</param>
  1068. <returns>The reduced array of coordinates</returns>
  1069. </member>
  1070. <member name="M:NetTopologySuite.Algorithm.ConvexHull.PreSort(NetTopologySuite.Geometries.Coordinate[])">
  1071. <summary>
  1072. Sorts the points radially CW around the point with minimum Y and then X.
  1073. </summary>
  1074. <param name="pts">The points to sort</param>
  1075. <returns>The sorted points</returns>
  1076. </member>
  1077. <member name="M:NetTopologySuite.Algorithm.ConvexHull.GrahamScan(NetTopologySuite.Geometries.Coordinate[])">
  1078. <summary>
  1079. </summary>
  1080. <param name="c"></param>
  1081. <returns></returns>
  1082. </member>
  1083. <member name="M:NetTopologySuite.Algorithm.ConvexHull.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1084. <summary>
  1085. </summary>
  1086. <param name="c1"></param>
  1087. <param name="c2"></param>
  1088. <param name="c3"></param>
  1089. <returns>
  1090. Whether the three coordinates are collinear
  1091. and c2 lies between c1 and c3 inclusive.
  1092. </returns>
  1093. </member>
  1094. <member name="M:NetTopologySuite.Algorithm.ConvexHull.ComputeInnerOctolateralRing(NetTopologySuite.Geometries.Coordinate[])">
  1095. <summary>
  1096. </summary>
  1097. <param name="inputPts"></param>
  1098. <returns></returns>
  1099. </member>
  1100. <member name="M:NetTopologySuite.Algorithm.ConvexHull.ComputeInnerOctolateralPts(NetTopologySuite.Geometries.Coordinate[])">
  1101. <summary>
  1102. Computes the extremal points of an inner octolateral.
  1103. Some points may be duplicates - these are collapsed later.
  1104. </summary>
  1105. <param name="inputPts">The points to compute the octolateral for</param>
  1106. <returns>The extremal points of the octolateral</returns>
  1107. </member>
  1108. <member name="M:NetTopologySuite.Algorithm.ConvexHull.LineOrPolygon(NetTopologySuite.Geometries.Coordinate[])">
  1109. <summary>
  1110. </summary>
  1111. <param name="coordinates"> The vertices of a linear ring, which may or may not be flattened (i.e. vertices collinear).</param>
  1112. <returns>A 2-vertex <c>LineString</c> if the vertices are collinear;
  1113. otherwise, a <c>Polygon</c> with unnecessary (collinear) vertices removed. </returns>
  1114. </member>
  1115. <member name="M:NetTopologySuite.Algorithm.ConvexHull.CleanRing(NetTopologySuite.Geometries.Coordinate[])">
  1116. <summary>
  1117. </summary>
  1118. <param name="original">The vertices of a linear ring, which may or may not be flattened (i.e. vertices collinear).</param>
  1119. <returns>The coordinates with unnecessary (collinear) vertices removed.</returns>
  1120. </member>
  1121. <member name="T:NetTopologySuite.Algorithm.ConvexHull.RadialComparator">
  1122. <summary>
  1123. Compares <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for their angle and distance
  1124. relative to an origin.
  1125. <para/>
  1126. The origin is assumed to be lower in Y and then X than
  1127. all other point inputs.
  1128. The points are ordered CCW around the origin
  1129. </summary>
  1130. </member>
  1131. <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.#ctor(NetTopologySuite.Geometries.Coordinate)">
  1132. <summary>
  1133. Creates a new comparator using a given origin.
  1134. The origin must be lower in Y and then X to all
  1135. compared points,
  1136. using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/>.
  1137. </summary>
  1138. <param name="origin">The origin of the radial comparison</param>
  1139. </member>
  1140. <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.Compare(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1141. <summary>
  1142. </summary>
  1143. <param name="p1"></param>
  1144. <param name="p2"></param>
  1145. <returns></returns>
  1146. </member>
  1147. <member name="M:NetTopologySuite.Algorithm.ConvexHull.RadialComparator.PolarCompare(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1148. <summary>
  1149. Given two points p and q compare them with respect to their radial
  1150. ordering about point o.<br/>
  1151. First checks radial ordering using a CCW orientation.
  1152. If the points are collinear, the comparison is based
  1153. on their distance to the origin.
  1154. <para/>
  1155. p &lt; q iff
  1156. <list type="bullet">
  1157. <item><description><c>ang(o-p) &lt; ang(o-q)</c> (e.g.o-p-q is CCW)</description></item>
  1158. <item><description><c>or ang(o-p) == ang(o-q) &amp;&amp; dist(o, p) &lt; dist(o, q)</c></description></item>
  1159. </list>
  1160. </summary>
  1161. <param name="o">The origin</param>
  1162. <param name="p">A point</param>
  1163. <param name="q">Another point</param>
  1164. <returns>-1, 0 or 1 depending on whether p is less than,
  1165. equal to or greater than q</returns>
  1166. </member>
  1167. <member name="T:NetTopologySuite.Algorithm.DistanceComputer">
  1168. <summary>
  1169. Functions to compute distance between basic geometric structures.
  1170. </summary>
  1171. <author>Martin Davis</author>
  1172. </member>
  1173. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.SegmentToSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1174. <summary>
  1175. Computes the distance from a line segment AB to a line segment CD
  1176. <para/>
  1177. Note: NON-ROBUST!
  1178. </summary>
  1179. <param name="A">The first point of the first line</param>
  1180. <param name="B">The second point of the first line (must be different to A)</param>
  1181. <param name="C">The first point of the second line</param>
  1182. <param name="D">The second point of the second line (must be different to C)</param>
  1183. <returns>The distance from a line segment AB to a line segment CD</returns>
  1184. </member>
  1185. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegmentString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  1186. <summary>
  1187. Computes the distance from a point to a sequence of line segments.
  1188. </summary>
  1189. <param name="p">A point</param>
  1190. <param name="line">A sequence of contiguous line segments defined by their vertices</param>
  1191. <returns>The minimum distance between the point and the line segments</returns>
  1192. </member>
  1193. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegmentString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  1194. <summary>
  1195. Computes the distance from a point to a sequence of line segments.
  1196. </summary>
  1197. <param name="p">A point</param>
  1198. <param name="line">A sequence of contiguous line segments defined by their vertices</param>
  1199. <returns>The minimum distance between the point and the line segments</returns>
  1200. </member>
  1201. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1202. <summary>
  1203. Computes the distance from a point p to a line segment AB
  1204. <para/>
  1205. Note: NON-ROBUST!
  1206. </summary>
  1207. <param name="p">The point to compute the distance for</param>
  1208. <param name="A">The first point of the first line</param>
  1209. <param name="B">The second point of the first line (must be different to A)</param>
  1210. <returns>The distance from p to line segment AB</returns>
  1211. </member>
  1212. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToLinePerpendicular(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1213. <summary>
  1214. Computes the perpendicular distance from a point p to the (infinite) line
  1215. containing the points AB
  1216. </summary>
  1217. <param name="p">The point to compute the distance for</param>
  1218. <param name="A">The first point of the first line</param>
  1219. <param name="B">The second point of the first line (must be different to A)</param>
  1220. <returns>The perpendicular distance from p to line segment AB</returns>
  1221. </member>
  1222. <member name="M:NetTopologySuite.Algorithm.DistanceComputer.PointToLinePerpendicularSigned(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1223. <summary>
  1224. Computes the perpendicular distance from a point p to the (infinite) line
  1225. containing the points AB. The result is positive if to the left, otherwise negative.
  1226. </summary>
  1227. <param name="p">The point to compute the distance for</param>
  1228. <param name="A">The first point of the first line</param>
  1229. <param name="B">The second point of the first line (must be different to A)</param>
  1230. <returns>The perpendicular distance from p to line segment AB</returns>
  1231. </member>
  1232. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance">
  1233. <summary>
  1234. The Fréchet distance is a measure of similarity between curves. Thus, it can
  1235. be used like the Hausdorff distance.
  1236. <para/>
  1237. An analogy for the Fréchet distance taken from
  1238. <a href="http://www.kr.tuwien.ac.at/staff/eiter/et-archive/cdtr9464.pdf">
  1239. Computing Discrete Fréchet Distance</a>:
  1240. <pre>
  1241. A man is walking a dog on a leash: the man can move
  1242. on one curve, the dog on the other; both may vary their
  1243. speed, but backtracking is not allowed.
  1244. </pre>
  1245. </summary>
  1246. <remarks>
  1247. Its metric is better than the Hausdorff distance
  1248. because it takes the directions of the curves into account.
  1249. It is possible that two curves have a small Hausdorff but a large
  1250. Fréchet distance.
  1251. <para/>
  1252. This implementation is based on the following optimized Fréchet distance algorithm:
  1253. <pre>Thomas Devogele, Maxence Esnault, Laurent Etienne. Distance discrète de Fréchet optimisée. Spatial
  1254. Analysis and Geomatics (SAGEO), Nov 2016, Nice, France. hal-02110055</pre>
  1255. <para/>
  1256. Several matrix storage implementations are provided
  1257. <para/>
  1258. Additional information:
  1259. <list type="bullet">
  1260. <item><description><a href="https://en.wikipedia.org/wiki/Fr%C3%A9chet_distance">Fréchet distance</a></description></item>
  1261. <item><description><a href="http://www.kr.tuwien.ac.at/staff/eiter/et-archive/cdtr9464.pdf">Computing Discrete Fréchet Distance</a></description></item>
  1262. <item><description><a href="https://hal.archives-ouvertes.fr/hal-02110055/document">Distance discrète de Fréchet optimisée</a></description></item>
  1263. <item><description><a href="https://towardsdatascience.com/fast-discrete-fr%C3%A9chet-distance-d6b422a8fb77">Fast Discrete Fréchet Distance</a></description></item></list>
  1264. </remarks>
  1265. </member>
  1266. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  1267. <summary>
  1268. Computes the Discrete Fréchet Distance between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  1269. using a cartesian distance computation function.
  1270. </summary>
  1271. <param name="g0">The 1st geometry</param>
  1272. <param name="g1">The 2nd geometry</param>
  1273. <returns>The cartesian distance between <paramref name="g0"/> and <paramref name="g1"/></returns>
  1274. </member>
  1275. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  1276. <summary>
  1277. Creates an instance of this class using the provided geometries.
  1278. </summary>
  1279. <param name="g0">A geometry</param>
  1280. <param name="g1">A geometry</param>
  1281. </member>
  1282. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Distance">
  1283. <summary>
  1284. Computes the <c>Discrete Fréchet Distance</c> between the input geometries
  1285. </summary>
  1286. <returns>The Discrete Fréchet Distance</returns>
  1287. </member>
  1288. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CreateMatrixStorage(System.Int32,System.Int32)">
  1289. <summary>
  1290. Creates a matrix to store the computed distances
  1291. </summary>
  1292. <param name="rows">The number of rows</param>
  1293. <param name="cols">The number of cols</param>
  1294. <returns>A matrix storage</returns>
  1295. </member>
  1296. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.Coordinates">
  1297. <summary>
  1298. Gets the pair of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s at which the distance is obtained.
  1299. </summary>
  1300. <returns>The pair of <c>Coordinate</c>s at which the distance is obtained</returns>
  1301. </member>
  1302. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.ComputeFrechet(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[],System.Int32[],NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage,System.Collections.Generic.Dictionary{System.Double,System.Int32[]})">
  1303. <summary>
  1304. Computes the Fréchet Distance for the given distance matrix.
  1305. </summary>
  1306. <param name="coords0">An array of <c>Coordinate</c>s</param>
  1307. <param name="coords1">An array of <c>Coordinate</c>s</param>
  1308. <param name="diagonal">An array of alternating col/row index values for the diagonal of the distance matrix</param>
  1309. <param name="distances">The distance matrix</param>
  1310. <param name="distanceToPair">A lookup for coordinate pairs based on a distance</param>
  1311. <returns></returns>
  1312. </member>
  1313. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.GetMinDistanceAtCorner(NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage,System.Int32,System.Int32)">
  1314. <summary>
  1315. Returns the minimum distance at the corner (<paramref name="i"/>, <paramref name="j"/>}).
  1316. </summary>
  1317. <param name="matrix">A (sparse) matrix</param>
  1318. <param name="i">The row index</param>
  1319. <param name="j">The column index</param>
  1320. <returns>The minimum distance</returns>
  1321. </member>
  1322. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.ComputeCoordinateDistances(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[],System.Int32[],NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage,System.Collections.Generic.Dictionary{System.Double,System.Int32[]})">
  1323. <summary>
  1324. Computes relevant distances between pairs of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for the
  1325. computation of the <c>Discrete Fréchet Distance</c>.
  1326. </summary>
  1327. <param name="coords0">An array of <c>Coordinate</c>s</param>
  1328. <param name="coords1">An array of <c>Coordinate</c>s</param>
  1329. <param name="diagonal">An array of alternating col/row index values for the diagonal of the distance matrix</param>
  1330. <param name="distances">The distance matrix</param>
  1331. <param name="distanceToPair">A lookup for coordinate pairs based on a distance</param>
  1332. </member>
  1333. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.BresenhamDiagonal(System.Int32,System.Int32)">
  1334. <summary>
  1335. Computes the indices for the diagonal of a <c>numCols x numRows</c> grid
  1336. using the <a href="https://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm">
  1337. Bresenham's line algorithm</a>.
  1338. </summary>
  1339. <param name="numCols">The number of columns</param>
  1340. <param name="numRows">The number of rows</param>
  1341. <returns>A packed array of column and row indices.</returns>
  1342. </member>
  1343. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage">
  1344. <summary>
  1345. Abstract base class for storing 2d matrix data
  1346. </summary>
  1347. </member>
  1348. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.NumRows">
  1349. <summary>
  1350. Gets a value indicating the number of rows
  1351. </summary>
  1352. </member>
  1353. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.NumCols">
  1354. <summary>
  1355. Gets a value indicating the number of columns
  1356. </summary>
  1357. </member>
  1358. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.DefaultValue">
  1359. <summary>
  1360. Gets a value indicating the default value
  1361. </summary>
  1362. </member>
  1363. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.#ctor(System.Int32,System.Int32,System.Double)">
  1364. <summary>Creates an instance of this class</summary>
  1365. <param name="numRows">The number of rows</param>
  1366. <param name="numCols">The number of columns</param>
  1367. <param name="defaultValue">A default value</param>
  1368. </member>
  1369. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.Item(System.Int32,System.Int32)">
  1370. <summary>
  1371. Gets or sets a value for the cell <paramref name="i"/>, <paramref name="j"/>
  1372. </summary>
  1373. <param name="i">The row index</param>
  1374. <param name="j">The column index</param>
  1375. <returns>The value of the cell <paramref name="i"/>, <paramref name="j"/></returns>
  1376. </member>
  1377. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.IsValueSet(System.Int32,System.Int32)">
  1378. <summary>
  1379. Gets a flag indicating if the matrix has a set value, e.g. one that is different
  1380. than <see cref="P:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.MatrixStorage.DefaultValue"/>.
  1381. </summary>
  1382. <returns>A flag indicating if the matrix has a set value</returns>
  1383. </member>
  1384. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.RectMatrix">
  1385. <summary>Straight forward implementation of a rectangular matrix</summary>
  1386. </member>
  1387. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.RectMatrix.#ctor(System.Int32,System.Int32,System.Double)">
  1388. <summary>
  1389. Creates an instance of this matrix using the given number of rows and columns.
  1390. A default value can be specified.
  1391. </summary>
  1392. <param name="numRows">The number of rows</param>
  1393. <param name="numCols">The number of columns</param>
  1394. <param name="defaultValue">A default value</param>
  1395. </member>
  1396. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix">
  1397. <summary>
  1398. A matrix implementation that adheres to the
  1399. <a href="https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_row_(CSR,_CRS_or_Yale_format)">
  1400. Compressed sparse row format</a>.<br/>
  1401. Note: Unfortunately not as fast as expected.
  1402. </summary>
  1403. </member>
  1404. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.#ctor(System.Int32,System.Int32,System.Double)">
  1405. <summary>
  1406. Creates an instance of this matrix using the given number of rows and columns.
  1407. A default value can be specified.
  1408. </summary>
  1409. <param name="numRows">The number of rows</param>
  1410. <param name="numCols">The number of columns</param>
  1411. <param name="defaultValue">A default value</param>
  1412. </member>
  1413. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.#ctor(System.Int32,System.Int32,System.Double,System.Int32)">
  1414. <summary>
  1415. Creates an instance of this matrix using the given number of rows and columns.
  1416. A default value can be specified as well as the number of values expected.
  1417. </summary>
  1418. <param name="numRows">The number of rows</param>
  1419. <param name="numCols">The number of columns</param>
  1420. <param name="defaultValue">A default value</param>
  1421. <param name="expectedValues">The amount of expected values</param>
  1422. </member>
  1423. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.ExpectedValuesHeuristic(System.Int32,System.Int32)">
  1424. <summary>
  1425. Computes an initial value for the number of expected values
  1426. </summary>
  1427. <param name="numRows">The number of rows</param>
  1428. <param name="numCols">The number of columns</param>
  1429. <returns>The expected number of values in the sparse matrix</returns>
  1430. </member>
  1431. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.CsrMatrix.EnsureCapacity(System.Int32)">
  1432. <summary>
  1433. Ensures that the column index vector (ci) and value vector (v) are sufficiently large.
  1434. </summary>
  1435. <param name="required">The number of items to store in the matrix</param>
  1436. </member>
  1437. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.HashMapMatrix">
  1438. <summary>
  1439. A sparse matrix based on <see cref="T:System.Collections.Generic.Dictionary`2"/>.
  1440. </summary>
  1441. </member>
  1442. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteFrechetDistance.HashMapMatrix.#ctor(System.Int32,System.Int32,System.Double)">
  1443. <summary>
  1444. Creates an instance of this matrix using the given number of rows and columns.
  1445. A default value can be specified.
  1446. </summary>
  1447. <param name="numRows">The number of rows</param>
  1448. <param name="numCols">The number of columns</param>
  1449. <param name="defaultValue">A default value</param>
  1450. </member>
  1451. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance">
  1452. <summary>
  1453. An algorithm for computing a distance metric
  1454. which is an approximation to the Hausdorff Distance
  1455. based on a discretization of the input <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  1456. </summary>
  1457. <remarks>
  1458. <para>
  1459. The algorithm computes the Hausdorff distance restricted to discrete points
  1460. for one of the geometries.
  1461. The points can be either the vertices of the geometries (the default),
  1462. or the geometries with line segments densified by a given fraction.
  1463. Also determines two points of the Geometries which are separated by the computed distance.
  1464. </para>
  1465. <para>
  1466. This algorithm is an approximation to the standard Hausdorff distance.
  1467. Specifically,
  1468. <code>
  1469. for all geometries a, b: DHD(a, b) &lt;= HD(a, b)
  1470. </code>
  1471. The approximation can be made as close as needed by densifying the input geometries.
  1472. In the limit, this value will approach the true Hausdorff distance:
  1473. <code>
  1474. DHD(A, B, densifyFactor) -> HD(A, B) as densifyFactor -> 0.0
  1475. </code>
  1476. The default approximation is exact or close enough for a large subset of useful cases.
  1477. </para>
  1478. <para>
  1479. Examples of these are:
  1480. <list type="bullet">
  1481. <item><description>
  1482. computing distance between <c>Linestring</c>s that are roughly parallel to each other,
  1483. and roughly equal in length. This occurs in matching linear networks.
  1484. </description></item>
  1485. <item><description>Testing similarity of geometries.</description></item>
  1486. </list>
  1487. </para>
  1488. <para>
  1489. An example where the default approximation is not close is:
  1490. <code>
  1491. A = LINESTRING (0 0, 100 0, 10 100, 10 100)
  1492. B = LINESTRING (0 100, 0 10, 80 10)
  1493. DHD(A, B) = 22.360679774997898
  1494. HD(A, B) ~= 47.8
  1495. </code>
  1496. </para>
  1497. </remarks>
  1498. </member>
  1499. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  1500. <summary>
  1501. Computes the Discrete Hausdorff Distance of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  1502. </summary>
  1503. <param name="g0">A geometry</param>
  1504. <param name="g1">A geometry</param>
  1505. <returns>The Discrete Hausdorff Distance</returns>
  1506. </member>
  1507. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  1508. <summary>
  1509. Computes the Discrete Hausdorff Distance of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  1510. </summary>
  1511. <param name="g0">A geometry</param>
  1512. <param name="g1">A geometry</param>
  1513. <param name="densifyFraction">The densify fraction. A value of 0 indicates, that no densification should take place</param>
  1514. <returns>The Discrete Hausdorff Distance</returns>
  1515. </member>
  1516. <member name="F:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance._densifyFrac">
  1517. <summary>
  1518. Value of 0.0 indicates that no densification should take place
  1519. </summary>
  1520. </member>
  1521. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  1522. <summary>
  1523. Creates an instance of this class using the provided geometries
  1524. </summary>
  1525. <param name="g0">A geometry</param>
  1526. <param name="g1">Another geometry</param>
  1527. </member>
  1528. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.DensifyFraction">
  1529. <summary>
  1530. Gets or sets the fraction by which to densify each segment.
  1531. </summary>
  1532. <remarks>
  1533. Each segment will be (virtually) split into a number of equal-length
  1534. sub-segments, whose fraction of the total length is closest
  1535. to the given fraction.
  1536. </remarks>
  1537. </member>
  1538. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Distance">
  1539. <summary>
  1540. Computes the discrete hausdorff distance between the two assigned geometries.
  1541. </summary>
  1542. <returns>The discrete hausdorff distance</returns>
  1543. </member>
  1544. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.OrientedDistance">
  1545. <summary>
  1546. Computes the discrete hausdorff distance between the 1st and the 2nd assigned geometry
  1547. </summary>
  1548. <returns>The discrete hausdorff distance.</returns>
  1549. </member>
  1550. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.Coordinates">
  1551. <summary>
  1552. Gets a value indicating the
  1553. </summary>
  1554. </member>
  1555. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter">
  1556. <summary>
  1557. A coordinate filter that computes the maximum <see cref="T:NetTopologySuite.Algorithm.Distance.PointPairDistance"/> between points of
  1558. an assigned <c>Geometry</c> and all filtered geometries.
  1559. </summary>
  1560. </member>
  1561. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.#ctor(NetTopologySuite.Geometries.Geometry)">
  1562. <summary>
  1563. Creates an instance of this class
  1564. </summary>
  1565. <param name="geom">A geometry</param>
  1566. </member>
  1567. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  1568. <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)"/>
  1569. </member>
  1570. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxPointDistanceFilter.MaxPointDistance">
  1571. <summary>
  1572. Gets a value indicating the maximum distance between
  1573. an assigned <c>Geometry</c> and the filtered one.
  1574. </summary>
  1575. </member>
  1576. <member name="T:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter">
  1577. <summary>
  1578. A coordinate filter that computes the maximum <see cref="T:NetTopologySuite.Algorithm.Distance.PointPairDistance"/> between points of
  1579. an assigned <c>Geometry</c> and all filtered geometries. The filtered geometries' line segments
  1580. are
  1581. </summary>
  1582. </member>
  1583. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
  1584. <summary>
  1585. Creates an instance of this filter class
  1586. </summary>
  1587. <param name="geom">The geometry to densify</param>
  1588. <param name="fraction">The densification fraction</param>
  1589. </member>
  1590. <member name="M:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  1591. <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)"/>
  1592. </member>
  1593. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.GeometryChanged">
  1594. <inheritdoc cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.GeometryChanged"/>
  1595. <returns>As this filter does not change the geometry, the return value is always <c>false</c></returns>
  1596. </member>
  1597. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.Done">
  1598. <inheritdoc cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done"/>
  1599. <returns>As this filter does not end prematurely, the return value is always <c>false</c></returns>
  1600. </member>
  1601. <member name="P:NetTopologySuite.Algorithm.Distance.DiscreteHausdorffDistance.MaxDensifiedByFractionDistanceFilter.MaxPointDistance">
  1602. <summary>
  1603. Gets a value indicating the maximum distance between p
  1604. </summary>
  1605. </member>
  1606. <member name="T:NetTopologySuite.Algorithm.Distance.DistanceToPoint">
  1607. <summary>
  1608. Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  1609. </summary>
  1610. <remarks>
  1611. Also computes two points on the geometry which are separated by the distance found.
  1612. </remarks>
  1613. </member>
  1614. <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1615. <summary>
  1616. Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  1617. </summary>
  1618. <param name="geom">The geometry</param>
  1619. <param name="pt">The Point</param>
  1620. <param name="ptDist">The <c>PointPairDistance</c></param>
  1621. </member>
  1622. <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1623. <summary>
  1624. Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.LineString"/>.
  1625. </summary>
  1626. <param name="line">The <c>LineString</c></param>
  1627. <param name="pt">The Point</param>
  1628. <param name="ptDist">The <c>PointPairDistance</c></param>
  1629. </member>
  1630. <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1631. <summary>
  1632. Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.LineSegment"/>.
  1633. </summary>
  1634. <param name="segment">The <c>LineSegment</c></param>
  1635. <param name="pt">The Point</param>
  1636. <param name="ptDist">The <c>PointPairDistance</c></param>
  1637. </member>
  1638. <member name="M:NetTopologySuite.Algorithm.Distance.DistanceToPoint.ComputeDistance(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1639. <summary>
  1640. Computes the Euclidean distance (L2 metric) from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> to a <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
  1641. </summary>
  1642. <param name="poly">The <c>Polygon</c></param>
  1643. <param name="pt">The Point</param>
  1644. <param name="ptDist">The <c>PointPairDistance</c></param>
  1645. </member>
  1646. <member name="T:NetTopologySuite.Algorithm.Distance.PointPairDistance">
  1647. <summary>
  1648. Contains a pair of points and the distance between them.
  1649. </summary>
  1650. <remarks>
  1651. Provides methods to update with a new point pair with either maximum or minimum distance.
  1652. </remarks>
  1653. </member>
  1654. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize">
  1655. <summary>
  1656. Initializes this instance to null.
  1657. </summary>
  1658. </member>
  1659. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1660. <summary>
  1661. Initializes the points, computing the distance between them.
  1662. </summary>
  1663. <param name="p0">1st coordinate</param>
  1664. <param name="p1">2nd coordinate</param>
  1665. </member>
  1666. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  1667. <summary>
  1668. Initializes the points, avoiding recomputing the distance.
  1669. </summary>
  1670. <param name="p0">1st coordinate</param>
  1671. <param name="p1">2nd coordinate</param>
  1672. <param name="distance">the distance between <see paramref="p0"/> and <see paramref="p1"/></param>
  1673. </member>
  1674. <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance">
  1675. <summary>
  1676. The distance between the paired coordinates
  1677. </summary>
  1678. <returns>The distance between the paired coordinates</returns>
  1679. </member>
  1680. <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Coordinates">
  1681. <summary>
  1682. Gets a value indicating the paired coordinates.
  1683. </summary>
  1684. <returns>An array containing the paired points</returns>
  1685. </member>
  1686. <member name="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Item(System.Int32)">
  1687. <summary>
  1688. Gets the value of one of the paired points
  1689. </summary>
  1690. <param name="i">An index, valid are [0, 1].</param>
  1691. <returns>The <c>Coordinate</c> at index <c>i</c>.</returns>
  1692. </member>
  1693. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMaximum(NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1694. <summary>
  1695. Updates <c>this</c> <c>PointPairDistance</c> if <paramref name="ptDist"/>
  1696. has greater <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> than <c>this</c> instance.
  1697. </summary>
  1698. <param name="ptDist">The <c>PointPairDistance</c> to test.</param>
  1699. </member>
  1700. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMaximum(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1701. <summary>
  1702. Updates <c>this</c> <c>PointPairDistance</c> if the distance between
  1703. <paramref name="p0"/> and <paramref name="p1"/> is greater than the
  1704. <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> of <c>this</c> instance.
  1705. </summary>
  1706. <param name="p0">The 1st point's coordinate</param>
  1707. <param name="p1">The 2nd point's coordinate</param>
  1708. </member>
  1709. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMinimum(NetTopologySuite.Algorithm.Distance.PointPairDistance)">
  1710. <summary>
  1711. Updates <c>this</c> <c>PointPairDistance</c> if <paramref name="ptDist"/>
  1712. has a smaller <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> than <c>this</c> instance.
  1713. </summary>
  1714. <param name="ptDist">The <c>PointPairDistance</c> to test.</param>
  1715. </member>
  1716. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.SetMinimum(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1717. <summary>
  1718. Updates <c>this</c> <c>PointPairDistance</c> if the distance between
  1719. <paramref name="p0"/> and <paramref name="p1"/> is smaller than the
  1720. <see cref="P:NetTopologySuite.Algorithm.Distance.PointPairDistance.Distance"/> of <c>this</c> instance.
  1721. </summary>
  1722. <param name="p0">The 1st point's coordinate</param>
  1723. <param name="p1">The 2nd point's coordinate</param>
  1724. </member>
  1725. <member name="M:NetTopologySuite.Algorithm.Distance.PointPairDistance.ToString">
  1726. <inheritdoc cref="M:System.Object.ToString"/>
  1727. </member>
  1728. <member name="T:NetTopologySuite.Algorithm.ElevationModel">
  1729. <summary>
  1730. A base elevation model class.
  1731. </summary>
  1732. </member>
  1733. <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor">
  1734. <summary>
  1735. Creates an elevation model that always returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> as result.
  1736. </summary>
  1737. </member>
  1738. <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor(System.Double)">
  1739. <summary>
  1740. Creates an elevation model that always returns <paramref name="z"/> as result.
  1741. </summary>
  1742. <param name="z">The result value for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> or its overloads.</param>
  1743. </member>
  1744. <member name="M:NetTopologySuite.Algorithm.ElevationModel.#ctor(System.Double,NetTopologySuite.Geometries.Envelope)">
  1745. <summary>
  1746. Creates an elevation model that always returns <paramref name="z"/> as result.
  1747. </summary>
  1748. <param name="z">The result value for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> or its overloads.</param>
  1749. <param name="extent">The extent where this elevation model is valid</param>
  1750. </member>
  1751. <member name="P:NetTopologySuite.Algorithm.ElevationModel.NoZ">
  1752. <summary>
  1753. Gets or sets a value indicating the default <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>
  1754. </summary>
  1755. <remarks>The value <c>null</c> cannot be assigned to this property, it will be converted to a no-op elevation model.</remarks>
  1756. </member>
  1757. <member name="P:NetTopologySuite.Algorithm.ElevationModel.Extent">
  1758. <summary>
  1759. Gets a value indicating the extent where this elevation model is valid.
  1760. </summary>
  1761. <remarks>
  1762. If this value is <c>null</c>, no check for the validity of the
  1763. input arguments for <see cref="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)"/> and its overload is made.
  1764. </remarks>
  1765. </member>
  1766. <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)">
  1767. <summary>
  1768. Gets the z-ordinate value for a given <paramref name="coordinate"/>.
  1769. <para/>
  1770. For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is returned.
  1771. </summary>
  1772. <param name="coordinate">A coordinate to get the z-ordinate value.</param>
  1773. <returns>The z-ordinate value</returns>
  1774. </member>
  1775. <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(System.Double,System.Double)">
  1776. <summary>
  1777. Gets the z-ordinate value for a given pair of <paramref name="x"/> and <paramref name="y"/> ordinates.
  1778. <para/>
  1779. For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is returned.
  1780. </summary>
  1781. <param name="x">A x-ordinate value.</param>
  1782. <param name="y">A y-ordinate value.</param>
  1783. <returns>The z-ordinate value</returns>
  1784. </member>
  1785. <member name="M:NetTopologySuite.Algorithm.ElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
  1786. <summary>
  1787. Gets missing <paramref name="z"/>-ordinate values for <paramref name="xy"/>-ordinate pairs.
  1788. <para/>
  1789. For locations outside of <see cref="P:NetTopologySuite.Algorithm.ElevationModel.Extent"/>, <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> is set.
  1790. <para/>
  1791. In order to update z-ordinate at index idx <c>double.IsNaN(z[idx])</c> has to be true.
  1792. </summary>
  1793. <param name="xy">An array of x- and y- ordinates</param>
  1794. <param name="z">An array for the missing z-ordinate values</param>
  1795. <exception cref="T:System.ArgumentException">Thrown if xy span isn't twice the size of z-span</exception>
  1796. </member>
  1797. <member name="T:NetTopologySuite.Algorithm.ElevationModels">
  1798. <summary>
  1799. Extension methods to work with <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>s.
  1800. </summary>
  1801. </member>
  1802. <member name="M:NetTopologySuite.Algorithm.ElevationModels.CopyWithZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Coordinate)">
  1803. <summary>
  1804. Creates a copy of <paramref name="c"/> that has the z-ordinate value at <paramref name="c"/>.
  1805. If the elevation model can't retrieve a z-ordinate value, a copy of <paramref name="c"/> is
  1806. returned.
  1807. </summary>
  1808. <param name="self">The elevation model to use</param>
  1809. <param name="c">A coordinate</param>
  1810. <returns>A copy of <paramref name="c"/> with the z-ordinate value.</returns>
  1811. </member>
  1812. <member name="M:NetTopologySuite.Algorithm.ElevationModels.GetZ(NetTopologySuite.Algorithm.ElevationModel,System.Double[],System.Double[])">
  1813. <summary>
  1814. Function to get z-ordinate values for an array of xy-ordinate values
  1815. </summary>
  1816. <param name="self">The elevation model to use</param>
  1817. <param name="xy">An array of xy-ordinate values</param>
  1818. <param name="z">The array of z-ordinate values</param>
  1819. </member>
  1820. <member name="T:NetTopologySuite.Algorithm.ElevationModels.CoordinateSequenceToXYAndZ">
  1821. <summary>
  1822. Method signature to extract xy- and z-ordinate values from a coordinate sequence
  1823. </summary>
  1824. <param name="sequence">The sequence to extract xy- and z ordinates from</param>
  1825. <param name="xy">The xy-ordinate values</param>
  1826. <param name="z">The z-ordinate values</param>
  1827. </member>
  1828. <member name="M:NetTopologySuite.Algorithm.ElevationModels.AddMissingZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Geometry)">
  1829. <summary>
  1830. Method to add missing z-ordinate values to a geometry. The geometry must be
  1831. built of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s that are able to carry z-ordinate values.
  1832. </summary>
  1833. <param name="self">The elevation model providing missing z-ordinate values</param>
  1834. <param name="g">The geometry to add the missing z-ordinate values to</param>
  1835. </member>
  1836. <member name="M:NetTopologySuite.Algorithm.ElevationModels.AddMissingZ(NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.ElevationModels.CoordinateSequenceToXYAndZ)">
  1837. <summary>
  1838. Method to add missing z-ordinate values to a geometry. The geometry must be
  1839. built of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s that are able to carry z-ordinate values.
  1840. </summary>
  1841. <param name="self">The elevation model providing missing z-ordinate values</param>
  1842. <param name="g">The geometry to add the missing z-ordinate values to</param>
  1843. <param name="seqToXYAndZ">A method to convert a coordinate sequence into arrays of xy- and z-ordinate values.</param>
  1844. </member>
  1845. <member name="T:NetTopologySuite.Algorithm.ElevationModels.AddMissingZFilter">
  1846. <summary>
  1847. A filter class to add z-ordinate values where they are missing
  1848. </summary>
  1849. </member>
  1850. <member name="M:NetTopologySuite.Algorithm.ElevationModels.CsToXYAndZ(NetTopologySuite.Geometries.CoordinateSequence,System.Span{System.Double},System.Span{System.Double})">
  1851. <summary>
  1852. Default -naive- implementation to convert sequence to arrays of xy- and z-ordinate values
  1853. </summary>
  1854. <param name="seq">A coordinate sequence</param>
  1855. <param name="xy">An array with the xy-ordinates of <paramref name="seq"/>. It has to provide space for 2x <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/> elements</param>
  1856. <param name="z">An array with the z-ordinate values of <paramref name="seq"/>. It has to provide space for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/> elements</param>
  1857. </member>
  1858. <member name="T:NetTopologySuite.Algorithm.HCoordinate">
  1859. <summary>
  1860. Represents a homogeneous coordinate in a 2-D coordinate space.
  1861. In NTS <see cref="T:NetTopologySuite.Algorithm.HCoordinate"/>s are used as a clean way
  1862. of computing intersections between line segments.
  1863. </summary>
  1864. <author>David Skea</author>
  1865. </member>
  1866. <member name="M:NetTopologySuite.Algorithm.HCoordinate.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1867. <summary>
  1868. Computes the (approximate) intersection point between two line segments using homogeneous coordinates.
  1869. </summary>
  1870. <remarks>
  1871. Note that this algorithm is
  1872. not numerically stable; i.e. it can produce intersection points which
  1873. lie outside the envelope of the line segments themselves. In order
  1874. to increase the precision of the calculation input points should be normalized
  1875. before passing them to this routine.
  1876. </remarks>
  1877. <param name="p1">1st Coordinate of 1st linesegment</param>
  1878. <param name="p2">2nd Coordinate of 1st linesegment</param>
  1879. <param name="q1">1st Coordinate of 2nd linesegment</param>
  1880. <param name="q2">2nd Coordinate of 2nd linesegment</param>
  1881. </member>
  1882. <member name="M:NetTopologySuite.Algorithm.HCoordinate.OldIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1883. <summary>
  1884. Computes the (approximate) intersection point between two line segments
  1885. using homogeneous coordinates.
  1886. Note that this algorithm is
  1887. not numerically stable; i.e. it can produce intersection points which
  1888. lie outside the envelope of the line segments themselves. In order
  1889. to increase the precision of the calculation input points should be normalized
  1890. before passing them to this routine.
  1891. </summary>
  1892. <param name="p1"></param>
  1893. <param name="p2"></param>
  1894. <param name="q1"></param>
  1895. <param name="q2"></param>
  1896. <returns></returns>
  1897. </member>
  1898. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor">
  1899. <summary>
  1900. </summary>
  1901. </member>
  1902. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(System.Double,System.Double,System.Double)">
  1903. <summary>
  1904. </summary>
  1905. <param name="x"></param>
  1906. <param name="y"></param>
  1907. <param name="w"></param>
  1908. </member>
  1909. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate)">
  1910. <summary>
  1911. </summary>
  1912. <param name="p"></param>
  1913. </member>
  1914. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Algorithm.HCoordinate,NetTopologySuite.Algorithm.HCoordinate)">
  1915. <summary>
  1916. </summary>
  1917. <param name="p1"></param>
  1918. <param name="p2"></param>
  1919. </member>
  1920. <member name="M:NetTopologySuite.Algorithm.HCoordinate.GetX">
  1921. <summary>
  1922. </summary>
  1923. <returns></returns>
  1924. </member>
  1925. <member name="M:NetTopologySuite.Algorithm.HCoordinate.GetY">
  1926. <summary>
  1927. </summary>
  1928. <returns></returns>
  1929. </member>
  1930. <member name="P:NetTopologySuite.Algorithm.HCoordinate.Coordinate">
  1931. <summary>
  1932. </summary>
  1933. </member>
  1934. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1935. <summary>
  1936. Constructs a homogeneous coordinate which is the intersection of the lines <see cref="P:NetTopologySuite.Algorithm.HCoordinate.Coordinate"/>s.
  1937. define by the homogeneous coordinates represented by two
  1938. </summary>
  1939. <param name="p1">A coordinate</param>
  1940. <param name="p2">A coordinate</param>
  1941. </member>
  1942. <member name="M:NetTopologySuite.Algorithm.HCoordinate.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  1943. <summary>
  1944. Creates an instance of this
  1945. </summary>
  1946. <param name="p1"></param>
  1947. <param name="p2"></param>
  1948. <param name="q1"></param>
  1949. <param name="q2"></param>
  1950. </member>
  1951. <member name="T:NetTopologySuite.Algorithm.Hull.ConcaveHull">
  1952. <summary>
  1953. Constructs a concave hull of a set of points.
  1954. A concave hull is a possibly non-convex polygon containing all the input points.
  1955. A given set of points has a sequence of hulls of increasing concaveness,
  1956. determined by a numeric target parameter.
  1957. <para/>
  1958. The hull is constructed by removing border triangles
  1959. of the Delaunay Triangulation of the points,
  1960. as long as their "size" is larger than the target criterion.
  1961. <para/>
  1962. The target criteria are:
  1963. <list type="table">
  1964. <item>
  1965. <term>Maximum Edge Length</term>
  1966. <description>the length of the longest edge of the hull is no larger
  1967. than this value.</description>
  1968. </item>
  1969. <item>
  1970. <term>Maximum Edge Length Factor</term>
  1971. <description>determines the Maximum Edge Length
  1972. by a fraction of the difference between the longest and shortest edge lengths
  1973. in the Delaunay Triangulation.
  1974. This normalizes the <b>Maximum Edge Length</b> to be scale-free.
  1975. A value of 1 produces the convex hull; a value of 0 produces maximum concaveness.
  1976. </description></item>
  1977. <item>
  1978. <term>Alpha</term>
  1979. <description>produces Alpha-shapes,
  1980. by removing border triangles with a circumradius greater than alpha.
  1981. Large values produce the convex hull; a value of 0 produces maximum concaveness.</description>
  1982. </item>
  1983. </list>
  1984. The preferred criterion is the <b>Maximum Edge Length Ratio</b>, since it is
  1985. scale-free and local(so that no assumption needs to be made about the
  1986. total amount of concaveness present).
  1987. <para/>
  1988. Other length criteria can be used by setting the Maximum Edge Length directly.
  1989. For example, use a length relative to the longest edge length
  1990. in the Minimum Spanning Tree of the point set.
  1991. Or, use a length derived from the <see cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/> value.
  1992. <para/>
  1993. The computed hull is always a single connected <see cref="T:NetTopologySuite.Geometries.Polygon"/>
  1994. (unless it is degenerate, in which case it will be a <see cref="T:NetTopologySuite.Geometries.Point"/> or a <see cref="T:NetTopologySuite.Geometries.LineString"/>).
  1995. This constraint may cause the concave hull to fail to meet the target criteria.
  1996. <para/>
  1997. Optionally the concave hull can be allowed to contain holes by setting <see cref="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.HolesAllowed"/>.
  1998. </summary>
  1999. <author>Martin Davis</author>
  2000. </member>
  2001. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)">
  2002. <summary>
  2003. Computes the approximate edge length of
  2004. a uniform square grid having the same number of
  2005. points as a geometry and the same area as its convex hull.
  2006. This value can be used to determine a suitable length threshold value
  2007. for computing a concave hull.
  2008. A value from 2 to 4 times the uniform grid length
  2009. seems to produce reasonable results.
  2010. </summary>
  2011. <param name="geom">A geometry</param>
  2012. <returns>The approximate uniform grid length</returns>
  2013. </member>
  2014. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
  2015. <summary>
  2016. Computes the concave hull of the vertices in a geometry
  2017. using the target criterion of maximum edge length.
  2018. </summary>
  2019. <param name="geom">The input geometry</param>
  2020. <param name="maxLength">The target maximum edge length</param>
  2021. <returns>The concave hull</returns>
  2022. </member>
  2023. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
  2024. <summary>
  2025. Computes the concave hull of the vertices in a geometry
  2026. using the target criterion of maximum edge length,
  2027. and optionally allowing holes.
  2028. </summary>
  2029. <param name="geom">The input geometry</param>
  2030. <param name="maxLength">The target maximum edge length</param>
  2031. <param name="isHolesAllowed">A flag whether holes are allowed in the result</param>
  2032. <returns>The concave hull</returns>
  2033. </member>
  2034. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
  2035. <summary>
  2036. Computes the concave hull of the vertices in a geometry
  2037. using the target criterion of maximum edge length ratio.
  2038. The edge length ratio is a fraction of the length difference
  2039. between the longest and shortest edges
  2040. in the Delaunay Triangulation of the input points.
  2041. </summary>
  2042. <param name="geom">The input geometry</param>
  2043. <param name="lengthRatio">The target edge length ratio</param>
  2044. <returns>The concave hull</returns>
  2045. </member>
  2046. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
  2047. <summary>
  2048. Computes the concave hull of the vertices in a geometry
  2049. using the target criterion of maximum edge length ratio,
  2050. and optionally allowing holes.
  2051. The edge length factor is a fraction of the length difference
  2052. between the longest and shortest edges
  2053. in the Delaunay Triangulation of the input points.
  2054. </summary>
  2055. <param name="geom">The input geometry</param>
  2056. <param name="lengthRatio">The target edge length ratio</param>
  2057. <param name="isHolesAllowed">A flag whether holes are allowed in the result</param>
  2058. <returns>The concave hull</returns>
  2059. </member>
  2060. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.AlphaShape(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
  2061. <summary>
  2062. Computes the alpha shape of a geometry as a polygon.
  2063. The alpha parameter is the radius of the eroding disc.
  2064. </summary>
  2065. <param name="geom">The input geometry</param>
  2066. <param name="alpha">The radius of the eroding disk</param>
  2067. <param name="isHolesAllowed">A flag indicating if holes are allowed in the result</param>
  2068. <returns>The alpha schape polygon</returns>
  2069. </member>
  2070. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.#ctor(NetTopologySuite.Geometries.Geometry)">
  2071. <summary>
  2072. Creates a new instance for a given geometry.
  2073. </summary>
  2074. <param name="geom">The input geometry</param>
  2075. </member>
  2076. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.MaximumEdgeLength">
  2077. <summary>Gets or sets the target maximum edge length for the concave hull.
  2078. The length value must be zero or greater.
  2079. <list type="bullet">
  2080. <item><description>The value 0.0 produces the concave hull of smallest area
  2081. that is still connected.</description></item>
  2082. <item><description>Larger values produce less concave results.
  2083. A value equal or greater than the longest Delaunay Triangulation edge length
  2084. produces the convex hull.</description></item>
  2085. </list>
  2086. The <see cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/> value may be used as
  2087. the basis for estimating an appropriate target maximum edge length.
  2088. </summary>
  2089. <seealso cref="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.UniformGridEdgeLength(NetTopologySuite.Geometries.Geometry)"/>
  2090. <returns>The target maximum edge length for the concave hull</returns>
  2091. </member>
  2092. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.MaximumEdgeLengthRatio">
  2093. <summary>
  2094. Gets or sets the target maximum edge length ratio for the concave hull.
  2095. The edge length ratio is a fraction of the difference
  2096. between the longest and shortest edge lengths
  2097. in the Delaunay Triangulation of the input points.
  2098. It is a value in the range 0 to 1.
  2099. <list type="bullet">
  2100. <item><description>The value 0.0 produces a concave hull of minimum area
  2101. that is still connected.</description></item>
  2102. <item><description>The value 1.0 produces the convex hull.</description></item>
  2103. </list>
  2104. </summary>
  2105. <returns>The target maximum edge length factor for the concave hull</returns>
  2106. </member>
  2107. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.Alpha">
  2108. <summary>
  2109. Gets or sets the alpha parameter to compute an alpha shape of the input.
  2110. Alpha is the radius of the eroding disc.
  2111. Border triangles with circumradius greater than alpha are removed.
  2112. </summary>
  2113. </member>
  2114. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHull.HolesAllowed">
  2115. <summary>
  2116. Gets or sets whether holes are allowed in the concave hull polygon.
  2117. </summary>
  2118. </member>
  2119. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.GetHull">
  2120. <summary>
  2121. Gets the computed concave hull.
  2122. </summary>
  2123. <returns>The concave hull</returns>
  2124. </member>
  2125. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.ComputeHull(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  2126. <summary>Computes the concave hull using edge length as the target criteria.
  2127. </summary>
  2128. <remarks>
  2129. The erosion is done in two phases: first the border, then any
  2130. internal holes (if required).
  2131. This allows an fast connection check to be used
  2132. when eroding holes,
  2133. which makes this much more efficient than the area-based algorithm.
  2134. </remarks>
  2135. <param name="triList">The triangulation</param>
  2136. </member>
  2137. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.AddBorderTri(NetTopologySuite.Algorithm.Hull.HullTri,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Algorithm.Hull.HullTri})">
  2138. <summary>
  2139. Adds a Tri to the queue.
  2140. Only add tris with a single border edge,
  2141. since otherwise that would risk isolating a vertex if
  2142. the tri ends up being eroded from the hull.
  2143. Sets the tri size according to the threshold parameter being used.
  2144. </summary>
  2145. <param name="tri">The Tri to add</param>
  2146. <param name="queue">The priority queue to add to</param>
  2147. </member>
  2148. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.IsInHull(NetTopologySuite.Algorithm.Hull.HullTri)">
  2149. <summary>
  2150. Tests if a tri is included in the hull.
  2151. Tris with size less than the maximum are included in the hull.
  2152. </summary>
  2153. <param name="tri">The tri to test</param>
  2154. <returns><c>true</c> if the tri is included in the hull</returns>
  2155. </member>
  2156. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.FindCandidateHoles(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},System.Double)">
  2157. <summary>
  2158. Finds tris which may be the start of holes.
  2159. </summary>
  2160. <remarks>
  2161. Only tris which have a long enough edge and which do not touch the current hull
  2162. boundary are included.<br/>
  2163. This avoids the risk of disconnecting the result polygon.
  2164. The list is sorted in decreasing order of size.
  2165. </remarks>
  2166. <param name="triList">The triangulation</param>
  2167. <param name="maxSizeInHull">maximum tri size which is not in a hole</param>
  2168. <returns>A list of candidate tris that may start a hole</returns>
  2169. </member>
  2170. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHull.RemoveHole(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Algorithm.Hull.HullTri)">
  2171. <summary>
  2172. Erodes a hole starting at a given triangle,
  2173. and eroding all adjacent triangles with boundary edge length above target.
  2174. </summary>
  2175. <param name="triList">The triangulation</param>
  2176. <param name="triHole">A tri which is a hole</param>
  2177. </member>
  2178. <member name="T:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons">
  2179. <summary>
  2180. Constructs a concave hull of a set of polygons, respecting
  2181. the polygons as constraints.
  2182. A concave hull is a possibly non-convex polygon containing all the input polygons.
  2183. A given set of polygons has a sequence of hulls of increasing concaveness,
  2184. determined by a numeric target parameter.
  2185. The computed hull "fills the gap" between the polygons,
  2186. and does not intersect their interior.
  2187. <para/>
  2188. The concave hull is constructed by removing the longest outer edges
  2189. of the Delaunay Triangulation of the space between the polygons,
  2190. until the target criterion parameter is reached.
  2191. <para/>
  2192. The target criteria are:
  2193. <list type="bullet">
  2194. <item><term>Maximum Edge Length</term><description>the length of the longest edge between the polygons is no larger
  2195. than this value.</description></item>
  2196. <item><term>Maximum Edge Length Ratio</term><description>determine the Maximum Edge Length
  2197. as a fraction of the difference between the longest and shortest edge lengths
  2198. between the polygons.
  2199. This normalizes the <b>Maximum Edge Length</b> to be scale-free.
  2200. A value of 1 produces the convex hull; a value of 0 produces the original polygons.</description></item>
  2201. </list>
  2202. The preferred criterion is the <b>Maximum Edge Length Ratio</b>, since it is
  2203. scale-free and local (so that no assumption needs to be made about the
  2204. total amount of concaveness present).
  2205. <para/>
  2206. Optionally the concave hull can be allowed to contain holes, via
  2207. <see cref="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.HolesAllowed"/>.
  2208. <para/>
  2209. The hull can be specified as being "tight", which means it follows the outer boundaries
  2210. of the input polygons.
  2211. <para/>
  2212. The input polygons must form a valid MultiPolygon
  2213. (i.e.they must be non - overlapping).
  2214. </summary>
  2215. <author>Martin Davis</author>
  2216. </member>
  2217. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
  2218. <summary>
  2219. Computes a concave hull of set of polygons
  2220. using the target criterion of maximum edge length.
  2221. </summary>
  2222. <param name="polygons">The input polygons</param>
  2223. <param name="maxLength">The target maximum edge length</param>
  2224. <returns>The concave hull</returns>
  2225. </member>
  2226. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLength(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean,System.Boolean)">
  2227. <summary>
  2228. Computes a concave hull of set of polygons
  2229. using the target criterion of maximum edge length,
  2230. and allowing control over whether the hull boundary is tight
  2231. and can contain holes.
  2232. </summary>
  2233. <param name="polygons">The input polygons</param>
  2234. <param name="maxLength">The target maximum edge length</param>
  2235. <param name="isTight">A flag indicating if the hull should be tight to the outside of the polygons</param>
  2236. <param name="isHolesAllowed">A flag indicating if holes are allowed in the hull polygon</param>
  2237. <returns>The concave hull</returns>
  2238. </member>
  2239. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
  2240. <summary>
  2241. Computes a concave hull of set of polygons
  2242. using the target criterion of maximum edge length ratio.
  2243. </summary>
  2244. <param name="polygons">The input polygons</param>
  2245. <param name="lengthRatio">The target maximum edge length ratio</param>
  2246. </member>
  2247. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveHullByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean,System.Boolean)">
  2248. <summary>
  2249. Computes a concave hull of set of polygons
  2250. using the target criterion of maximum edge length ratio,
  2251. and allowing control over whether the hull boundary is tight
  2252. and can contain holes.
  2253. </summary>
  2254. <param name="polygons">The input polygons</param>
  2255. <param name="lengthRatio">The target maximum edge length ratio</param>
  2256. <param name="isTight">A flag indicating if the hull should be tight to the outside of the polygons</param>
  2257. <param name="isHolesAllowed">A flag indicating if holes are allowed in the hull polygon</param>
  2258. <returns>The concave hull</returns>
  2259. </member>
  2260. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveFillByLength(NetTopologySuite.Geometries.Geometry,System.Double)">
  2261. <summary>
  2262. Computes a concave fill area between a set of polygons,
  2263. using the target criterion of maximum edge length.
  2264. </summary>
  2265. <param name="polygons">The input polygons</param>
  2266. <param name="maxLength">The target maximum edge length</param>
  2267. <returns>The concave fill</returns>
  2268. </member>
  2269. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.ConcaveFillByLengthRatio(NetTopologySuite.Geometries.Geometry,System.Double)">
  2270. <summary>
  2271. Computes a concave fill area between a set of polygons,
  2272. using the target criterion of maximum edge length ratio.
  2273. </summary>
  2274. <param name="polygons">The input polygons</param>
  2275. <param name="lengthRatio">The target maximum edge length ratio</param>
  2276. <returns>The concave fill</returns>
  2277. </member>
  2278. <member name="F:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons._borderEdgeMap">
  2279. <summary>
  2280. Records the edge index of the longest border edge for border tris,
  2281. so it can be tested for length and possible removal.
  2282. </summary>
  2283. </member>
  2284. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.#ctor(NetTopologySuite.Geometries.Geometry)">
  2285. <summary>
  2286. Creates a new instance for a given geometry.
  2287. </summary>
  2288. <param name="polygons">The input geometry</param>
  2289. </member>
  2290. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.MaximumEdgeLength">
  2291. <summary>
  2292. Gets or sets the target maximum edge length for the concave hull.
  2293. The length value must be zero or greater.
  2294. <list type="bullet">
  2295. <item><description>The value 0.0 produces the input polygons.</description></item>
  2296. <item><description>Larger values produce less concave results.</description></item>
  2297. <item><description>Above a certain large value the result is the convex hull of the input.</description></item>
  2298. </list>
  2299. <para/>
  2300. The edge length ratio provides a scale-free parameter which
  2301. is intended to produce similar concave results for a variety of inputs.
  2302. </summary>
  2303. </member>
  2304. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.MaximumEdgeLengthRatio">
  2305. <summary>Gets or sets the target maximum edge length ratio for the concave hull.
  2306. The edge length ratio is a fraction of the difference
  2307. between the longest and shortest edge lengths
  2308. in the Delaunay Triangulation of the area between the input polygons.
  2309. (Roughly speaking, it is a fraction of the difference between
  2310. the shortest and longest distances between the input polygons.)
  2311. It is a value in the range 0 to 1.
  2312. <list type="bullet">
  2313. <item><description>The value 0.0 produces the original input polygons.</description></item>
  2314. <item><description>The value 1.0 produces the convex hull.</description></item>
  2315. </list>
  2316. </summary>
  2317. </member>
  2318. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.HolesAllowed">
  2319. <summary>
  2320. Gets or sets a flag indicating whether holes are allowed in the concave hull polygon.
  2321. </summary>
  2322. </member>
  2323. <member name="P:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.Tight">
  2324. <summary>
  2325. Gets or sets a flag indicating whether the boundary of the hull
  2326. polygon is kept tight to the outer edges of the input polygons.
  2327. </summary>
  2328. </member>
  2329. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.GetHull">
  2330. <summary>
  2331. Gets the computed concave hull.
  2332. </summary>
  2333. <returns>The concave hull</returns>
  2334. </member>
  2335. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.GetFill">
  2336. <summary>
  2337. Gets the concave fill, which is the area between the input polygons,
  2338. subject to the concaveness control parameter.
  2339. </summary>
  2340. <returns>The concave fill</returns>
  2341. </member>
  2342. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.VertexIndex(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Geometries.Coordinate[])">
  2343. <summary>
  2344. Get the tri vertex index of some point in a list,
  2345. or -1 if none are vertices.
  2346. </summary>
  2347. <param name="tri">The tri to test for containing a point</param>
  2348. <param name="pts">The points to test</param>
  2349. <returns>The vertex index of a point, or -1</returns>
  2350. </member>
  2351. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.IsTouchingSinglePolygon(NetTopologySuite.Triangulate.Tri.Tri)">
  2352. <summary>
  2353. Tests whether a triangle touches a single polygon at all vertices.
  2354. If so, it is a candidate for removal if the hull polygon
  2355. is being kept tight to the outer boundary of the input polygons.
  2356. Tris which touch more than one polygon are called "bridging".
  2357. </summary>
  2358. <param name="tri"></param>
  2359. <returns><c>true</c> if the tri touches a single polygon</returns>
  2360. </member>
  2361. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.AddBorderTri(NetTopologySuite.Triangulate.Tri.Tri,System.Int32)">
  2362. <summary>
  2363. Adds an adjacent tri to the current border.
  2364. The adjacent edge is recorded as the border edge for the tri.
  2365. Note that only edges adjacent to another tri can become border edges.
  2366. Since constraint-adjacent edges do not have an adjacent tri,
  2367. they can never be on the border and thus will not be removed
  2368. due to being shorter than the length threshold.
  2369. The tri containing them may still be removed via another edge, however.
  2370. </summary>
  2371. <param name="tri">The tri adjacent to the tri to be added to the border</param>
  2372. <param name="index">The index of the adjacent tri</param>
  2373. </member>
  2374. <member name="M:NetTopologySuite.Algorithm.Hull.ConcaveHullOfPolygons.CreateFrame(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.LinearRing[],NetTopologySuite.Geometries.GeometryFactory)">
  2375. <summary>
  2376. Creates a rectangular "frame" around the input polygons,
  2377. with the input polygons as holes in it.
  2378. The frame is large enough that the constrained Delaunay triangulation
  2379. of it should contain the convex hull of the input as edges.
  2380. The frame corner triangles can be removed to produce a
  2381. triangulation of the space around and between the input polygons.
  2382. </summary>
  2383. <param name="polygonsEnv"></param>
  2384. <param name="polygonRings"></param>
  2385. <param name="geomFactory"></param>
  2386. <returns>The frame polygon</returns>
  2387. </member>
  2388. <member name="T:NetTopologySuite.Algorithm.Hull.HullTri">
  2389. <summary>
  2390. Tris which are used to form a concave hull.
  2391. If a Tri has an edge (or edges) with no adjacent tri
  2392. the tri is on the boundary of the triangulation.
  2393. The edge is a boundary edge.
  2394. The union of those edges
  2395. forms the (linear) boundary of the triangulation.
  2396. The triangulation area may be a Polygon or MultiPolygon, and may or may not contain holes.
  2397. </summary>
  2398. <author>Martin Davis</author>
  2399. </member>
  2400. <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.SetSizeToBoundary">
  2401. <summary>
  2402. Sets the size to be the length of the boundary edges.
  2403. This is used when constructing hull without holes,
  2404. by erosion from the triangulation boundary.
  2405. </summary>
  2406. </member>
  2407. <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndex">
  2408. <summary>
  2409. Gets an index of a boundary edge, if there is one.
  2410. </summary>
  2411. <returns>A boundary edge index, or -1</returns>
  2412. </member>
  2413. <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndexCCW">
  2414. <summary>
  2415. Gets the most CCW boundary edge index.
  2416. This assumes there is at least one non-boundary edge.
  2417. </summary>
  2418. <returns>The CCW boundary edge index</returns>
  2419. </member>
  2420. <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.BoundaryIndexCW">
  2421. <summary>
  2422. Gets the most CW boundary edge index.
  2423. This assumes there is at least one non-boundary edge.
  2424. </summary>
  2425. <returns>The CW boundary edge index</returns>
  2426. </member>
  2427. <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.IsConnecting">
  2428. <summary>
  2429. Tests if this tri is the only one connecting its 2 adjacents.
  2430. Assumes that the tri is on the boundary of the triangulation
  2431. and that the triangulation does not contain holes
  2432. </summary>
  2433. <returns><c>true</c> if the tri is the only connection</returns>
  2434. </member>
  2435. <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.Adjacent2VertexIndex">
  2436. <summary>
  2437. Gets the index of a vertex which is adjacent to two other tris (if any).
  2438. </summary>
  2439. <returns>The vertex index or -1</returns>
  2440. </member>
  2441. <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.IsolatedVertexIndex(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  2442. <summary>
  2443. Tests whether some vertex of this Tri has degree = 1.
  2444. In this case it is not in any other Tris.
  2445. </summary>
  2446. <param name="triList">The triangulation</param>
  2447. <returns><c>true</c> if any vertex of this tri has a degree of 1</returns>
  2448. </member>
  2449. <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.CompareTo(NetTopologySuite.Algorithm.Hull.HullTri)">
  2450. <summary>
  2451. Sorts tris in decreasing order.
  2452. Since PriorityQueues sort in <i>ascending</i> order,
  2453. to sort with the largest at the head,
  2454. smaller sizes must compare as greater than larger sizes.
  2455. (i.e. the normal numeric comparison is reversed).
  2456. If the sizes are identical (which should be an infrequent case),
  2457. the areas are compared, with larger areas sorting before smaller.
  2458. (The rationale is that larger areas indicate an area of lower point density,
  2459. which is more likely to be in the exterior of the computed hull.)
  2460. This improves the determinism of the queue ordering.
  2461. </summary>
  2462. </member>
  2463. <member name="P:NetTopologySuite.Algorithm.Hull.HullTri.HasBoundaryTouch">
  2464. <summary>
  2465. Tests if this tri has a vertex which is in the boundary,
  2466. but not in a boundary edge.
  2467. </summary>
  2468. <returns><c>true</c> if the tri touches the boundary at a vertex</returns>
  2469. </member>
  2470. <member name="M:NetTopologySuite.Algorithm.Hull.HullTri.IsConnected(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Algorithm.Hull.HullTri)">
  2471. <summary>
  2472. Tests if a triangulation is edge-connected, if a triangle is removed.<br/>
  2473. NOTE: this is a relatively slow operation.
  2474. </summary>
  2475. <param name="triList">The triangulation</param>
  2476. <param name="exceptTri">The triangle to remove</param>
  2477. <returns><c>true</c> if the triangulation is still connected</returns>
  2478. </member>
  2479. <member name="T:NetTopologySuite.Algorithm.Hull.HullTriangulation">
  2480. <summary>
  2481. Functions to operate on triangulations represented as
  2482. lists of <see cref="T:NetTopologySuite.Algorithm.Hull.HullTri"/>s.
  2483. </summary>
  2484. </member>
  2485. <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.Union(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
  2486. <summary>
  2487. Creates a polygonal geometry representing the area of a triangulation
  2488. which may be disconnected or contain holes.
  2489. </summary>
  2490. <param name="triList">The triangulation</param>
  2491. <param name="geomFactory">The geometry factory</param>
  2492. <returns>The area polygonal geometry</returns>
  2493. </member>
  2494. <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.TraceBoundaryPolygon(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
  2495. <summary>
  2496. Creates a Polygon representing the area of a triangulation
  2497. which is connected and contains no holes.
  2498. </summary>
  2499. <param name="triList">The triangulation</param>
  2500. <param name="geomFactory">The geometry factory to use</param>
  2501. <returns>The area polygon</returns>
  2502. </member>
  2503. <member name="M:NetTopologySuite.Algorithm.Hull.HullTriangulation.TraceBoundary(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  2504. <summary>
  2505. Extracts the coordinates of the edgees along the boundary of a triangulation,
  2506. by tracing CW around the border triangles.<br/>
  2507. Assumption: there are at least 2 tris, they are connected,
  2508. and there are no holes.
  2509. So each tri has at least one non-border edge, and there is only one border.
  2510. </summary>
  2511. <param name="triList">The triangulation</param>
  2512. <returns>The border of the triangulation</returns>
  2513. </member>
  2514. <member name="T:NetTopologySuite.Algorithm.InteriorPoint">
  2515. <summary>
  2516. Computes an interior point of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  2517. An interior point is guaranteed to lie in the interior of the Geometry,
  2518. if it possible to calculate such a point exactly.
  2519. For collections the interior point is computed for the collection of
  2520. non-empty elements of highest dimension.
  2521. Otherwise, the point may lie on the boundary of the geometry.
  2522. <para/>
  2523. The interior point of an empty geometry is <c>POINT EMPTY</c>.
  2524. <h2>Algorithm</h2>
  2525. The point is chosen to be "close to the center" of the geometry.
  2526. The location depends on the dimension of the input:
  2527. <list type="bullet">
  2528. <item><term>Dimension 2</term><description>the interior point is constructed in the middle of the longest interior segment
  2529. of a line bisecting the area.</description></item>
  2530. <item><term>Dimension 1</term><description>the interior point is the interior or boundary vertex closest to the centroid.</description></item>
  2531. <item><term>Dimension 0</term><description>the point is the point closest to the centroid.</description></item>
  2532. </list>
  2533. <see cref="T:NetTopologySuite.Algorithm.Centroid"/>
  2534. <see cref="T:NetTopologySuite.Algorithm.Construct.MaximumInscribedCircle"/>
  2535. <see cref="T:NetTopologySuite.Algorithm.Construct.LargestEmptyCircle"/>
  2536. </summary>
  2537. </member>
  2538. <member name="M:NetTopologySuite.Algorithm.InteriorPoint.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
  2539. <summary>
  2540. Computes a location of an interior point in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  2541. <para/>
  2542. Handles all geometry types.
  2543. </summary>
  2544. <param name="geom">A geometry in which to find an interior point</param>
  2545. <returns>the location of an interior point, or <c>POINT EMPTY</c> if the input is empty
  2546. </returns>
  2547. </member>
  2548. <member name="M:NetTopologySuite.Algorithm.InteriorPoint.GetInteriorCoord(NetTopologySuite.Geometries.Geometry)">
  2549. <summary>
  2550. Computes a location of an interior point in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  2551. <para/>
  2552. Handles all geometry types.
  2553. </summary>
  2554. <remarks>
  2555. This function is called <c>GetInteriorPoint</c> in JTS.
  2556. It has been renamed to <c>GetInteriorCoord</c> to prevent a breaking change.</remarks>
  2557. <param name="geom">A geometry in which to find an interior point</param>
  2558. <returns>the location of an interior point, or <c>null</c> if the input is empty
  2559. </returns>
  2560. </member>
  2561. <member name="T:NetTopologySuite.Algorithm.InteriorPointArea">
  2562. <summary>
  2563. Computes a point in the interior of an areal geometry.
  2564. The point will lie in the geometry interior
  2565. in all except certain pathological cases.
  2566. </summary>
  2567. <remarks>
  2568. <h2>Algorithm:</h2>
  2569. For each input polygon:
  2570. <list type="bullet">
  2571. <item><description>
  2572. Determine a horizontal scan line on which the interior
  2573. point will be located.
  2574. To increase the chance of the scan line
  2575. having non-zero-width intersection with the polygon
  2576. the scan line Y ordinate is chosen to be near the centre of the polygon's
  2577. Y extent but distinct from all of vertex Y ordinates.
  2578. </description></item>
  2579. <item><description>
  2580. Compute the sections of the scan line
  2581. which lie in the interior of the polygon.
  2582. </description></item>
  2583. <item><description>
  2584. Choose the widest interior section
  2585. and take its midpoint as the interior point.
  2586. </description></item>
  2587. </list>
  2588. The final interior point is chosen as
  2589. the one occurring in the widest interior section.
  2590. <para>
  2591. This algorithm is a tradeoff between performance
  2592. and point quality (where points further from the geometry
  2593. boundary are considered to be higher quality)
  2594. Priority is given to performance.
  2595. This means that the computed interior point
  2596. may not be suitable for some uses
  2597. (such as label positioning).
  2598. </para>
  2599. <para>
  2600. The algorithm handles some kinds of invalid/degenerate geometry,
  2601. including zero-area and self-intersecting polygons.
  2602. </para>
  2603. <para>
  2604. Empty geometry is handled by returning a <see langword="null"/> point.
  2605. </para>
  2606. <h3>KNOWN BUGS</h3>
  2607. <list type="bullet">
  2608. <item><description>
  2609. If a fixed precision model is used,
  2610. in some cases this method may return a point
  2611. which does not lie in the interior.
  2612. </description></item>
  2613. <item><description>
  2614. If the input polygon is <i>extremely</i> narrow the computed point
  2615. may not lie in the interior of the polygon.
  2616. </description></item>
  2617. </list>
  2618. </remarks>
  2619. </member>
  2620. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
  2621. <summary>
  2622. Computes an interior point for the
  2623. polygonal components of a Geometry.
  2624. </summary>
  2625. <param name="geom">The geometry to compute.</param>
  2626. <returns>
  2627. The computed interior point,
  2628. or <see langword="null"/> if the geometry has no polygonal components.
  2629. </returns>
  2630. </member>
  2631. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.Avg(System.Double,System.Double)">
  2632. <summary>
  2633. </summary>
  2634. <param name="a"></param>
  2635. <param name="b"></param>
  2636. <returns></returns>
  2637. </member>
  2638. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.#ctor(NetTopologySuite.Geometries.Geometry)">
  2639. <summary>
  2640. Creates a new interior point finder
  2641. for an areal geometry.
  2642. </summary>
  2643. <param name="g">An areal geometry</param>
  2644. </member>
  2645. <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPoint">
  2646. <summary>
  2647. Gets the computed interior point
  2648. or <see langword="null"/> if the input geometry is empty.
  2649. </summary>
  2650. </member>
  2651. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.Process(NetTopologySuite.Geometries.Geometry)">
  2652. <summary>
  2653. Processes a geometry to determine
  2654. the best interior point for
  2655. all component polygons.
  2656. </summary>
  2657. <param name="geom">The geometry to process.</param>
  2658. </member>
  2659. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.ProcessPolygon(NetTopologySuite.Geometries.Polygon)">
  2660. <summary>
  2661. Computes an interior point of a component Polygon
  2662. and updates current best interior point
  2663. if appropriate.
  2664. </summary>
  2665. <param name="polygon">The polygon to process.</param>
  2666. </member>
  2667. <member name="T:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon">
  2668. <summary>
  2669. Computes an interior point in a single <see cref="T:NetTopologySuite.Geometries.Polygon"/>,
  2670. as well as the width of the scan-line section it occurs in
  2671. to allow choosing the widest section occurrence.
  2672. </summary>
  2673. </member>
  2674. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.#ctor(NetTopologySuite.Geometries.Polygon)">
  2675. <summary>
  2676. Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon"/> class.
  2677. </summary>
  2678. <param name="polygon">The polygon to test.</param>
  2679. </member>
  2680. <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.InteriorPoint">
  2681. <summary>
  2682. Gets the computed interior point,
  2683. or <see langword="null"/> if the input geometry is empty.
  2684. </summary>
  2685. </member>
  2686. <member name="P:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Width">
  2687. <summary>
  2688. Gets the width of the scanline section containing the interior point.
  2689. Used to determine the best point to use.
  2690. </summary>
  2691. </member>
  2692. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Process">
  2693. <summary>
  2694. Compute the interior point.
  2695. </summary>
  2696. </member>
  2697. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.FindBestMidpoint(System.Collections.Generic.List{System.Double})">
  2698. <summary>
  2699. Finds the midpoint of the widest interior section.
  2700. Sets the <see cref="F:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon._interiorPoint"/> location and the
  2701. <see cref="F:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon._interiorSectionWidth"/>
  2702. </summary>
  2703. <param name="crossings">The list of scan-line X ordinates</param>
  2704. </member>
  2705. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.IsEdgeCrossingCounted(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  2706. <summary>
  2707. Tests if an edge intersection contributes to the crossing count.
  2708. Some crossing situations are not counted,
  2709. to ensure that the list of crossings
  2710. captures strict inside/outside topology.
  2711. </summary>
  2712. <param name="p0">An endpoint of the segment.</param>
  2713. <param name="p1">An endpoint of the segment.</param>
  2714. <param name="scanY">The Y-ordinate of the horizontal line.</param>
  2715. <returns><see langword="true"/> if the edge crossing is counted.</returns>
  2716. </member>
  2717. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.InteriorPointPolygon.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  2718. <summary>
  2719. Computes the intersection of a segment with a horizontal line.
  2720. The segment is expected to cross the horizontal line
  2721. - this condition is not checked.
  2722. Computation uses regular double-precision arithmetic.
  2723. Test seems to indicate this is as good as using DD arithmetic.
  2724. </summary>
  2725. <param name="p0">An endpoint of the segment.</param>
  2726. <param name="p1">An endpoint of the segment.</param>
  2727. <param name="y">The Y-ordinate of the horizontal line</param>
  2728. <returns></returns>
  2729. </member>
  2730. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.IntersectsHorizontalLine(NetTopologySuite.Geometries.Envelope,System.Double)">
  2731. <summary>
  2732. Tests if an envelope intersects a horizontal line.
  2733. </summary>
  2734. <param name="env">The envelope to test.</param>
  2735. <param name="y">The Y-ordinate of the horizontal line.</param>
  2736. <returns><see langword="true"/> if the envelope and line intersect.</returns>
  2737. </member>
  2738. <member name="M:NetTopologySuite.Algorithm.InteriorPointArea.IntersectsHorizontalLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  2739. <summary>
  2740. Tests if a line segment intersects a horizontal line.
  2741. </summary>
  2742. <param name="p0">A segment endpoint.</param>
  2743. <param name="p1">A segment endpoint.</param>
  2744. <param name="y">The Y-ordinate of the horizontal line.</param>
  2745. <returns><see langword="true"/> if the segment and line intersect.</returns>
  2746. </member>
  2747. <member name="T:NetTopologySuite.Algorithm.InteriorPointArea.ScanLineYOrdinateFinder">
  2748. <summary>
  2749. Finds a safe scan line Y ordinate by projecting
  2750. the polygon segments
  2751. to the Y axis and finding the
  2752. Y-axis interval which contains the centre of the Y extent.
  2753. The centre of
  2754. this interval is returned as the scan line Y-ordinate.
  2755. <para>
  2756. Note that in the case of (degenerate, invalid)
  2757. zero-area polygons the computed Y value
  2758. may be equal to a vertex Y-ordinate.
  2759. </para>
  2760. </summary>
  2761. <author>Martin Davis</author>
  2762. </member>
  2763. <member name="T:NetTopologySuite.Algorithm.InteriorPointLine">
  2764. <summary>
  2765. Computes a point in the interior of an linear point.
  2766. Algorithm:
  2767. Find an interior vertex which is closest to
  2768. the centroid of the linestring.
  2769. If there is no interior vertex, find the endpoint which is
  2770. closest to the centroid.
  2771. </summary>
  2772. </member>
  2773. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
  2774. <summary>
  2775. Computes an interior point for the
  2776. linear components of a Geometry.
  2777. </summary>
  2778. <param name="geom">The geometry to compute.</param>
  2779. <returns>
  2780. The computed interior point,
  2781. or <see langword="null"/> if the geometry has no linear components.
  2782. </returns>
  2783. </member>
  2784. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.#ctor(NetTopologySuite.Geometries.Geometry)">
  2785. <summary>
  2786. </summary>
  2787. <param name="g"></param>
  2788. </member>
  2789. <member name="P:NetTopologySuite.Algorithm.InteriorPointLine.InteriorPoint">
  2790. <summary>
  2791. </summary>
  2792. </member>
  2793. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddInterior(NetTopologySuite.Geometries.Geometry)">
  2794. <summary>
  2795. Tests the interior vertices (if any)
  2796. defined by a linear Geometry for the best inside point.
  2797. If a Geometry is not of dimension 1 it is not tested.
  2798. </summary>
  2799. <param name="geom">The point to add.</param>
  2800. </member>
  2801. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddInterior(NetTopologySuite.Geometries.Coordinate[])">
  2802. <summary>
  2803. </summary>
  2804. <param name="pts"></param>
  2805. </member>
  2806. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddEndpoints(NetTopologySuite.Geometries.Geometry)">
  2807. <summary>
  2808. Tests the endpoint vertices
  2809. defined by a linear Geometry for the best inside point.
  2810. If a Geometry is not of dimension 1 it is not tested.
  2811. </summary>
  2812. <param name="geom">The point to add.</param>
  2813. </member>
  2814. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.AddEndpoints(NetTopologySuite.Geometries.Coordinate[])">
  2815. <summary>
  2816. </summary>
  2817. <param name="pts"></param>
  2818. </member>
  2819. <member name="M:NetTopologySuite.Algorithm.InteriorPointLine.Add(NetTopologySuite.Geometries.Coordinate)">
  2820. <summary>
  2821. </summary>
  2822. <param name="point"></param>
  2823. </member>
  2824. <member name="T:NetTopologySuite.Algorithm.InteriorPointPoint">
  2825. <summary>
  2826. Computes a point in the interior of an point point.
  2827. Algorithm:
  2828. Find a point which is closest to the centroid of the point.
  2829. </summary>
  2830. </member>
  2831. <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.GetInteriorPoint(NetTopologySuite.Geometries.Geometry)">
  2832. <summary>
  2833. Computes an interior point for the
  2834. puntal components of a Geometry.
  2835. </summary>
  2836. <param name="geom">The geometry to compute.</param>
  2837. <returns>
  2838. The computed interior point,
  2839. or <see langword="null"/> if the geometry has no puntal components.
  2840. </returns>
  2841. </member>
  2842. <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
  2843. <summary>
  2844. </summary>
  2845. <param name="g"></param>
  2846. </member>
  2847. <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.Add(NetTopologySuite.Geometries.Geometry)">
  2848. <summary>
  2849. Tests the point(s) defined by a Geometry for the best inside point.
  2850. If a Geometry is not of dimension 0 it is not tested.
  2851. </summary>
  2852. <param name="geom">The point to add.</param>
  2853. </member>
  2854. <member name="M:NetTopologySuite.Algorithm.InteriorPointPoint.Add(NetTopologySuite.Geometries.Coordinate)">
  2855. <summary>
  2856. </summary>
  2857. <param name="point"></param>
  2858. </member>
  2859. <member name="P:NetTopologySuite.Algorithm.InteriorPointPoint.InteriorPoint">
  2860. <summary>
  2861. </summary>
  2862. </member>
  2863. <member name="T:NetTopologySuite.Algorithm.IntersectionComputer">
  2864. <summary>
  2865. Functions to compute intersection points between lines and line segments.
  2866. <para/>
  2867. In general it is not possible to compute
  2868. the intersection point of two lines exactly, due to numerical roundoff.
  2869. This is particularly true when the lines are nearly parallel.
  2870. These routines uses numerical conditioning on the input values
  2871. to ensure that the computed value is very close to the correct value.
  2872. <para/>
  2873. The Z-ordinate is ignored, and not populated.
  2874. </summary>
  2875. <remarks>
  2876. NOTE: In JTS this function is called Intersection.
  2877. </remarks>
  2878. <author>mdavis</author>
  2879. </member>
  2880. <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  2881. <summary>
  2882. Computes the intersection point of two lines.
  2883. If the lines are parallel or collinear this case is detected
  2884. and <c>null</c> is returned.
  2885. </summary>
  2886. <param name="p1">An endpoint of line 1</param>
  2887. <param name="p2">An endpoint of line 1</param>
  2888. <param name="q1">An endpoint of line 2</param>
  2889. <param name="q2">An endpoint of line 2</param>
  2890. <returns>
  2891. The intersection point between the lines, if there is one,
  2892. or null if the lines are parallel or collinear</returns>
  2893. <seealso cref="M:NetTopologySuite.Algorithm.CGAlgorithmsDD.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  2894. </member>
  2895. <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.IntersectionFP(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  2896. <summary>
  2897. Compute intersection of two lines, using a floating-point algorithm.
  2898. This is less accurate than {@link CGAlgorithmsDD#intersection(Coordinate, Coordinate, Coordinate, Coordinate)}.
  2899. It has caused spatial predicate failures in some cases.
  2900. This is kept for testing purposes.
  2901. </summary>
  2902. <param name="p1">An endpoint of line 1</param>
  2903. <param name="p2">An endpoint of line 1</param>
  2904. <param name="q1">An endpoint of line 2</param>
  2905. <param name="q2">An endpoint of line 2</param>
  2906. <returns>
  2907. The intersection point between the lines, if there is one,
  2908. or null if the lines are parallel or collinear</returns>
  2909. </member>
  2910. <member name="M:NetTopologySuite.Algorithm.IntersectionComputer.LineSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  2911. <summary>
  2912. Computes the intersection point of a line and a line segment (if any).
  2913. There will be no intersection point if:
  2914. <list type=">bullet">
  2915. <item><description>the segment does not intersect the line</description></item>
  2916. <item><description>the line or the segment are degenerate (have zero length)</description></item>
  2917. </list>
  2918. If the segment is collinear with the line the first segment endpoint is returned.
  2919. </summary>
  2920. <returns>The intersection point, or <c>null</c> if it is not possible to find an intersection</returns>
  2921. </member>
  2922. <member name="T:NetTopologySuite.Algorithm.IPointInAreaLocator">
  2923. <summary>
  2924. An interface for classes which determine the <see cref="T:NetTopologySuite.Geometries.Location"/> of points in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  2925. </summary>
  2926. <author>Martin Davis</author>
  2927. </member>
  2928. <member name="M:NetTopologySuite.Algorithm.IPointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
  2929. <summary>
  2930. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in the <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  2931. </summary>
  2932. <param name="p">The point to test</param>
  2933. <returns>the location of the point in the geometry</returns>
  2934. </member>
  2935. <member name="T:NetTopologySuite.Algorithm.Length">
  2936. <summary>
  2937. Functions for computing length.
  2938. </summary>
  2939. <author>
  2940. Martin Davis
  2941. </author>
  2942. </member>
  2943. <member name="M:NetTopologySuite.Algorithm.Length.OfLine(NetTopologySuite.Geometries.CoordinateSequence)">
  2944. <summary>
  2945. Computes the length of a <c>LineString</c> specified by a sequence of points.
  2946. </summary>
  2947. <param name="pts">The points specifying the <c>LineString</c></param>
  2948. <returns>The length of the <c>LineString</c></returns>
  2949. </member>
  2950. <member name="T:NetTopologySuite.Algorithm.LineIntersector">
  2951. <summary>
  2952. A <c>LineIntersector</c> is an algorithm that can both test whether
  2953. two line segments intersect and compute the intersection point(s)
  2954. if they do.
  2955. <para>
  2956. There are three possible outcomes when determining whether two line segments intersect:
  2957. <list type="bullet">
  2958. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection"/> - the segments do not intersect</description></item>
  2959. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection"/> - the segments intersect in a single point</description></item>
  2960. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection"/> - the segments are collinear and they intersect in a line segment</description></item>
  2961. </list>
  2962. </para>
  2963. <para>
  2964. For segments which intersect in a single point, the point may be either an endpoint
  2965. or in the interior of each segment.
  2966. If the point lies in the interior of both segments,
  2967. this is termed a <i>proper intersection</i>.
  2968. The property <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsProper"/> test for this situation.
  2969. </para><para>
  2970. The intersection point(s) may be computed in a precise or non-precise manner.
  2971. Computing an intersection point precisely involves rounding it
  2972. via a supplied <see cref="P:NetTopologySuite.Algorithm.LineIntersector.PrecisionModel"/>.
  2973. </para><para>
  2974. LineIntersectors do not perform an initial envelope intersection test
  2975. to determine if the segments are disjoint.
  2976. This is because this class is likely to be used in a context where
  2977. envelope overlap is already known to occur (or be likely).
  2978. </para>
  2979. </summary>
  2980. </member>
  2981. <member name="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection">
  2982. <summary>
  2983. Indicates that line segments do not intersect
  2984. </summary>
  2985. </member>
  2986. <member name="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection">
  2987. <summary>
  2988. Indicates that line segments intersect in a single point
  2989. </summary>
  2990. </member>
  2991. <member name="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection">
  2992. <summary>
  2993. Indicates that line segments intersect in a line segment
  2994. </summary>
  2995. </member>
  2996. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeEdgeDistance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  2997. <summary>
  2998. Computes the "edge distance" of an intersection point p along a segment.
  2999. The edge distance is a metric of the point along the edge.
  3000. The metric used is a robust and easy to compute metric function.
  3001. It is not equivalent to the usual Euclidean metric.
  3002. It relies on the fact that either the x or the y ordinates of the
  3003. points in the edge are unique, depending on whether the edge is longer in
  3004. the horizontal or vertical direction.
  3005. NOTE: This function may produce incorrect distances
  3006. for inputs where p is not precisely on p1-p2
  3007. (E.g. p = (139,9) p1 = (139,10), p2 = (280,1) produces distance 0.0, which is incorrect.
  3008. My hypothesis is that the function is safe to use for points which are the
  3009. result of rounding points which lie on the line, but not safe to use for truncated points.
  3010. </summary>
  3011. </member>
  3012. <member name="M:NetTopologySuite.Algorithm.LineIntersector.NonRobustComputeEdgeDistance(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  3013. <summary>
  3014. This function is non-robust, since it may compute the square of large numbers.
  3015. Currently not sure how to improve this.
  3016. </summary>
  3017. </member>
  3018. <member name="F:NetTopologySuite.Algorithm.LineIntersector.Result">
  3019. <summary>
  3020. A value indicating the intersection result
  3021. <para/>
  3022. Possible values are:
  3023. <list type="bullet">
  3024. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.NoIntersection"/></description></item>
  3025. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.PointIntersection"/></description></item>
  3026. <item><description><see cref="F:NetTopologySuite.Algorithm.LineIntersector.CollinearIntersection"/></description></item>
  3027. </list>
  3028. </summary>
  3029. </member>
  3030. <member name="F:NetTopologySuite.Algorithm.LineIntersector.InputLines">
  3031. <summary>
  3032. Array of coordinate arrays forming the lines
  3033. </summary>
  3034. </member>
  3035. <member name="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint">
  3036. <summary>
  3037. Array of
  3038. </summary>
  3039. </member>
  3040. <member name="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionLineIndex">
  3041. <summary>
  3042. The indexes of the endpoints of the intersection lines, in order along
  3043. the corresponding line
  3044. </summary>
  3045. </member>
  3046. <member name="P:NetTopologySuite.Algorithm.LineIntersector.Pa">
  3047. <summary>
  3048. Alias the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint"/>[0] for ease of reference
  3049. </summary>
  3050. </member>
  3051. <member name="P:NetTopologySuite.Algorithm.LineIntersector.Pb">
  3052. <summary>
  3053. Alias the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionPoint"/>[1] for ease of reference
  3054. </summary>
  3055. </member>
  3056. <member name="F:NetTopologySuite.Algorithm.LineIntersector._precisionModel">
  3057. <summary>
  3058. If MakePrecise is true, computed intersection coordinates will be made precise
  3059. using <c>Coordinate.MakePrecise</c>.
  3060. </summary>
  3061. </member>
  3062. <member name="M:NetTopologySuite.Algorithm.LineIntersector.#ctor">
  3063. <summary>
  3064. Creates an instance of this class
  3065. </summary>
  3066. </member>
  3067. <member name="P:NetTopologySuite.Algorithm.LineIntersector.PrecisionModel">
  3068. <summary>
  3069. Force computed intersection to be rounded to a given precision model.
  3070. No getter is provided, because the precision model is not required to be specified.
  3071. </summary>
  3072. </member>
  3073. <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetEndpoint(System.Int32,System.Int32)">
  3074. <summary>
  3075. Gets an endpoint of an input segment.
  3076. </summary>
  3077. <param name="segmentIndex">the index of the input segment (0 or 1)</param>
  3078. <param name="ptIndex">the index of the endpoint (0 or 1)</param>
  3079. <returns>The specified endpoint</returns>
  3080. </member>
  3081. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  3082. <summary>
  3083. Compute the intersection of a point p and the line p1-p2.
  3084. This function computes the bool value of the hasIntersection test.
  3085. The actual value of the intersection (if there is one)
  3086. is equal to the value of <c>p</c>.
  3087. </summary>
  3088. </member>
  3089. <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsCollinear">
  3090. <summary>
  3091. Gets a value indicating if the computed intersection is collinear
  3092. </summary>
  3093. </member>
  3094. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  3095. <summary>
  3096. Computes the intersection of the lines p1-p2 and p3-p4.
  3097. This function computes both the bool value of the hasIntersection test
  3098. and the (approximate) value of the intersection point itself (if there is one).
  3099. </summary>
  3100. <param name="p1">The 1st point of the 1st segment</param>
  3101. <param name="p2">The 2nd point of the 1st segment</param>
  3102. <param name="p3">The 1st point of the 2nd segment</param>
  3103. <param name="p4">The 2nd point of the 2nd segment</param>
  3104. </member>
  3105. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  3106. <summary>
  3107. Computes the intersection of two line segments, one defined by <paramref name="p1"/> and <paramref name="p2"/>,
  3108. the other by <paramref name="q1"/> and <paramref name="q2"/>.
  3109. </summary>
  3110. <param name="p1">The 1st point of the 1st segment</param>
  3111. <param name="p2">The 2nd point of the 1st segment</param>
  3112. <param name="q1">The 1st point of the 2nd segment</param>
  3113. <param name="q2">The 2nd point of the 2nd segment</param>
  3114. <returns></returns>
  3115. <remarks>
  3116. Don't use this function directly, it is not meant for public use.
  3117. Please call <see cref="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  3118. and test <see cref="P:NetTopologySuite.Algorithm.LineIntersector.HasIntersection"/> or <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsCollinear"/> along with <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsProper"/> and
  3119. <see cref="P:NetTopologySuite.Algorithm.LineIntersector.IsEndPoint"/>.
  3120. </remarks>
  3121. </member>
  3122. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ToString">
  3123. <inheritdoc cref="M:System.Object.ToString"/>
  3124. </member>
  3125. <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsEndPoint">
  3126. <summary>
  3127. Gets a value indicating if the intersection is an end-point intersection
  3128. </summary>
  3129. </member>
  3130. <member name="P:NetTopologySuite.Algorithm.LineIntersector.HasIntersection">
  3131. <summary>
  3132. Tests whether the input geometries intersect.
  3133. </summary>
  3134. <returns><c>true</c> if the input geometries intersect.</returns>
  3135. </member>
  3136. <member name="P:NetTopologySuite.Algorithm.LineIntersector.IntersectionNum">
  3137. <summary>
  3138. Returns the number of intersection points found. This will be either 0, 1 or 2.
  3139. </summary>
  3140. <returns>The number of intersection points found (0, 1, or 2)</returns>
  3141. </member>
  3142. <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIntersection(System.Int32)">
  3143. <summary>
  3144. Returns the intIndex'th intersection point.
  3145. </summary>
  3146. <param name="intIndex">is 0 or 1.</param>
  3147. <returns>The intIndex'th intersection point.</returns>
  3148. </member>
  3149. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntLineIndex">
  3150. <summary>
  3151. Computes the <see cref="F:NetTopologySuite.Algorithm.LineIntersector.IntersectionLineIndex"/> values.
  3152. </summary>
  3153. </member>
  3154. <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsIntersection(NetTopologySuite.Geometries.Coordinate)">
  3155. <summary>
  3156. Test whether a point is a intersection point of two line segments.
  3157. Note that if the intersection is a line segment, this method only tests for
  3158. equality with the endpoints of the intersection segment.
  3159. It does not return true if the input point is internal to the intersection segment.
  3160. </summary>
  3161. <returns><c>true</c> if the input point is one of the intersection points.</returns>
  3162. </member>
  3163. <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsInteriorIntersection">
  3164. <summary>
  3165. Tests whether either intersection point is an interior point of one of the input segments.
  3166. </summary>
  3167. <returns>
  3168. <c>true</c> if either intersection point is in the interior of one of the input segment.
  3169. </returns>
  3170. </member>
  3171. <member name="M:NetTopologySuite.Algorithm.LineIntersector.IsInteriorIntersection(System.Int32)">
  3172. <summary>
  3173. Tests whether either intersection point is an interior point of the specified input segment.
  3174. </summary>
  3175. <returns>
  3176. <c>true</c> if either intersection point is in the interior of the input segment.
  3177. </returns>
  3178. </member>
  3179. <member name="P:NetTopologySuite.Algorithm.LineIntersector.IsProper">
  3180. <summary>
  3181. Tests whether an intersection is proper.
  3182. The intersection between two line segments is considered proper if
  3183. they intersect in a single point in the interior of both segments
  3184. (e.g. the intersection is a single point and is not equal to any of the endpoints).
  3185. The intersection between a point and a line segment is considered proper
  3186. if the point lies in the interior of the segment (e.g. is not equal to either of the endpoints).
  3187. </summary>
  3188. <returns><c>true</c> if the intersection is proper.</returns>
  3189. </member>
  3190. <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIntersectionAlongSegment(System.Int32,System.Int32)">
  3191. <summary>
  3192. Computes the intIndex'th intersection point in the direction of
  3193. a specified input line segment.
  3194. </summary>
  3195. <param name="segmentIndex">is 0 or 1.</param>
  3196. <param name="intIndex">is 0 or 1.</param>
  3197. <returns>
  3198. The intIndex'th intersection point in the direction of the specified input line segment.
  3199. </returns>
  3200. </member>
  3201. <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetIndexAlongSegment(System.Int32,System.Int32)">
  3202. <summary>
  3203. Computes the index (order) of the intIndex'th intersection point in the direction of
  3204. a specified input line segment.
  3205. </summary>
  3206. <param name="segmentIndex">is 0 or 1.</param>
  3207. <param name="intIndex">is 0 or 1.</param>
  3208. <returns>
  3209. The index of the intersection point along the segment (0 or 1).
  3210. </returns>
  3211. </member>
  3212. <member name="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntLineIndex(System.Int32)">
  3213. <summary>
  3214. Computes the intersection line index
  3215. </summary>
  3216. <param name="segmentIndex">The segment index</param>
  3217. </member>
  3218. <member name="M:NetTopologySuite.Algorithm.LineIntersector.GetEdgeDistance(System.Int32,System.Int32)">
  3219. <summary>
  3220. Computes the "edge distance" of an intersection point along the specified input line segment.
  3221. </summary>
  3222. <param name="segmentIndex">is 0 or 1.</param>
  3223. <param name="intIndex">is 0 or 1.</param>
  3224. <returns>The edge distance of the intersection point.</returns>
  3225. </member>
  3226. <member name="T:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator">
  3227. <summary>
  3228. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s relative to
  3229. an areal geometry, using indexing for efficiency.
  3230. This algorithm is suitable for use in cases where
  3231. many points will be tested against a given area.
  3232. <para/>
  3233. The <c>Location</c> is computed precisely, th that points
  3234. located on the geometry boundary or segments will
  3235. return <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
  3236. <para/>
  3237. <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> and <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries are supported.
  3238. <para/>
  3239. The index is lazy-loaded, which allows
  3240. creating instances even if they are not used.
  3241. <para/>
  3242. Thread-safe and immutable.
  3243. </summary>
  3244. <author>Martin Davis</author>
  3245. </member>
  3246. <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.#ctor(NetTopologySuite.Geometries.Geometry)">
  3247. <summary>
  3248. Creates a new locator for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3249. Geometries containing <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>s and <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries are supported
  3250. </summary>
  3251. <param name="g">The Geometry to locate in</param>
  3252. </member>
  3253. <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
  3254. <summary>
  3255. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3256. </summary>
  3257. <param name="p">The point to test</param>
  3258. <returns>The location of the point in the geometry
  3259. </returns>
  3260. </member>
  3261. <member name="M:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator.CreateIndex">
  3262. <summary>
  3263. Creates the indexed geometry, creating it if necessary.
  3264. </summary>
  3265. </member>
  3266. <member name="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator">
  3267. <summary>
  3268. An interface for classes which determine the <see cref="T:NetTopologySuite.Geometries.Location"/> of
  3269. points in areal geometries.
  3270. </summary>
  3271. <author>Martin Davis</author>
  3272. </member>
  3273. <member name="M:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
  3274. <summary>
  3275. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3276. </summary>
  3277. <param name="p">The point to test</param>
  3278. <returns>The location of the point in the geometry</returns>
  3279. </member>
  3280. <member name="T:NetTopologySuite.Algorithm.Locate.PointOnGeometryLocatorExtensions">
  3281. <summary>
  3282. Static methods for <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/> classes
  3283. </summary>
  3284. </member>
  3285. <member name="M:NetTopologySuite.Algorithm.Locate.PointOnGeometryLocatorExtensions.Intersects(NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator,NetTopologySuite.Geometries.Coordinate)">
  3286. <summary>
  3287. Convenience method to test a point for intersection with a geometry
  3288. <para/>
  3289. The geometry is wrapped in a <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/> class.
  3290. </summary>
  3291. <param name="locator">The locator to use.</param>
  3292. <param name="coordinate">The coordinate to test.</param>
  3293. <returns><c>true</c> if the point is in the interior or boundary of the geometry.</returns>
  3294. </member>
  3295. <member name="T:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator">
  3296. <summary>
  3297. Computes the location of points
  3298. relative to an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
  3299. using a simple <c>O(n)</c> algorithm.
  3300. <para>
  3301. The algorithm used reports
  3302. if a point lies in the interior, exterior,
  3303. or exactly on the boundary of the Geometry.
  3304. </para>
  3305. <para>
  3306. Instance methods are provided to implement
  3307. the interface <see cref="T:NetTopologySuite.Algorithm.Locate.IPointOnGeometryLocator"/>.
  3308. However, they provide no performance
  3309. advantage over the class methods.
  3310. </para>
  3311. <para>
  3312. This algorithm is suitable for use in cases where
  3313. only a few points will be tested.
  3314. If many points will be tested,
  3315. <see cref="T:NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator"/> may provide better performance.
  3316. </para>
  3317. </summary>
  3318. <remarks>The algorithm used is only guaranteed to return correct results for points which are <b>not</b> on the boundary of the Geometry.</remarks>
  3319. </member>
  3320. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  3321. <summary>
  3322. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3323. The return value is one of:
  3324. <list type="bullet">
  3325. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Interior"/></term><description>if the point is in the geometry interior</description></item>
  3326. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/></term><description>if the point lies exactly on the boundary</description></item>
  3327. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Exterior"/></term><description>if the point is outside the geometry</description></item>
  3328. </list>
  3329. </summary>
  3330. <param name="p">The point to test</param>
  3331. <param name="geom">The areal geometry to test</param>
  3332. <returns>The Location of the point in the geometry </returns>
  3333. </member>
  3334. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.IsContained(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  3335. <summary>
  3336. Determines whether a point is contained in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
  3337. or lies on its boundary.
  3338. This is a convenience method for
  3339. <code>
  3340. Location.Exterior != Locate(p, geom)
  3341. </code>
  3342. </summary>
  3343. <param name="p">The point to test.</param>
  3344. <param name="geom">The geometry to test.</param>
  3345. <returns><see langword="true"/> if the point lies in or on the geometry.</returns>
  3346. </member>
  3347. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.ContainsPointInPolygon(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Polygon)">
  3348. <summary>
  3349. Determines whether a point lies in a <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
  3350. If the point lies on the polygon boundary it is
  3351. considered to be inside.
  3352. </summary>
  3353. <param name="p">The point to test</param>
  3354. <param name="poly">The areal geometry to test</param>
  3355. <returns><c>true</c> if the point lies in the polygon</returns>
  3356. </member>
  3357. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LinearRing)">
  3358. <summary>
  3359. Determines whether a point lies in a LinearRing, using the ring envelope to short-circuit if possible.
  3360. </summary>
  3361. <param name="p">The point to test</param>
  3362. <param name="ring">A linear ring</param>
  3363. <returns><c>true</c> if the point lies inside the ring</returns>
  3364. </member>
  3365. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.#ctor(NetTopologySuite.Geometries.Geometry)">
  3366. <summary>
  3367. Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator"/> class,
  3368. using the provided areal geometry.
  3369. </summary>
  3370. <param name="geom">The areal geometry to locate in.</param>
  3371. </member>
  3372. <member name="M:NetTopologySuite.Algorithm.Locate.SimplePointInAreaLocator.Locate(NetTopologySuite.Geometries.Coordinate)">
  3373. <summary>
  3374. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in an areal <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3375. The return value is one of:
  3376. <list type="bullet">
  3377. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Interior"/></term><description>if the point is in the geometry interior</description></item>
  3378. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/></term><description>if the point lies exactly on the boundary</description></item>
  3379. <item><term><see cref="F:NetTopologySuite.Geometries.Location.Exterior"/></term><description>if the point is outside the geometry</description></item>
  3380. </list>
  3381. </summary>
  3382. <param name="p">The point to test</param>
  3383. <returns>The Location of the point in the geometry.</returns>
  3384. </member>
  3385. <member name="T:NetTopologySuite.Algorithm.Match.AreaSimilarityMeasure">
  3386. <summary>
  3387. Measures the degree of similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  3388. using the area of intersection between the geometries.
  3389. The measure is normalized to lie in the range [0, 1].
  3390. Higher measures indicate a great degree of similarity.
  3391. </summary>
  3392. <remarks>
  3393. NOTE: Currently experimental and incomplete.
  3394. </remarks>
  3395. <author>mbdavis</author>
  3396. </member>
  3397. <member name="M:NetTopologySuite.Algorithm.Match.AreaSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  3398. <summary>
  3399. Computes the similarity measure between two geometries
  3400. </summary>
  3401. <param name="g1">A geometry.</param>
  3402. <param name="g2">A geometry.</param>
  3403. <returns>
  3404. The value of the similarity measure, in [0.0, 1.0].
  3405. </returns>
  3406. </member>
  3407. <member name="T:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure">
  3408. <summary>
  3409. Measures the degree of similarity between two
  3410. <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using the Fréchet distance metric.
  3411. The measure is normalized to lie in the range [0, 1].
  3412. Higher measures indicate a great degree of similarity.
  3413. <para/>
  3414. The measure is computed by computing the Fréchet distance
  3415. between the input geometries, and then normalizing
  3416. this by dividing it by the diagonal distance across
  3417. the envelope of the combined geometries.
  3418. <para/>
  3419. Note: the input should be normalized, especially when
  3420. measuring <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometries because for the
  3421. Fréchet distance the order of {@link Coordinate}s is
  3422. important.
  3423. </summary>
  3424. <author>Felix Obermaier</author>
  3425. </member>
  3426. <member name="M:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure.#ctor">
  3427. <summary>
  3428. Creates an instance of this class
  3429. </summary>
  3430. </member>
  3431. <member name="M:NetTopologySuite.Algorithm.Match.FrechetSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  3432. <inheritdoc/>
  3433. </member>
  3434. <member name="T:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure">
  3435. <summary>
  3436. Measures the degree of similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using the Hausdorff distance metric.
  3437. </summary>
  3438. <remarks>
  3439. <para>
  3440. The measure is normalized to lie in the range [0, 1]. Higher measures indicate a great degree of similarity.
  3441. </para>
  3442. <para>
  3443. The measure is computed by computing the Hausdorff distance between the input geometries, and then normalizing
  3444. this by dividing it by the diagonal distance across the envelope of the combined geometries.
  3445. </para>
  3446. </remarks>
  3447. <author>mbdavis</author>
  3448. </member>
  3449. <member name="M:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  3450. <inheritdoc/>
  3451. </member>
  3452. <member name="M:NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure.DiagonalSize(NetTopologySuite.Geometries.Envelope)">
  3453. <summary>
  3454. </summary>
  3455. <param name="env"></param>
  3456. <returns></returns>
  3457. </member>
  3458. <member name="T:NetTopologySuite.Algorithm.Match.ISimilarityMeasure">
  3459. <summary>
  3460. An interface for classes which measures the degree of similarity between two {@link Geometry}s.
  3461. </summary>
  3462. <remarks>
  3463. The computed measure lies in the range [0, 1].
  3464. Higher measures indicate a great degree of similarity.
  3465. A measure of 1.0 indicates that the input geometries are identical
  3466. A measure of 0.0 indicates that the geometries have essentially no similarity.
  3467. The precise definition of "identical" and "no similarity" may depend on the exact algorithm being used.
  3468. </remarks>
  3469. <author>mbdavis</author>
  3470. </member>
  3471. <member name="M:NetTopologySuite.Algorithm.Match.ISimilarityMeasure.Measure(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  3472. <summary>
  3473. Function to measure the similarity between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  3474. </summary>
  3475. <param name="g1">A geometry</param>
  3476. <param name="g2">A geometry</param>
  3477. <returns>The similarity value between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</returns>
  3478. </member>
  3479. <member name="T:NetTopologySuite.Algorithm.Match.SimilarityMeasureCombiner">
  3480. <summary>
  3481. Provides methods to mathematically combine <see cref="T:NetTopologySuite.Algorithm.Match.ISimilarityMeasure"/> values.
  3482. </summary>
  3483. <author>Martin Davis</author>
  3484. </member>
  3485. <member name="M:NetTopologySuite.Algorithm.Match.SimilarityMeasureCombiner.Combine(System.Double,System.Double)">
  3486. <summary>
  3487. </summary>
  3488. <param name="measure1"></param>
  3489. <param name="measure2"></param>
  3490. <returns></returns>
  3491. </member>
  3492. <member name="T:NetTopologySuite.Algorithm.MinimumAreaRectangle">
  3493. <summary>
  3494. Computes the minimum-area rectangle enclosing a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3495. Unlike the <see cref="T:NetTopologySuite.Geometries.Envelope"/>, the rectangle may not be axis-parallel.
  3496. <para/>
  3497. The first step in the algorithm is computing the convex hull of the Geometry.
  3498. If the input Geometry is known to be convex, a hint can be supplied to
  3499. avoid this computation.
  3500. <para/>
  3501. In degenerate cases the minimum enclosing geometry
  3502. may be a <see cref="T:NetTopologySuite.Geometries.LineString"/> or a <see cref="T:NetTopologySuite.Geometries.Point"/>.
  3503. <para/>
  3504. The minimum - area enclosing rectangle does not necessarily
  3505. have the minimum possible width.
  3506. Use {@link MinimumDiameter} to compute this.
  3507. </summary>
  3508. <author>Martin Davis</author>
  3509. <seealso cref="T:NetTopologySuite.Algorithm.MinimumDiameter"/>
  3510. <seealso cref="T:NetTopologySuite.Algorithm.ConvexHull"/>
  3511. </member>
  3512. <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.GetMinimumRectangle(NetTopologySuite.Geometries.Geometry)">
  3513. <summary>
  3514. Gets the minimum-area rectangular {@link Polygon} which encloses the input geometry.
  3515. If the convex hull of the input is degenerate (a line or point)
  3516. a {@link LineString} or {@link Point} is returned.
  3517. </summary>
  3518. <param name="geom">A Geometry</param>
  3519. <returns>The minimum rectangle enclosing the geometry</returns>
  3520. </member>
  3521. <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.#ctor(NetTopologySuite.Geometries.Geometry)">
  3522. <summary>
  3523. Compute a minimum-area rectangle for a given {@link Geometry}.
  3524. </summary>
  3525. <param name="inputGeom">A Geometry</param>
  3526. </member>
  3527. <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  3528. <summary>
  3529. Compute a minimum rectangle for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
  3530. with a hint if the geometry is convex
  3531. (e.g. a convex Polygon or LinearRing,
  3532. or a two-point LineString, or a Point).
  3533. </summary>
  3534. <param name="inputGeom">A Geometry</param>
  3535. <param name="isConvex">A flag indicating if <paramref name="inputGeom"/> is convex</param>
  3536. </member>
  3537. <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.ComputeConvexRing(NetTopologySuite.Geometries.Coordinate[])">
  3538. <summary>
  3539. Computes the minimum-area rectangle for a convex ring of {@link Coordinate}s.
  3540. <para/>
  3541. This algorithm uses the "dual rotating calipers" technique.
  3542. Performance is linear in the number of segments.
  3543. </summary>
  3544. <param name="ring">The convex ring to scan</param>
  3545. </member>
  3546. <member name="M:NetTopologySuite.Algorithm.MinimumAreaRectangle.ComputeMaximumLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
  3547. <summary>
  3548. Creates a line of maximum extent from the provided vertices
  3549. </summary>
  3550. <param name="pts">The vertices</param>
  3551. <param name="factory">The geometry factory</param>
  3552. <returns>The line of maximum extent</returns>
  3553. </member>
  3554. <member name="T:NetTopologySuite.Algorithm.MinimumBoundingCircle">
  3555. <summary>
  3556. Computes the <b>Minimum Bounding Circle</b> (MBC) for the points in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3557. The MBC is the smallest circle which <tt>cover</tt>s all the input points
  3558. (this is also sometimes known as the <b>Smallest Enclosing Circle</b>).
  3559. This is equivalent to computing the Maximum Diameter of the input point set.
  3560. </summary>
  3561. <remarks>
  3562. <para/>
  3563. The computed circle can be specified in two equivalent ways,
  3564. both of which are provide as output by this class:
  3565. <list type="bullet">
  3566. <item><description>As a centre point and a radius</description></item>
  3567. <item><description>By the set of points defining the circle.
  3568. Depending on the number of points in the input
  3569. and their relative positions, this set
  3570. contains from 0 to 3 points.
  3571. <list type="bullet">
  3572. <item><description>0 or 1 points indicate an empty or trivial input point arrangement.</description></item>
  3573. <item><description>2 points define the diameter of the minimum bounding circle.</description></item>
  3574. <item><description>3 points define an inscribed triangle of the minimum bounding circle.</description></item>
  3575. </list>
  3576. </description></item></list>
  3577. <para/>
  3578. The class can also output a <see cref="T:NetTopologySuite.Geometries.Geometry"/> which approximates the
  3579. shape of the Minimum Bounding Circle (although as an approximation
  3580. it is <b>not</b> guaranteed to <tt>cover</tt> all the input points.)
  3581. <para/>
  3582. The Maximum Diameter of the input point set can
  3583. be computed as well. The Maximum Diameter is
  3584. defined by the pair of input points with maximum distance between them.
  3585. The points of the maximum diameter are two of the extremal points of the Minimum Bounding Circle.
  3586. They lie on the convex hull of the input.
  3587. However, that the maximum diameter is not a diameter
  3588. of the Minimum Bounding Circle in the case where the MBC is
  3589. defined by an inscribed triangle.
  3590. </remarks>
  3591. <author>Martin Davis</author>
  3592. </member>
  3593. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.#ctor(NetTopologySuite.Geometries.Geometry)">
  3594. <summary>
  3595. Creates a new object for computing the minimum bounding circle for the
  3596. point set defined by the vertices of the given geometry.
  3597. </summary>
  3598. <param name="geom">The geometry to use to obtain the point set </param>
  3599. </member>
  3600. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetCircle">
  3601. <summary>
  3602. Gets a geometry which represents the Minimum Bounding Circle.
  3603. </summary>
  3604. <remarks>
  3605. <para>
  3606. If the input is degenerate (empty or a single unique point),
  3607. this method will return an empty geometry or a single Point geometry.
  3608. Otherwise, a Polygon will be returned which approximates the
  3609. Minimum Bounding Circle. (Note that because the computed polygon is only an approximation, it may not precisely contain all the input points.)
  3610. </para>
  3611. </remarks>
  3612. <returns>A Geometry representing the Minimum Bounding Circle.</returns>
  3613. </member>
  3614. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetMaximumDiameter">
  3615. <summary>Gets a geometry representing the maximum diameter of the
  3616. input. The maximum diameter is the longest line segment
  3617. between any two points of the input.
  3618. <para/>
  3619. The points are two of the extremal points of the Minimum Bounding Circle.
  3620. They lie on the convex hull of the input.
  3621. </summary>
  3622. <returns>
  3623. The result is
  3624. <list type="Bullet">
  3625. <item><description>a LineString between the two farthest points of the input</description></item>
  3626. <item><description>a empty LineString if the input is empty</description></item>
  3627. <item><description>a Point if the input is a point</description></item>
  3628. </list>
  3629. </returns>
  3630. </member>
  3631. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetFarthestPoints">
  3632. <summary>
  3633. Gets a geometry representing a line between the two farthest points
  3634. in the input.
  3635. <para/>
  3636. These points are two of the extremal points of the Minimum Bounding Circle
  3637. They lie on the convex hull of the input.
  3638. </summary>
  3639. <returns>A LineString between the two farthest points of the input</returns>
  3640. <returns>An empty LineString if the input is empty</returns>
  3641. <returns>A Point if the input is a point</returns>
  3642. </member>
  3643. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.FarthestPoints(NetTopologySuite.Geometries.Coordinate[])">
  3644. <summary>
  3645. Finds the farthest pair out of 3 extremal points
  3646. </summary>
  3647. <param name="pts">The array of extremal points</param>
  3648. <returns>The pair of farthest points</returns>
  3649. </member>
  3650. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetDiameter">
  3651. <summary>
  3652. Gets a geometry representing the diameter of the computed Minimum Bounding Circle.
  3653. </summary>
  3654. <returns>
  3655. <list type="bullet">
  3656. <item><description>the diameter line of the Minimum Bounding Circle</description></item>
  3657. <item><description>an empty line if the input is empty</description></item>
  3658. <item><description>a Point if the input is a point</description></item>
  3659. </list>
  3660. </returns>
  3661. </member>
  3662. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetExtremalPoints">
  3663. <summary>
  3664. Gets the extremal points which define the computed Minimum Bounding Circle.
  3665. There may be zero, one, two or three of these points, depending on the number
  3666. of points in the input and the geometry of those points.
  3667. <list type="Bullet">
  3668. <item><description>0 or 1 points indicate an empty or trivial input point arrangement.</description></item>
  3669. <item><description>2 points define the diameter of the Minimum Bounding Circle.</description></item>
  3670. <item><description>3 points define an inscribed triangle of which the Minimum Bounding Circle is the circumcircle.
  3671. The longest chords of the circle are the line segments [0-1] and[1 - 2]</description></item>
  3672. </list>
  3673. </summary>
  3674. <returns>The points defining the Minimum Bounding Circle</returns>
  3675. </member>
  3676. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetCentre">
  3677. <summary>
  3678. Gets the centre point of the computed Minimum Bounding Circle.
  3679. </summary>
  3680. <returns>
  3681. <list type="Bullet">
  3682. <item><description>The centre point of the Minimum Bounding Circle or</description></item>
  3683. <item><description><c>null</c> if the input is empty</description></item>
  3684. </list>
  3685. </returns>
  3686. </member>
  3687. <member name="M:NetTopologySuite.Algorithm.MinimumBoundingCircle.GetRadius">
  3688. <summary>
  3689. Gets the radius of the computed Minimum Bounding Circle.
  3690. </summary>
  3691. <returns>The radius of the Minimum Bounding Circle</returns>
  3692. </member>
  3693. <member name="T:NetTopologySuite.Algorithm.MinimumDiameter">
  3694. <summary>
  3695. Computes the minimum diameter of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3696. </summary>
  3697. <remarks>
  3698. <para>
  3699. The minimum diameter is defined to be the
  3700. width of the smallest band that contains the geometry,
  3701. where a band is a strip of the plane defined by two parallel lines.
  3702. This can be thought of as the smallest hole that the point can be
  3703. moved through, with a single rotation.
  3704. </para>
  3705. <para>
  3706. The first step in the algorithm is computing the convex hull of the Geometry.
  3707. If the input Geometry is known to be convex, a hint can be supplied to
  3708. avoid this computation.
  3709. </para>
  3710. <para>
  3711. This class can also be used to compute
  3712. <list type="bullet">
  3713. <item><description>a line segment representing the minimum diameter</description></item>
  3714. <item><description>the <b>supporting line segment</b> of the minimum diameter</description></item>
  3715. <item><description>a <b>minimum-width rectangle</b> of the input geometry.
  3716. The rectangle has width equal to the minimum diameter, and has one side
  3717. parallel to the supporting segment.
  3718. In degenerate cases the rectangle may be a LineString or a Point.
  3719. (Note that this may not be the enclosing rectangle with minimum area;
  3720. use <see cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/> to compute this.)
  3721. </description></item></list>
  3722. </para>
  3723. </remarks>
  3724. <seealso cref="T:NetTopologySuite.Algorithm.ConvexHull"/>
  3725. <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
  3726. </member>
  3727. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumRectangle(NetTopologySuite.Geometries.Geometry)">
  3728. <summary>
  3729. Gets the minimum-width rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> which encloses the input geometry
  3730. and is based along the supporting segment.
  3731. The rectangle has width equal to the minimum diameter,
  3732. and a longer length.
  3733. If the convex hull of the input is degenerate (a line or point)
  3734. a <see cref="T:NetTopologySuite.Geometries.LineString"/>
  3735. or <see cref="T:NetTopologySuite.Geometries.Point"/> is returned.
  3736. <para/>
  3737. This is not necessarily the rectangle with minimum area.
  3738. Use <see cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/> to compute this.
  3739. </summary>
  3740. <param name="geom">The geometry</param>
  3741. <returns>The minimum-width rectangle enclosing the geometry</returns>
  3742. <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
  3743. </member>
  3744. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumDiameter(NetTopologySuite.Geometries.Geometry)">
  3745. <summary>
  3746. Gets the minimum diameter enclosing a geometry.
  3747. </summary>
  3748. <param name="geom">The geometry</param>
  3749. <returns>The length of the minimum diameter of the geometry</returns>
  3750. </member>
  3751. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.#ctor(NetTopologySuite.Geometries.Geometry)">
  3752. <summary>
  3753. Compute a minimum diameter for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  3754. </summary>
  3755. <param name="inputGeom">a Geometry.</param>
  3756. </member>
  3757. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  3758. <summary>
  3759. Compute a minimum diameter for a giver <c>Geometry</c>,
  3760. with a hint if
  3761. the Geometry is convex
  3762. (e.g. a convex Polygon or LinearRing,
  3763. or a two-point LineString, or a Point).
  3764. </summary>
  3765. <param name="inputGeom">a Geometry which is convex.</param>
  3766. <param name="isConvex"><c>true</c> if the input point is convex.</param>
  3767. </member>
  3768. <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.Length">
  3769. <summary>
  3770. Gets the length of the minimum diameter of the input Geometry.
  3771. </summary>
  3772. <returns>The length of the minimum diameter.</returns>
  3773. </member>
  3774. <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.WidthCoordinate">
  3775. <summary>
  3776. Gets the <c>Coordinate</c> forming one end of the minimum diameter.
  3777. </summary>
  3778. <returns>A coordinate forming one end of the minimum diameter.</returns>
  3779. </member>
  3780. <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.SupportingSegment">
  3781. <summary>
  3782. Gets the segment forming the base of the minimum diameter.
  3783. </summary>
  3784. <returns>The segment forming the base of the minimum diameter.</returns>
  3785. </member>
  3786. <member name="P:NetTopologySuite.Algorithm.MinimumDiameter.Diameter">
  3787. <summary>
  3788. Gets a <c>LineString</c> which is a minimum diameter.
  3789. </summary>
  3790. <returns>A <c>LineString</c> which is a minimum diameter.</returns>
  3791. </member>
  3792. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeMinimumDiameter">
  3793. <summary>
  3794. </summary>
  3795. </member>
  3796. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeWidthConvex(NetTopologySuite.Geometries.Geometry)">
  3797. <summary>
  3798. </summary>
  3799. <param name="convexGeom"></param>
  3800. </member>
  3801. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeConvexRingMinDiameter(NetTopologySuite.Geometries.Coordinate[])">
  3802. <summary>
  3803. Compute the width information for a ring of <c>Coordinate</c>s.
  3804. Leaves the width information in the instance variables.
  3805. </summary>
  3806. <param name="pts"></param>
  3807. </member>
  3808. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.FindMaxPerpDistance(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.LineSegment,System.Int32)">
  3809. <summary>
  3810. </summary>
  3811. <param name="pts"></param>
  3812. <param name="seg"></param>
  3813. <param name="startIndex"></param>
  3814. <returns></returns>
  3815. </member>
  3816. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.NextIndex(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  3817. <summary>
  3818. </summary>
  3819. <param name="pts"></param>
  3820. <param name="index"></param>
  3821. <returns></returns>
  3822. </member>
  3823. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.GetMinimumRectangle">
  3824. <summary>
  3825. Gets the rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> which encloses the input geometry
  3826. and is based on the minimum diameter supporting segment.
  3827. </summary>
  3828. <remarks>
  3829. <para>
  3830. The rectangle has width equal to the minimum diameter, and a longer length.
  3831. If the convex hull of the input is degenerate (a line or point) a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.Point"/> is returned.
  3832. </para>
  3833. <para>
  3834. This is not necessarily the enclosing rectangle with minimum area.
  3835. </para>
  3836. </remarks>
  3837. <returns>A rectangle enclosing the input (or a line or point if degenerate)</returns>
  3838. <seealso cref="T:NetTopologySuite.Algorithm.MinimumAreaRectangle"/>
  3839. </member>
  3840. <member name="M:NetTopologySuite.Algorithm.MinimumDiameter.ComputeMaximumLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.GeometryFactory)">
  3841. <summary>
  3842. Creates a line of maximum extent from the provided vertices
  3843. </summary>
  3844. <param name="pts">The vertices</param>
  3845. <param name="factory">The geometry factory</param>
  3846. <returns>The line of maximum extent</returns>
  3847. </member>
  3848. <member name="T:NetTopologySuite.Algorithm.NotRepresentableException">
  3849. <summary>
  3850. </summary>
  3851. </member>
  3852. <member name="M:NetTopologySuite.Algorithm.NotRepresentableException.#ctor">
  3853. <summary>
  3854. </summary>
  3855. </member>
  3856. <member name="T:NetTopologySuite.Algorithm.Orientation">
  3857. <summary>
  3858. Functions to compute the orientation of basic geometric structures
  3859. including point triplets(triangles) and rings.
  3860. Orientation is a fundamental property of planar geometries
  3861. (and more generally geometry on two-dimensional manifolds).
  3862. <para/>
  3863. Determining triangle orientation
  3864. is notoriously subject to numerical precision errors
  3865. in the case of collinear or nearly collinear points.
  3866. NTS uses extended-precision arithmetic to increase
  3867. the robustness of the computation.
  3868. </summary>
  3869. <author>
  3870. Martin Davis
  3871. </author>
  3872. </member>
  3873. <member name="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  3874. <summary>
  3875. Returns the orientation index of the direction of the point <paramref name="q"/> relative to
  3876. a directed infinite line specified by <c>p1-&gt;p2</c>.
  3877. The index indicates whether the point lies to the <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Left"/>
  3878. or <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Right"/> of the line, or lies on it <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear"/>.
  3879. The index also indicates the orientation of the triangle formed by the three points
  3880. (<see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/>, or
  3881. <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Straight"/> )
  3882. </summary>
  3883. <param name="p1">The origin point of the line vector</param>
  3884. <param name="p2">The final point of the line vector</param>
  3885. <param name="q">The point to compute the direction to</param>
  3886. <returns>
  3887. The <see cref="T:NetTopologySuite.Algorithm.OrientationIndex"/> of q in regard to the vector <c>p1-&gt;p2</c>
  3888. <list type="table">
  3889. <listheader>
  3890. <term>Value</term><description>Description</description>
  3891. </listheader>
  3892. <item>
  3893. <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Straight"/></term>
  3894. <description><paramref name="q"/> is collinear with <c>p1-&gt;p2</c></description>
  3895. </item>
  3896. <item>
  3897. <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Right"/></term>
  3898. <description><paramref name="q"/> is clockwise (right) from <c>p1-&gt;p2</c></description>
  3899. </item>
  3900. <item>
  3901. <term><see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>, <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Left"/></term>
  3902. <description><paramref name="q"/> is counter-clockwise (left) from <c>p1-&gt;p2</c></description>
  3903. </item>
  3904. </list>
  3905. </returns>
  3906. </member>
  3907. <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCW(NetTopologySuite.Geometries.Coordinate[])">
  3908. <summary>
  3909. Tests if a ring defined by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s is
  3910. oriented counter-clockwise.
  3911. <list type="bullet">
  3912. <item><description>The list of points is assumed to have the first and last points equal.</description></item>
  3913. <item><description>This handles coordinate lists which contain repeated points.</description></item>
  3914. <item><description>This handles rings which contain collapsed segments (in particular, along the top of the ring).</description></item>
  3915. </list>
  3916. This algorithm is guaranteed to work with valid rings.
  3917. It also works with "mildly invalid" rings
  3918. which contain collapsed(coincident) flat segments along the top of the ring.
  3919. If the ring is "more" invalid (e.g.self-crosses or touches),
  3920. the computed result may not be correct.
  3921. </summary>
  3922. <param name="ring">An array of <c>Coordinate</c>s forming a ring (with first and last point identical)</param>
  3923. <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
  3924. </member>
  3925. <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCW(NetTopologySuite.Geometries.CoordinateSequence)">
  3926. <summary>
  3927. Tests if a ring defined by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> is
  3928. oriented counter-clockwise.
  3929. <list type="bullet">
  3930. <item><description>The list of points is assumed to have the first and last points equal.</description></item>
  3931. <item><description>This handles coordinate lists which contain repeated points.</description></item>
  3932. <item><description>This handles rings which contain collapsed segments (in particular, along the top of the ring).</description></item>
  3933. </list>
  3934. This algorithm is guaranteed to work with valid rings.
  3935. It also works with "mildly invalid" rings
  3936. which contain collapsed(coincident) flat segments along the top of the ring.
  3937. If the ring is "more" invalid (e.g.self-crosses or touches),
  3938. the computed result may not be correct.
  3939. </summary>
  3940. <param name="ring">A <c>CoordinateSequence</c>s forming a ring (with first and last point identical).</param>
  3941. <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
  3942. </member>
  3943. <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCWArea(NetTopologySuite.Geometries.Coordinate[])">
  3944. <summary>
  3945. Tests if a ring defined by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s is
  3946. oriented counter-clockwise, using the signed area of the ring.
  3947. <list type="bullet">
  3948. <item><description>The list of points is assumed to have the first and last points equal.</description></item>
  3949. <item><description>This handles coordinate lists which contain repeated points.</description></item>
  3950. <item><description>This handles rings which contain collapsed segments
  3951. (in particular, along the top of the ring).</description></item>
  3952. <item><description>This handles rings which are invalid due to self-intersection</description></item>
  3953. </list>
  3954. This algorithm is guaranteed to work with valid rings.
  3955. For invalid rings (containing self-intersections),
  3956. the algorithm determines the orientation of
  3957. the largest enclosed area (including overlaps).
  3958. This provides a more useful result in some situations, such as buffering.
  3959. <para/>
  3960. However, this approach may be less accurate in the case of
  3961. rings with almost zero area.
  3962. (Note that the orientation of rings with zero area is essentially
  3963. undefined, and hence non-deterministic.)
  3964. </summary>
  3965. <param name="ring">An array of Coordinates forming a ring (with first and last point identical)</param>
  3966. <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
  3967. </member>
  3968. <member name="M:NetTopologySuite.Algorithm.Orientation.IsCCWArea(NetTopologySuite.Geometries.CoordinateSequence)">
  3969. <summary>
  3970. Tests if a ring defined by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> is
  3971. oriented counter-clockwise, using the signed area of the ring.
  3972. <list type="bullet">
  3973. <item><description>The list of points is assumed to have the first and last points equal.</description></item>
  3974. <item><description>This handles coordinate lists which contain repeated points.</description></item>
  3975. <item><description>This handles rings which contain collapsed segments
  3976. (in particular, along the top of the ring).</description></item>
  3977. <item><description>This handles rings which are invalid due to self-intersection</description></item>
  3978. </list>
  3979. This algorithm is guaranteed to work with valid rings.
  3980. For invalid rings (containing self-intersections),
  3981. the algorithm determines the orientation of
  3982. the largest enclosed area (including overlaps).
  3983. This provides a more useful result in some situations, such as buffering.
  3984. <para/>
  3985. However, this approach may be less accurate in the case of
  3986. rings with almost zero area.
  3987. (Note that the orientation of rings with zero area is essentially
  3988. undefined, and hence non-deterministic.)
  3989. </summary>
  3990. <param name="ring">An array of Coordinates forming a ring (with first and last point identical)</param>
  3991. <returns><c>true</c> if the ring is oriented counter-clockwise.</returns>
  3992. </member>
  3993. <member name="M:NetTopologySuite.Algorithm.Orientation.ReOrient(NetTopologySuite.Algorithm.OrientationIndex)">
  3994. <summary>
  3995. Re-orients an orientation.
  3996. </summary>
  3997. <param name="orientation">The orientation</param>
  3998. <returns></returns>
  3999. </member>
  4000. <member name="T:NetTopologySuite.Algorithm.OrientationIndex">
  4001. <summary>
  4002. Angle orientation
  4003. </summary>
  4004. </member>
  4005. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Collinear">
  4006. <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
  4007. </member>
  4008. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.None">
  4009. <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
  4010. </member>
  4011. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Straight">
  4012. <summary>A value that indicates an orientation of collinear, or no turn (straight)</summary>
  4013. </member>
  4014. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise">
  4015. <summary>A value that indicates an orientation of counterclockwise, or a left turn.</summary>
  4016. </member>
  4017. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Left">
  4018. <summary>A value that indicates an orientation of counterclockwise, or a left turn.</summary>
  4019. </member>
  4020. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise">
  4021. <summary>A value that indicates an orientation of clockwise or a right turn.</summary>
  4022. </member>
  4023. <member name="F:NetTopologySuite.Algorithm.OrientationIndex.Right">
  4024. <summary>A value that indicates an orientation of clockwise or a right turn.</summary>
  4025. </member>
  4026. <member name="T:NetTopologySuite.Algorithm.PointLocation">
  4027. <summary>
  4028. Functions for locating points within basic geometric
  4029. structures such as lines and rings.
  4030. </summary>
  4031. <author>Martin Davis</author>
  4032. </member>
  4033. <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4034. <summary>
  4035. Tests whether a point lies on a line segment.
  4036. </summary>
  4037. <param name="p">The point to test</param>
  4038. <param name="p0">A point of the line segment</param>
  4039. <param name="p1">A point of the line segment</param>
  4040. <returns><c>true</c> if the point lies on the line segment</returns>
  4041. </member>
  4042. <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  4043. <summary>
  4044. Tests whether a point lies on the line defined by a list of
  4045. coordinates.
  4046. </summary>
  4047. <param name="p">The point to test</param>
  4048. <param name="line">The line coordinates</param>
  4049. <returns>
  4050. <c>true</c> if the point is a vertex of the line or lies in the interior
  4051. of a line segment in the line
  4052. </returns>
  4053. </member>
  4054. <member name="M:NetTopologySuite.Algorithm.PointLocation.IsOnLine(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  4055. <summary>
  4056. Tests whether a point lies on the line defined by a list of
  4057. coordinates.
  4058. </summary>
  4059. <param name="p">The point to test</param>
  4060. <param name="line">The line coordinates</param>
  4061. <returns>
  4062. <c>true</c> if the point is a vertex of the line or lies in the interior
  4063. of a line segment in the line
  4064. </returns>
  4065. </member>
  4066. <member name="M:NetTopologySuite.Algorithm.PointLocation.IsInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  4067. <summary>
  4068. Tests whether a point lies inside or on a ring. The ring may be oriented in
  4069. either direction. A point lying exactly on the ring boundary is considered
  4070. to be inside the ring.
  4071. <para/>
  4072. This method does <i>not</i> first check the point against the envelope of
  4073. the ring.
  4074. </summary>
  4075. <param name="p">The point to check for ring inclusion</param>
  4076. <param name="ring">An array of coordinates representing the ring (which must have
  4077. first point identical to last point)</param>
  4078. <returns><c>true</c> if p is inside ring</returns>
  4079. <seealso cref="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])"/>
  4080. </member>
  4081. <member name="M:NetTopologySuite.Algorithm.PointLocation.IsInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  4082. <summary>
  4083. Tests whether a point lies inside or on a ring. The ring may be oriented in
  4084. either direction. A point lying exactly on the ring boundary is considered
  4085. to be inside the ring.
  4086. <para/>
  4087. This method does <i>not</i> first check the point against the envelope of
  4088. the ring.
  4089. </summary>
  4090. <param name="p">The point to check for ring inclusion</param>
  4091. <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
  4092. first point identical to last point)</param>
  4093. <returns><c>true</c> if p is inside ring</returns>
  4094. </member>
  4095. <member name="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  4096. <summary>
  4097. Determines whether a point lies in the interior, on the boundary, or in the
  4098. exterior of a ring.The ring may be oriented in either direction.
  4099. <para/>
  4100. This method does<i> not</i> first check the point against the envelope of
  4101. the ring.
  4102. </summary>
  4103. <param name="p">The point to check for ring inclusion</param>
  4104. <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
  4105. first point identical to last point)</param>
  4106. <returns>the <see cref="T:NetTopologySuite.Geometries.Location"/> of p relative to the ring</returns>
  4107. </member>
  4108. <member name="M:NetTopologySuite.Algorithm.PointLocation.LocateInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  4109. <summary>
  4110. Determines whether a point lies in the interior, on the boundary, or in the
  4111. exterior of a ring.The ring may be oriented in either direction.
  4112. <para/>
  4113. This method does<i> not</i> first check the point against the envelope of
  4114. the ring.
  4115. </summary>
  4116. <param name="p">The point to check for ring inclusion</param>
  4117. <param name="ring">A <c>CoordinateSequence</c> representing the ring (which must have
  4118. first point identical to last point)</param>
  4119. </member>
  4120. <member name="T:NetTopologySuite.Algorithm.PointLocator">
  4121. <summary>
  4122. Computes the topological relationship (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point to a Geometry.
  4123. </summary>
  4124. <remarks>
  4125. A <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> may be specified to control the evaluation of whether the point lies on the boundary or not
  4126. The default rule is to use the <i>SFS Boundary Determination Rule</i>
  4127. <para>
  4128. Notes:
  4129. <list Type="Bullet">
  4130. <item><description><see cref="T:NetTopologySuite.Geometries.LinearRing"/>s do not enclose any area - points inside the ring are still in the EXTERIOR of the ring.</description></item>
  4131. </list>
  4132. Instances of this class are not reentrant.
  4133. </para>
  4134. </remarks>
  4135. </member>
  4136. <member name="M:NetTopologySuite.Algorithm.PointLocator.#ctor">
  4137. <summary>
  4138. Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.PointLocator"/> class.<para/>
  4139. The default boundary rule is <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
  4140. </summary>
  4141. </member>
  4142. <member name="M:NetTopologySuite.Algorithm.PointLocator.#ctor(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  4143. <summary>
  4144. Initializes a new instance of the <see cref="T:NetTopologySuite.Algorithm.PointLocator"/> class using the provided
  4145. <paramref name="boundaryRule">boundary rule</paramref>.
  4146. </summary>
  4147. <param name="boundaryRule">The boundary rule to use.</param>
  4148. </member>
  4149. <member name="M:NetTopologySuite.Algorithm.PointLocator.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  4150. <summary>
  4151. Convenience method to test a point for intersection with a Geometry
  4152. </summary>
  4153. <param name="p">The coordinate to test.</param>
  4154. <param name="geom">The Geometry to test.</param>
  4155. <returns><c>true</c> if the point is in the interior or boundary of the Geometry.</returns>
  4156. </member>
  4157. <member name="M:NetTopologySuite.Algorithm.PointLocator.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  4158. <summary>
  4159. Computes the topological relationship ({Location}) of a single point to a Geometry.
  4160. It handles both single-element and multi-element Geometries.
  4161. The algorithm for multi-part Geometries takes into account the boundaryDetermination rule.
  4162. </summary>
  4163. <returns>The Location of the point relative to the input Geometry.</returns>
  4164. </member>
  4165. <member name="T:NetTopologySuite.Algorithm.PolygonNodeTopology">
  4166. <summary>
  4167. Functions to compute topological information
  4168. about nodes (ring intersections) in polygonal geometry.
  4169. </summary>
  4170. <author>Martin Davis</author>
  4171. </member>
  4172. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsCrossing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4173. <summary>
  4174. Check if four segments at a node cross.
  4175. Typically the segments lie in two different rings, or different sections of one ring.
  4176. The node is topologically valid if the rings do not cross.
  4177. If any segments are collinear, the test returns false.
  4178. </summary>
  4179. <param name="nodePt">The node location</param>
  4180. <param name="a0">The previous segment endpoint in a ring</param>
  4181. <param name="a1">The next segment endpoint in a ring</param>
  4182. <param name="b0">The previous segment endpoint in the other ring</param>
  4183. <param name="b1">The next segment endpoint in the other ring</param>
  4184. <returns>
  4185. <c>true</c> if the rings cross at the node
  4186. </returns>
  4187. </member>
  4188. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsInteriorSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4189. <summary>
  4190. Tests whether an segment node-b lies in the interior or exterior
  4191. of a corner of a ring formed by the two segments a0-node-a1.
  4192. The ring interior is assumed to be on the right of the corner
  4193. (i.e. a CW shell or CCW hole).
  4194. The test segment must not be collinear with the corner segments.
  4195. </summary>
  4196. <param name="nodePt">The node location</param>
  4197. <param name="a0">The first vertex of the corner</param>
  4198. <param name="a1">The second vertex of the corner</param>
  4199. <param name="b">The other vertex of the test segment</param>
  4200. <returns><c>true</c> if the segment is interior to the ring corner</returns>
  4201. </member>
  4202. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4203. <summary>
  4204. Tests if an edge p is between edges e0 and e1,
  4205. where the edges all originate at a common origin.
  4206. The "inside" of e0 and e1 is the arc which does not include the origin.
  4207. The edges are assumed to be distinct (non-collinear).
  4208. </summary>
  4209. <param name="origin">the origin</param>
  4210. <param name="p">the destination point of edge p</param>
  4211. <param name="e0">the destination point of edge e0</param>
  4212. <param name="e1">the destination point of edge e1</param>
  4213. <returns><c>true</c> if p is between e0 and e1</returns>
  4214. </member>
  4215. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.CompareBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4216. <summary>
  4217. Compares whether an edge p is between or outside the edges e0 and e1,
  4218. where the edges all originate at a common origin.
  4219. The "inside" of e0 and e1 is the arc which does not include
  4220. the positive X-axis at the origin.
  4221. If p is collinear with an edge 0 is returned.
  4222. </summary>
  4223. <param name="origin">The origin</param>
  4224. <param name="p">The destination point of edge p</param>
  4225. <param name="e0">The destination point of edge e0</param>
  4226. <param name="e1">The destination point of edge e1</param>
  4227. <returns>A negative integer, zero or positive integer as the vector P lies outside, collinear with, or inside the vectors E0 and E1</returns>
  4228. </member>
  4229. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.IsAngleGreater(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4230. <summary>
  4231. Tests if the angle with the origin of a vector P is greater than that of the
  4232. vector Q.
  4233. </summary>
  4234. <param name="origin">The origin of the vectors</param>
  4235. <param name="p">The endpoint of the vector P</param>
  4236. <param name="q">The endpoint of the vector Q</param>
  4237. <returns><c>true</c> if vector P has angle greater than Q</returns>
  4238. </member>
  4239. <member name="M:NetTopologySuite.Algorithm.PolygonNodeTopology.CompareAngle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4240. <summary>
  4241. Compares the angles of two vectors
  4242. relative to the positive X-axis at their origin.
  4243. Angles increase CCW from the X-axis.
  4244. </summary>
  4245. <param name="origin">The origin of the vectors</param>
  4246. <param name="p">The endpoint of the vector P</param>
  4247. <param name="q">The endpoint of the vector Q</param>
  4248. <returns>
  4249. A negative integer, zero, or a positive integer as this vector P has angle less than, equal to, or greater than vector Q
  4250. </returns>
  4251. </member>
  4252. <member name="T:NetTopologySuite.Algorithm.RayCrossingCounter">
  4253. <summary>
  4254. Counts the number of segments crossed by a horizontal ray extending to the right
  4255. from a given point, in an incremental fashion.
  4256. <para>This can be used to determine whether a point lies in a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.</para>
  4257. <para>The class determines the situation where the point lies exactly on a segment.</para>
  4258. <para>When being used for Point-In-Polygon determination, this case allows short-circuiting the evaluation.</para>
  4259. </summary>
  4260. <remarks>
  4261. This class handles polygonal geometries with any number of shells and holes.
  4262. The orientation of the shell and hole rings is unimportant.
  4263. In order to compute a correct location for a given polygonal geometry,
  4264. it is essential that <b>all</b> segments are counted which
  4265. <list type="bullet">
  4266. <item><description>touch the ray</description></item>
  4267. <item><description>lie in in any ring which may contain the point</description></item>
  4268. </list>
  4269. <para>
  4270. The only exception is when the point-on-segment situation is detected, in which
  4271. case no further processing is required.
  4272. The implication of the above rule is that segments which can be a priori determined to <i>not</i> touch the ray
  4273. (i.e. by a test of their bounding box or Y-extent) do not need to be counted. This allows for optimization by indexing.
  4274. </para>
  4275. <para>
  4276. This implementation uses the extended-precision orientation test,
  4277. to provide maximum robustness and consistency within
  4278. other algorithms.
  4279. </para>
  4280. </remarks>
  4281. <author>Martin Davis</author>
  4282. </member>
  4283. <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  4284. <summary>
  4285. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in a ring.
  4286. This method is an exemplar of how to use this class.
  4287. </summary>
  4288. <param name="p">The point to test</param>
  4289. <param name="ring">An array of Coordinates forming a ring</param>
  4290. <returns>The location of the point in the ring</returns>
  4291. </member>
  4292. <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.LocatePointInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  4293. <summary>
  4294. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of a point in a ring.
  4295. </summary>
  4296. <param name="p">The point to test</param>
  4297. <param name="ring">A coordinate sequence forming a ring</param>
  4298. <returns>The location of the point in the ring</returns>
  4299. </member>
  4300. <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.#ctor(NetTopologySuite.Geometries.Coordinate)">
  4301. <summary>
  4302. Creates an instance of this class
  4303. </summary>
  4304. <param name="p">A coordinate.</param>
  4305. </member>
  4306. <member name="M:NetTopologySuite.Algorithm.RayCrossingCounter.CountSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4307. <summary>
  4308. Counts a segment
  4309. </summary>
  4310. <param name="p1">An endpoint of the segment</param>
  4311. <param name="p2">Another endpoint of the segment</param>
  4312. </member>
  4313. <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.Count">
  4314. <summary>
  4315. Gets the count of crossings.
  4316. </summary>
  4317. </member>
  4318. <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.IsOnSegment">
  4319. <summary>
  4320. Reports whether the point lies exactly on one of the supplied segments.
  4321. </summary>
  4322. <remarks>
  4323. This method may be called at any time as segments are processed. If the result of this method is <c>true</c>,
  4324. no further segments need be supplied, since the result will never change again.
  4325. </remarks>
  4326. </member>
  4327. <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.Location">
  4328. <summary>
  4329. Gets the <see cref="T:NetTopologySuite.Geometries.Location"/> of the point relative to the ring, polygon
  4330. or multipolygon from which the processed segments were provided.
  4331. </summary>
  4332. <remarks>
  4333. This property only determines the correct location
  4334. if <b>all</b> relevant segments have been processed.
  4335. </remarks>
  4336. </member>
  4337. <member name="P:NetTopologySuite.Algorithm.RayCrossingCounter.IsPointInPolygon">
  4338. <summary>
  4339. Tests whether the point lies in or on
  4340. the ring, polygon or multipolygon from which the processed
  4341. segments were provided.
  4342. </summary>
  4343. <remarks>
  4344. This property only determines the correct location
  4345. if <b>all</b> relevant segments have been processed
  4346. </remarks>
  4347. </member>
  4348. <member name="M:NetTopologySuite.Algorithm.Rectangle.CreateFromSidePts(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.GeometryFactory)">
  4349. <summary>
  4350. Creates a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/> from a base segment
  4351. defining the position and orientation of one side of the rectangle, and
  4352. three points defining the locations of the line segments
  4353. forming the opposite, left and right sides of the rectangle.
  4354. The base segment and side points must be presented so that the
  4355. rectangle has CW orientation.
  4356. <para/>
  4357. The rectangle corners are computed as intersections of
  4358. lines, which generally cannot produce exact values.
  4359. If a rectangle corner is determined to coincide with a side point
  4360. the side point value is used to avoid numerical inaccuracy.
  4361. <para/>
  4362. The first side of the constructed rectangle contains the base segment.
  4363. </summary>
  4364. <param name="baseRightPt">The right point of the base segment</param>
  4365. <param name="baseLeftPt">The left point of the base segment</param>
  4366. <param name="oppositePt">The point defining the opposite side</param>
  4367. <param name="rightSidePt">The point defining the right side</param>
  4368. <param name="leftSidePt">The point defining the left side</param>
  4369. <param name="factory">The geometry factory</param>
  4370. <returns>The rectangular polygon</returns>
  4371. </member>
  4372. <member name="M:NetTopologySuite.Algorithm.Rectangle.ComputeLineEquationC(System.Double,System.Double,NetTopologySuite.Geometries.Coordinate)">
  4373. <summary>
  4374. Computes the constant C in the standard line equation Ax + By = C
  4375. from A and B and a point on the line.
  4376. </summary>
  4377. <param name="a">The X coefficient</param>
  4378. <param name="b">The Y coefficient</param>
  4379. <param name="p">A point on the line</param>
  4380. <returns>The constant C</returns>
  4381. </member>
  4382. <member name="T:NetTopologySuite.Algorithm.RectangleLineIntersector">
  4383. <summary>
  4384. Computes whether a rectangle intersects line segments.
  4385. </summary>
  4386. <remarks>
  4387. Rectangles contain a large amount of inherent symmetry
  4388. (or to put it another way, although they contain four
  4389. coordinates they only actually contain 4 ordinates
  4390. worth of information).
  4391. The algorithm used takes advantage of the symmetry of
  4392. the geometric situation
  4393. to optimize performance by minimizing the number
  4394. of line intersection tests.
  4395. </remarks>
  4396. <author>Martin Davis</author>
  4397. </member>
  4398. <member name="M:NetTopologySuite.Algorithm.RectangleLineIntersector.#ctor(NetTopologySuite.Geometries.Envelope)">
  4399. <summary>
  4400. Creates a new intersector for the given query rectangle,
  4401. specified as an <see cref="T:NetTopologySuite.Geometries.Envelope"/>.
  4402. </summary>
  4403. <param name="rectEnv">The query rectangle, specified as an Envelope</param>
  4404. </member>
  4405. <member name="M:NetTopologySuite.Algorithm.RectangleLineIntersector.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4406. <summary>
  4407. Tests whether the query rectangle intersects a given line segment.
  4408. </summary>
  4409. <param name="p0">The first endpoint of the segment</param>
  4410. <param name="p1">The second endpoint of the segment</param>
  4411. <returns><c>true</c> if the rectangle intersects the segment</returns>
  4412. </member>
  4413. <member name="T:NetTopologySuite.Algorithm.RobustDeterminant">
  4414. <summary>
  4415. Implements an algorithm to compute the
  4416. sign of a 2x2 determinant for double precision values robustly.
  4417. It is a direct translation of code developed by Olivier Devillers.
  4418. The original code carries the following copyright notice:
  4419. ************************************************************************
  4420. Author : Olivier Devillers
  4421. Olivier.Devillers@sophia.inria.fr
  4422. http:/www.inria.fr:/prisme/personnel/devillers/anglais/determinant.html
  4423. Olivier Devillers has allowed the code to be distributed under
  4424. the LGPL (2012-02-16) saying "It is ok for LGPL distribution."
  4425. *************************************************************************
  4426. *************************************************************************
  4427. Copyright (c) 1995 by INRIA Prisme Project
  4428. BP 93 06902 Sophia Antipolis Cedex, France.
  4429. All rights reserved
  4430. *************************************************************************
  4431. </summary>
  4432. </member>
  4433. <member name="M:NetTopologySuite.Algorithm.RobustDeterminant.SignOfDet2x2(System.Double,System.Double,System.Double,System.Double)">
  4434. <summary>
  4435. Computes the sign of the determinant of the 2x2 matrix with the given entries, in a robust way.
  4436. </summary>
  4437. <param name="x1"></param>
  4438. <param name="y1"></param>
  4439. <param name="x2"></param>
  4440. <param name="y2"></param>
  4441. <returns>
  4442. <list type="bullet">
  4443. <item><description>-1 if the determinant is negative,</description></item>
  4444. <item><description>1 if the determinant is positive,</description></item>
  4445. <item><description>0 if the determinant is null.</description></item>
  4446. </list>
  4447. </returns>
  4448. </member>
  4449. <member name="M:NetTopologySuite.Algorithm.RobustDeterminant.OrientationIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4450. <summary>
  4451. Returns the index of the direction of the point <c>q</c> relative to
  4452. a vector specified by <c>p1-p2</c>.
  4453. </summary>
  4454. <param name="p1">The origin point of the vector</param>
  4455. <param name="p2">The final point of the vector</param>
  4456. <param name="q">the point to compute the direction to</param>
  4457. <returns>
  4458. <list type="bullet">
  4459. <item><description>1 if q is counter-clockwise (left) from p1-p2</description></item>
  4460. <item><description>-1 if q is clockwise (right) from p1-p2</description></item>
  4461. <item><description>0 if q is collinear with p1-p2</description></item></list>
  4462. </returns>
  4463. </member>
  4464. <member name="T:NetTopologySuite.Algorithm.RobustLineIntersector">
  4465. <summary>
  4466. A robust version of <see cref="T:NetTopologySuite.Algorithm.LineIntersector"/>.
  4467. </summary>
  4468. </member>
  4469. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.#ctor">
  4470. <summary>
  4471. Creates an instance of this class. No <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/> is assigned
  4472. </summary>
  4473. </member>
  4474. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.#ctor(NetTopologySuite.Algorithm.ElevationModel)">
  4475. <summary>
  4476. Creates an instance of this class assigning the provided <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>.
  4477. </summary>
  4478. </member>
  4479. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.ComputeIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4480. <summary>
  4481. </summary>
  4482. <param name="p"></param>
  4483. <param name="p1"></param>
  4484. <param name="p2"></param>
  4485. </member>
  4486. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4487. <inheritdoc cref="M:NetTopologySuite.Algorithm.LineIntersector.ComputeIntersect(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  4488. </member>
  4489. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4490. <summary>
  4491. This method computes the actual value of the intersection point.
  4492. It is rounded to the precision model if being used.
  4493. </summary>
  4494. <param name="p1"></param>
  4495. <param name="p2"></param>
  4496. <param name="q1"></param>
  4497. <param name="q2"></param>
  4498. <returns></returns>
  4499. </member>
  4500. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.IntersectionSafe(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4501. <summary>
  4502. Computes a segment intersection.
  4503. Round-off error can cause the raw computation to fail,
  4504. (usually due to the segments being approximately parallel).
  4505. If this happens, a reasonable approximation is computed instead.
  4506. </summary>
  4507. </member>
  4508. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.IsInSegmentEnvelopes(NetTopologySuite.Geometries.Coordinate)">
  4509. <summary>
  4510. Tests whether a point lies in the envelopes of both input segments.
  4511. A correctly computed intersection point should return <c>true</c>
  4512. for this test.
  4513. Since this test is for debugging purposes only, no attempt is
  4514. made to optimize the envelope test.
  4515. </summary>
  4516. <param name="intPoint"></param>
  4517. <returns><c>true</c> if the input point lies within both input segment envelopes.</returns>
  4518. </member>
  4519. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.NearestEndpoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4520. <summary>
  4521. Finds the endpoint of the segments P and Q which
  4522. is closest to the other segment.
  4523. This is a reasonable surrogate for the true
  4524. intersection points in ill-conditioned cases
  4525. (e.g. where two segments are nearly coincident,
  4526. or where the endpoint of one segment lies almost on the other segment).
  4527. </summary>
  4528. <remarks>
  4529. This replaces the older CentralEndpoint heuristic,
  4530. which chose the wrong endpoint in some cases
  4531. where the segments had very distinct slopes
  4532. and one endpoint lay almost on the other segment.
  4533. </remarks>
  4534. <param name="p1">an endpoint of segment P</param>
  4535. <param name="p2">an endpoint of segment P</param>
  4536. <param name="q1">an endpoint of segment Q</param>
  4537. <param name="q2">an endpoint of segment Q</param>
  4538. <returns>the nearest endpoint to the other segment</returns>
  4539. </member>
  4540. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.WithZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4541. <summary>
  4542. Returns either <paramref name="p"/> or <paramref name="q"/>, depending on which one has a valid z-ordinate value
  4543. </summary>
  4544. <param name="p">A coordinate, possibly with z-ordinate</param>
  4545. <param name="q">A coordinate, possibly with z-ordinate</param>
  4546. <returns>Returns eihter p or q.</returns>
  4547. </member>
  4548. <member name="P:NetTopologySuite.Algorithm.RobustLineIntersector.ElevationModel">
  4549. <summary>
  4550. Gets or sets a value indicating the elevation model to use when z-ordinate is not known
  4551. </summary>
  4552. </member>
  4553. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.CreateElevationModel(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.OrientationIndex,NetTopologySuite.Algorithm.OrientationIndex,NetTopologySuite.Algorithm.OrientationIndex,NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
  4554. <summary>
  4555. Factory method to create an elevation model for retrieving missing z-ordinate values
  4556. </summary>
  4557. <param name="p1">Start point of the first line segment (P)</param>
  4558. <param name="p2">End point of the first line segment (P)</param>
  4559. <param name="q1">Start point of the second line segment (Q)</param>
  4560. <param name="q2">End point of the second line segment (Q)</param>
  4561. <param name="Pq1">Orientation of q1 in regartd to P</param>
  4562. <param name="Pq2">Orientation of q2 in regartd to P</param>
  4563. <param name="Qp1">Orientation of p1 in regartd to Q</param>
  4564. <param name="Qp2">Orientation of p2 in regartd to Q</param>
  4565. <param name="collinear">Flag indicating that the two line segments are collinear</param>
  4566. <returns>An elevation model</returns>
  4567. </member>
  4568. <member name="T:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel">
  4569. <summary>
  4570. A local elevation model.
  4571. This mimics the functionality that was previously hard coded into <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>.
  4572. </summary>
  4573. </member>
  4574. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(NetTopologySuite.Geometries.Coordinate)">
  4575. <inheritdoc/>
  4576. </member>
  4577. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(System.Double,System.Double)">
  4578. <summary>
  4579. Not supported
  4580. </summary>
  4581. </member>
  4582. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
  4583. <summary>
  4584. Not supported
  4585. </summary>
  4586. </member>
  4587. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZFromEither(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4588. <summary>
  4589. Gets the Z value of the first argument if present,
  4590. otherwise the value of the second argument.
  4591. </summary>
  4592. <param name="p">A coordinate, possibly with Z</param>
  4593. <param name="q">A coordinate, possibly with Z</param>
  4594. <returns>The Z value if present</returns>
  4595. </member>
  4596. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.GetZOrInterpolate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4597. <summary>
  4598. Gets the Z value of a coordinate if present, or
  4599. interpolates it from the segment it lies on.
  4600. If the segment Z values are not fully populate
  4601. NaN is returned.
  4602. </summary>
  4603. <param name="p">A coordinate, possibly with Z</param>
  4604. <param name="p1">A segment endpoint, possibly with Z</param>
  4605. <param name="p2">A segment endpoint, possibly with Z</param>
  4606. <returns>The extracted or interpolated Z value (may be NaN)</returns>
  4607. </member>
  4608. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4609. <summary>
  4610. Interpolates a Z value for a point along
  4611. a line segment between two points.
  4612. The Z value of the interpolation point (if any) is ignored.
  4613. If either segment point is missing Z,
  4614. returns NaN.
  4615. </summary>
  4616. <param name="p">A coordinate, possibly with Z</param>
  4617. <param name="p1">A segment endpoint, possibly with Z</param>
  4618. <param name="p2">A segment endpoint, possibly with Z</param>
  4619. <returns>The extracted or interpolated Z value (may be NaN)</returns>
  4620. </member>
  4621. <member name="M:NetTopologySuite.Algorithm.RobustLineIntersector.LocalElevationModel.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  4622. <summary>
  4623. Interpolates a Z value for a point along
  4624. two line segments and computes their average.
  4625. The Z value of the interpolation point (if any) is ignored.
  4626. If one segment point is missing Z that segment is ignored
  4627. if both segments are missing Z, returns NaN.
  4628. </summary>
  4629. <param name="p">A coordinate</param>
  4630. <param name="p1">A segment endpoint, possibly with Z</param>
  4631. <param name="p2">A segment endpoint, possibly with Z</param>
  4632. <param name="q1">A segment endpoint, possibly with Z</param>
  4633. <param name="q2">A segment endpoint, possibly with Z</param>
  4634. <returns>The averaged interpolated Z value (may be NaN)</returns>
  4635. </member>
  4636. <member name="M:NetTopologySuite.Coverage.Corner.CompareTo(NetTopologySuite.Coverage.Corner)">
  4637. <summary>
  4638. Orders corners by increasing area
  4639. To ensure equal-area corners have a deterministic ordering,
  4640. if area is equal then compares corner index.
  4641. </summary>
  4642. </member>
  4643. <member name="T:NetTopologySuite.Coverage.CornerArea">
  4644. <summary>
  4645. Computes the effective area of corners,
  4646. taking into account the smoothing weight.
  4647. </summary>
  4648. <remarks>
  4649. <h3>FUTURE WORK</h3>
  4650. <list type="bullet">
  4651. <item><description>Support computing geodetic area</description></item>
  4652. </list>
  4653. </remarks>
  4654. <author>Martin Davis</author>
  4655. </member>
  4656. <member name="M:NetTopologySuite.Coverage.CornerArea.#ctor">
  4657. <summary>
  4658. Creates a new corner area computer using the <see cref="F:NetTopologySuite.Coverage.CornerArea.DEFAULT_SMOOTH_WEIGHT"/>.
  4659. </summary>
  4660. </member>
  4661. <member name="M:NetTopologySuite.Coverage.CornerArea.#ctor(System.Double)">
  4662. <summary>
  4663. Creates a new corner area computer using the provided <paramref name="smoothWeight"/>
  4664. </summary>
  4665. <param name="smoothWeight">The weight for smoothing corners. In range [0..1].</param>
  4666. </member>
  4667. <member name="T:NetTopologySuite.Coverage.CoverageBoundarySegmentFinder">
  4668. <summary>
  4669. Finds coverage segments which occur in only a single coverage element.
  4670. In a valid coverage, these are exactly the line segments which lie
  4671. on the boundary of the coverage.
  4672. <para/>
  4673. In an invalid coverage, segments might occur in 3 or more elements.
  4674. This situation is not detected.
  4675. </summary>
  4676. <author>Martin Davis</author>
  4677. </member>
  4678. <member name="T:NetTopologySuite.Coverage.CoverageEdge">
  4679. <summary>
  4680. An edge of a polygonal coverage formed from all or a section of a polygon ring.
  4681. An edge may be a free ring, which is a ring which has not node points
  4682. (i.e.does not share a vertex with any other rings in the parent coverage).
  4683. </summary>
  4684. <author>Martin Davis</author>
  4685. </member>
  4686. <member name="M:NetTopologySuite.Coverage.CoverageEdge.Key(NetTopologySuite.Geometries.Coordinate[])">
  4687. <summary>
  4688. Computes a key segment for a ring.
  4689. The key is the segment starting at the lowest vertex,
  4690. towards the lowest adjacent distinct vertex.
  4691. </summary>
  4692. <param name="ring">A linear ring</param>
  4693. <returns>A LineSegment representing the key</returns>
  4694. </member>
  4695. <member name="M:NetTopologySuite.Coverage.CoverageEdge.Key(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  4696. <summary>
  4697. Computes a distinct key for a section of a linear ring.
  4698. </summary>
  4699. <param name="ring">A linear ring</param>
  4700. <param name="start">The index of the start of the section</param>
  4701. <param name="end">The end index of the end of the section</param>
  4702. <returns>A LineSegment representing the key</returns>
  4703. </member>
  4704. <member name="P:NetTopologySuite.Coverage.CoverageEdge.IsFreeRing">
  4705. <summary>
  4706. Gets a value indicating if this edge is a free ring;
  4707. i.e.one that does not have nodes
  4708. which are anchored because they occur in another ring.
  4709. </summary>
  4710. </member>
  4711. <member name="T:NetTopologySuite.Coverage.CoverageGapFinder">
  4712. <summary>
  4713. Finds gaps in a polygonal coverage.
  4714. Gaps are holes in the coverage which are narrower than a given width.
  4715. <para/>
  4716. The coverage should be valid according to {@link CoverageValidator}.
  4717. If this is not the case, some gaps may not be reported, or the invocation may fail.
  4718. <para/>
  4719. This is a more accurate way of identifying gaps
  4720. than using {@link CoverageValidator#setGapWidth(double)}.
  4721. Gaps which separate the coverage into two disjoint regions are not detected.
  4722. Gores are not identified as gaps.>
  4723. </summary>
  4724. <author>Martin Davis</author>
  4725. </member>
  4726. <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.FindGaps(NetTopologySuite.Geometries.Geometry[],System.Double)">
  4727. <summary>
  4728. Finds gaps in a polygonal coverage.
  4729. Returns lines indicating the locations of the gaps.
  4730. </summary>
  4731. <param name="coverage">A set of polygons forming a polygonal coverage</param>
  4732. <param name="gapWidth">The maximum width of gap to detect</param>
  4733. <returns>A geometry indicating the locations of gaps (which is empty if no gaps were found), or null if the coverage was empty</returns>
  4734. </member>
  4735. <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.#ctor(NetTopologySuite.Geometries.Geometry[])">
  4736. <summary>
  4737. Creates a new polygonal coverage gap finder
  4738. </summary>
  4739. <param name="coverage">A set of polygons forming a polygonal coverage</param>
  4740. </member>
  4741. <member name="M:NetTopologySuite.Coverage.CoverageGapFinder.FindGaps(System.Double)">
  4742. <summary>
  4743. Finds gaps in the coverage.
  4744. Returns lines indicating the locations of the gaps.
  4745. </summary>
  4746. <param name="gapWidth">The maximum width of gap to detect</param>
  4747. <returns>A geometry indicating the locations of gaps (which is empty if no gaps were found), or <c>null</c> if the coverage was empty</returns>
  4748. </member>
  4749. <member name="T:NetTopologySuite.Coverage.CoveragePolygonValidator">
  4750. <summary>
  4751. Validates that a polygon forms a valid polygonal coverage
  4752. with the set of polygons adjacent to it.
  4753. If the polygon is coverage-valid an empty { @link LineString} is returned.
  4754. Otherwise, the result is a linear geometry containing
  4755. the polygon boundary linework causing the invalidity.
  4756. <para/>
  4757. A polygon is coverage-valid if:
  4758. <list type="number">
  4759. <item><description>The polygon interior does not intersect the interior of other polygons.</description></item>
  4760. <item><description>If the polygon boundary intersects another polygon boundary, the vertices
  4761. and line segments of the intersection match exactly.</description></item>
  4762. </list>
  4763. <para/>
  4764. The algorithm detects the following coverage errors:
  4765. <list type="number">
  4766. <item><description>the polygon is a duplicate of another one</description></item>
  4767. <item><description>a polygon boundary segment equals an adjacent segment (with same orientation).
  4768. This determines that the polygons overlap</description></item>
  4769. <item><description>a polygon boundary segment is collinear and overlaps an adjacent segment
  4770. but is not equal to it
  4771. </description></item>
  4772. <item><description>a polygon boundary segment touches an adjacent segment at a non-vertex point</description></item>
  4773. <item><description>a polygon boundary segment crosses into an adjacent polygon</description></item>
  4774. <item><description>a polygon boundary segment is in the interior of an adjacent polygon</description></item>
  4775. </list>
  4776. <para/>
  4777. If any of these errors is present, the target polygon
  4778. does not form a valid coverage with the adjacent polygons.
  4779. <para/>
  4780. The validity rules do not preclude properly noded gaps between coverage polygons.
  4781. However, this class can detect narrow gaps,
  4782. by specifying a maximum gap width using {@link #setGapWidth(double)}.
  4783. Note that this will also identify narrow gaps separating disjoint coverage regions,
  4784. and narrow gores.
  4785. In some situations it may also produce false positives
  4786. (i.e.linework identified as part of a gap which is wider than the given width).
  4787. To fully identify gaps it maybe necessary to use <see cref="T:NetTopologySuite.Coverage.CoverageUnion"/> and analyze
  4788. the holes in the result to see if they are acceptable.
  4789. <para/>
  4790. A polygon may be coverage-valid with respect to
  4791. a set of surrounding polygons, but the collection as a whole may not
  4792. form a clean coverage.For example, the target polygon boundary may be fully matched
  4793. by adjacent boundary segments, but the adjacent set contains polygons
  4794. which are not coverage - valid relative to other ones in the set.
  4795. A coverage is valid only if every polygon in the coverage is coverage - valid.
  4796. Use <see cref="T:NetTopologySuite.Coverage.CoverageValidator"/> to validate an entire set of polygons.
  4797. <para/>
  4798. The adjacent set may contain polygons which do not intersect the target polygon.
  4799. These are effectively ignored during validation (but may decrease performance).
  4800. </summary>
  4801. <seealso cref="T:NetTopologySuite.Coverage.CoverageValidator"/>
  4802. <author>Martin Davis</author>
  4803. </member>
  4804. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[])">
  4805. <summary>
  4806. Validates that a polygon is coverage-valid against the
  4807. surrounding polygons in a polygonal coverage.
  4808. </summary>
  4809. <param name="targetPolygon">The polygon to validate</param>
  4810. <param name="adjPolygons">The adjacent polygons</param>
  4811. <returns>A linear geometry containing the segments causing invalidity (if any)</returns>
  4812. </member>
  4813. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[],System.Double)">
  4814. <summary>
  4815. Validates that a polygon is coverage-valid against the
  4816. surrounding polygons in a polygonal coverage,
  4817. and forms no gaps narrower than a specified width.
  4818. <para/>
  4819. The set of surrounding polygons should include all polygons which
  4820. are within the gap width distance of the target polygon.
  4821. </summary>
  4822. <param name="targetPolygon">The polygon to validate</param>
  4823. <param name="adjPolygons">The adjacent polygons</param>
  4824. <param name="gapWidth">The maximum width of invalid gaps</param>
  4825. <returns>A linear geometry containing the segments causing invalidity (if any)/// </returns>
  4826. </member>
  4827. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry[])">
  4828. <summary>
  4829. Create a new validator.
  4830. <para/>
  4831. If the gap width is specified, the set of surrounding polygons
  4832. should include all polygons which
  4833. are within the gap width distance of the target polygon.
  4834. </summary>
  4835. </member>
  4836. <member name="P:NetTopologySuite.Coverage.CoveragePolygonValidator.GapWidth">
  4837. <summary>
  4838. Gets or sets the maximum gap width, if narrow gaps are to be detected.
  4839. </summary>
  4840. </member>
  4841. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.Validate">
  4842. <summary>
  4843. Validates the coverage polygon against the set of adjacent polygons
  4844. in the coverage.
  4845. </summary>
  4846. <returns>A linear geometry containing the segments causing invalidity (if any)</returns>
  4847. </member>
  4848. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkMatchedSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},NetTopologySuite.Geometries.Envelope)">
  4849. <summary>
  4850. Marks matched segments.
  4851. This improves the efficiency of validity testing, since in valid coverages
  4852. all segments (except exterior ones) are matched,
  4853. and hence do not need to be tested further.
  4854. Segments which are equal and have same orientation
  4855. are detected and marked invalid.
  4856. In fact, the entire target polygon may be matched and valid,
  4857. which allows avoiding further tests.
  4858. Segments matched between adjacent polygons are also marked valid,
  4859. since this prevents them from being detected as misaligned,
  4860. if this is being done.
  4861. </summary>
  4862. <param name="targetRings">The target rings</param>
  4863. <param name="adjRngs">The adjacent rings</param>
  4864. <param name="targetEnv">The tolerance envelope of the target</param>
  4865. </member>
  4866. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkMatchedSegments(System.Collections.Generic.IList{NetTopologySuite.Coverage.CoverageRing},NetTopologySuite.Geometries.Envelope,System.Collections.Generic.IDictionary{NetTopologySuite.Coverage.CoveragePolygonValidator.CoverageRingSegment,NetTopologySuite.Coverage.CoveragePolygonValidator.CoverageRingSegment})">
  4867. <summary>
  4868. Adds ring segments to the segment map,
  4869. and detects if they match an existing segment.
  4870. Matched segments are marked.
  4871. </summary>
  4872. </member>
  4873. <member name="T:NetTopologySuite.Coverage.CoveragePolygonValidator.CoverageRingSegment">
  4874. <summary>
  4875. Models a segment in a CoverageRing.
  4876. The segment is normalized so it can be compared with segments
  4877. in any orientation.
  4878. Records valid matching segments in a coverage,
  4879. which must have opposite orientations.
  4880. Also detects equal segments with identical
  4881. orientation, and marks them as coverage-invalid.
  4882. </summary>
  4883. </member>
  4884. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkInvalidInteractingSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Double)">
  4885. <summary>
  4886. Marks invalid target segments which cross an adjacent ring segment,
  4887. lie partially in the interior of an adjacent ring,
  4888. or are nearly collinear with an adjacent ring segment up to the distance tolerance
  4889. </summary>
  4890. <param name="targetRings">The rings with segments to test</param>
  4891. <param name="adjRings">The adjacent rings</param>
  4892. <param name="distanceTolerance">The gap distance tolerance, if any</param>
  4893. </member>
  4894. <member name="F:NetTopologySuite.Coverage.CoveragePolygonValidator.RING_SECTION_STRIDE">
  4895. <summary>Stride is chosen experimentally to provide good performance</summary>
  4896. </member>
  4897. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.MarkInvalidInteriorSegments(System.Collections.Generic.List{NetTopologySuite.Coverage.CoverageRing},System.Collections.Generic.List{NetTopologySuite.Coverage.CoveragePolygon})">
  4898. <summary>
  4899. Marks invalid target segments which are fully interior
  4900. to an adjacent polygon.
  4901. </summary>
  4902. <param name="targetRings">The rings with segments to test</param>
  4903. <param name="adjCovPolygons">The adjacent polygons</param>
  4904. </member>
  4905. <member name="M:NetTopologySuite.Coverage.CoveragePolygonValidator.markInvalidInteriorSection(NetTopologySuite.Coverage.CoverageRing,System.Int32,System.Int32,System.Collections.Generic.List{NetTopologySuite.Coverage.CoveragePolygon})">
  4906. Marks invalid target segments in a section which are interior
  4907. to an adjacent polygon.
  4908. Processing a section at a time dramatically improves efficiency.
  4909. Due to the coherent organization of polygon rings,
  4910. sections usually have a high spatial locality.
  4911. This means that sections typically intersect only a few or often no adjacent polygons.
  4912. The section envelope can be computed and tested against adjacent polygon envelopes quickly.
  4913. The section can be skipped entirely if it does not interact with any polygons.
  4914. @param ring
  4915. @param iStart
  4916. @param iEnd
  4917. @param adjPolygons
  4918. </member>
  4919. <member name="M:NetTopologySuite.Coverage.CoverageRing.AllRingsValid(System.Collections.Generic.IList{NetTopologySuite.Coverage.CoverageRing})">
  4920. <remarks>Named <c>isValid</c> in JTS</remarks>
  4921. </member>
  4922. <member name="M:NetTopologySuite.Coverage.CoverageRing.AllRingsKnown(System.Collections.Generic.IList{NetTopologySuite.Coverage.CoverageRing})">
  4923. <summary>
  4924. Tests if all rings have known status (matched or invalid)
  4925. for all segments.
  4926. </summary>
  4927. <remarks>Named <c>isKnown</c> in JTS</remarks>
  4928. <param name="rings">A list of rings</param>
  4929. <returns><c>true</c> if all ring segments hav known status</returns>
  4930. </member>
  4931. <member name="P:NetTopologySuite.Coverage.CoverageRing.IsInteriorOnRight">
  4932. <summary>
  4933. Reports if the ring has canonical orientation,
  4934. with the polygon interior on the right (shell is CW).
  4935. </summary>
  4936. </member>
  4937. <member name="M:NetTopologySuite.Coverage.CoverageRing.MarkInvalid(System.Int32)">
  4938. <summary>
  4939. Marks a segment as invalid.
  4940. </summary>
  4941. <param name="i">The segment index</param>
  4942. </member>
  4943. <member name="M:NetTopologySuite.Coverage.CoverageRing.MarkMatched(System.Int32)">
  4944. <summary>
  4945. Marks a segment as matched.
  4946. </summary>
  4947. <param name="i">The segment index</param>
  4948. </member>
  4949. <member name="P:NetTopologySuite.Coverage.CoverageRing.IsKnown">
  4950. <summary>
  4951. Gets a value indicating whether all segments in the ring have a known status,
  4952. matched or invalid.
  4953. </summary>
  4954. <returns><c>true</c></returns>
  4955. </member>
  4956. <member name="M:NetTopologySuite.Coverage.CoverageRing.IsInvalidAt(System.Int32)">
  4957. <summary>
  4958. Tests if a segment is marked invalid.
  4959. </summary>
  4960. <param name="index">The segment index</param>
  4961. <returns><c>true</c> if the segment is invalid.</returns>
  4962. <remarks>Named <c>isInvalid</c> in JTS</remarks>
  4963. </member>
  4964. <member name="P:NetTopologySuite.Coverage.CoverageRing.IsInvalid">
  4965. <summary>
  4966. Gets a value indicating whether all segments are invalid.
  4967. </summary>
  4968. </member>
  4969. <member name="P:NetTopologySuite.Coverage.CoverageRing.HasInvalid">
  4970. <summary>
  4971. Gets a value indicating whether any segment is invalid.
  4972. </summary>
  4973. </member>
  4974. <member name="M:NetTopologySuite.Coverage.CoverageRing.IsKnownAt(System.Int32)">
  4975. <summary>
  4976. Tests whether the validity state of a ring segment is known.
  4977. </summary>
  4978. <param name="i">The index of the ring segment</param>
  4979. <returns><c>true</c> if the segment validity state is known.</returns>
  4980. <remarks>Named <c>isKnown(int)</c> int JTS</remarks>
  4981. </member>
  4982. <member name="M:NetTopologySuite.Coverage.CoverageRing.FindVertexPrev(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  4983. <summary>
  4984. Finds the previous vertex in the ring which is distinct from a given coordinate value.
  4985. </summary>
  4986. <param name="index">The index to start the search</param>
  4987. <param name="pt">A coordinate value (which may not be a ring vertex)</param>
  4988. <returns>The previous distinct vertex in the ring</returns>
  4989. </member>
  4990. <member name="M:NetTopologySuite.Coverage.CoverageRing.FindVertexNext(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  4991. <summary>
  4992. Finds the next vertex in the ring which is distinct from a given coordinate value.
  4993. </summary>
  4994. <param name="index">The index to start the search</param>
  4995. <param name="pt">A coordinate value (which may not be a ring vertex)</param>
  4996. <returns>The next distinct vertex in the ring</returns>
  4997. </member>
  4998. <member name="M:NetTopologySuite.Coverage.CoverageRing.Prev(System.Int32)">
  4999. <summary>
  5000. Gets the index of the previous segment in the ring.
  5001. </summary>
  5002. <param name="index">A segment index</param>
  5003. <returns>The index of the previous segment</returns>
  5004. </member>
  5005. <member name="M:NetTopologySuite.Coverage.CoverageRing.Next(System.Int32)">
  5006. <summary>
  5007. Gets the index of the next segment in the ring.
  5008. </summary>
  5009. <param name="index">A segment index</param>
  5010. <returns>The index of the next segment</returns>
  5011. </member>
  5012. <member name="M:NetTopologySuite.Coverage.CoverageRing.CreateLine(System.Int32,System.Int32,NetTopologySuite.Geometries.GeometryFactory)">
  5013. <summary>
  5014. Creates a line from a sequence of ring segments between startIndex and endIndex (inclusive).
  5015. If the endIndex &lt; startIndex the sequence wraps around the ring endpoint.</summary>
  5016. <returns>A line representing the section</returns>
  5017. </member>
  5018. <member name="T:NetTopologySuite.Coverage.CoverageRingEdges">
  5019. <summary>
  5020. Models a polygonal coverage as a set of unique <see cref="T:NetTopologySuite.Coverage.CoverageEdge"/>s,
  5021. linked to the parent rings in the coverage polygons.
  5022. Each edge has either one or two parent rings, depending on whether
  5023. it is an inner or outer edge of the coverage.
  5024. The source coverage is represented as a array of polygonal geometries
  5025. (either <see cref="T:NetTopologySuite.Geometries.Polygon"/>s or <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>s).
  5026. <para/>
  5027. Coverage edges are found by identifying vertices which are nodes in the coverage,
  5028. splitting edges at nodes, and then identifying unique edges.
  5029. The unique edges are associated to their parent ring(in order),
  5030. to allow reforming the coverage polygons.
  5031. </summary>
  5032. <author>Martin Davis</author>
  5033. </member>
  5034. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.Create(NetTopologySuite.Geometries.Geometry[])">
  5035. <summary>
  5036. Create a new instance for a given coverage.
  5037. </summary>
  5038. <param name="coverage">The set of polygonal geometries in the coverage</param>
  5039. <returns>The edges of the coverage</returns>
  5040. </member>
  5041. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.AddBoundaryInnerNodes(NetTopologySuite.Geometries.LinearRing,System.Collections.Generic.ISet{NetTopologySuite.Geometries.LineSegment},System.Collections.Generic.ISet{NetTopologySuite.Geometries.Coordinate})">
  5042. <summary>
  5043. Detects nodes occurring at vertices which are between a boundary segment
  5044. and an inner (shared) segment.
  5045. These occur where two polygons are adjacent at the coverage boundary
  5046. (this is not detected by <see cref="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])"/>.
  5047. </summary>
  5048. <param name="ring"></param>
  5049. <param name="boundarySegs"></param>
  5050. <param name="nodes"></param>
  5051. </member>
  5052. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.ExtractRingEdges(System.Int32,NetTopologySuite.Geometries.LinearRing,System.Boolean,System.Collections.Generic.Dictionary{NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Coverage.CoverageEdge},System.Collections.Generic.ISet{NetTopologySuite.Geometries.Coordinate})">
  5053. <summary>
  5054. Extracts the <see cref="T:NetTopologySuite.Coverage.CoverageEdge"/>s for a ring.
  5055. </summary>
  5056. <param name="index"></param>
  5057. <param name="ring"></param>
  5058. <param name="isPrimary"></param>
  5059. <param name="uniqueEdgeMap"></param>
  5060. <param name="nodes"></param>
  5061. <returns><c>null</c> if the ring has too few distinct vertices</returns>
  5062. </member>
  5063. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])">
  5064. <summary>
  5065. Finds nodes in a coverage at vertices which are shared by 3 or more rings.
  5066. </summary>
  5067. <param name="coverage">A list of polygonal geometries</param>
  5068. <returns>The set of nodes contained in 3 or more rings</returns>
  5069. </member>
  5070. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.FindBoundaryNodes(System.Collections.Generic.ISet{NetTopologySuite.Geometries.LineSegment})">
  5071. <summary>
  5072. Finds nodes occurring between boundary segments.
  5073. Nodes on boundaries occur at vertices which have
  5074. 3 or more incident boundary segments.
  5075. This detects situations where two rings touch only at a vertex
  5076. (i.e. two polygons touch, or a polygon shell touches a hole)
  5077. These nodes lie in only 2 adjacent rings,
  5078. so are not detected by <see cref="M:NetTopologySuite.Coverage.CoverageRingEdges.FindMultiRingNodes(NetTopologySuite.Geometries.Geometry[])"/>{@link #findMultiRingNodes(Geometry[])}.
  5079. </summary>
  5080. <param name="boundarySegments"></param>
  5081. <returns>A set of vertices which are nodes where two rings touch</returns>
  5082. </member>
  5083. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.BuildCoverage">
  5084. <summary>
  5085. Recreates the polygon coverage from the current edge values.
  5086. </summary>
  5087. <returns>An array of polygonal geometries representing the coverage</returns>
  5088. </member>
  5089. <member name="M:NetTopologySuite.Coverage.CoverageRingEdges.BuildPolygon(NetTopologySuite.Geometries.Polygon)">
  5090. <summary>
  5091. </summary>
  5092. <param name="polygon"></param>
  5093. <returns><c>null</c> if the polygon has been removed</returns>
  5094. </member>
  5095. <member name="T:NetTopologySuite.Coverage.CoverageSimplifier">
  5096. <summary>
  5097. Simplifies the boundaries of the polygons in a polygonal coverage
  5098. while preserving the original coverage topology.
  5099. An area-based simplification algorithm
  5100. (similar to Visvalingam-Whyatt simplification)
  5101. is used to provide high-quality results.
  5102. Also supports simplifying just the inner edges in a coverage,
  5103. which allows simplifying "patches" without affecting their boundary.
  5104. <para/>
  5105. The amount of simplification is determined by a tolerance value,
  5106. which is a non-negative quantity. It equates roughly to the maximum
  5107. distance by which a simplified line can change from the original.
  5108. (In fact, it is the square root of the area tolerance used
  5109. in the Visvalingam-Whyatt algorithm.)
  5110. <para/>
  5111. The simplified result coverage has the following characteristics:
  5112. <list type="bullet">
  5113. <item><description>It has the same number of polygonal geometries as the input</description></item>
  5114. <item><description>If the input is a valid coverage, then so is the result</description></item>
  5115. <item><description>Node points (inner vertices shared by three or more polygons,
  5116. or boundary vertices shared by two or more) are not changed</description></item>
  5117. <item><description>Polygons maintain their line-adjacency (edges are never removed)</description></item>
  5118. <item><description>Rings are simplified to a minimum of 4 vertices, to better preserve their shape</description></item>
  5119. <item><description>Rings smaller than the area tolerance are removed where possible.
  5120. This applies to both holes and "islands" (multipolygon elements
  5121. which are disjoint or touch another polygon at a single vertex).
  5122. At least one polygon is retained for each input geometry
  5123. (the one with largest area).</description></item>
  5124. </list>
  5125. <para/>
  5126. This class supports simplification using different distance tolerances
  5127. for inner and outer edges of the coverage(including no simplfication
  5128. using a tolerance of 0.0).
  5129. This allows, for example, inner simplification, which simplifies
  5130. only edges of the coverage which are adjacent to two polygons.
  5131. This allows partial simplification of a coverage, since a simplified
  5132. subset of a coverage still matches the remainder of the coverage.
  5133. <para/>
  5134. The class allows specifying a separate tolerance for each element of the input coverage.
  5135. <para/>
  5136. The input coverage should be valid according to <see cref="T:NetTopologySuite.Coverage.CoverageValidator"/>.
  5137. Invalid coverages may still be simplified, but the result will likely still be invalid.
  5138. <para/>
  5139. <b>NOTE:</b><br/>Due to different implementations of the <c>PriorityQueue</c> classes used in JTS and NTS
  5140. the results of the <c>CoverageSimplifier</c>'s simplification methods are not guaranteed
  5141. to be the same. Nonetheless both results are valid.
  5142. </summary>
  5143. <remarks>
  5144. <h3>FUTURE WORK</h3>
  5145. <list type="bullet">
  5146. <description>Support geodetic data by computing true geodetic area, and accepting tolerances in metres</description>
  5147. </list>
  5148. </remarks>
  5149. <author>Martin Davis</author>
  5150. </member>
  5151. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(NetTopologySuite.Geometries.Geometry[],System.Double)">
  5152. <summary>
  5153. Simplifies the boundaries of a set of polygonal geometries forming a coverage,
  5154. preserving the coverage topology.
  5155. </summary>
  5156. <param name="coverage">A set of polygonal geometries forming a coverage</param>
  5157. <param name="tolerance">The simplification tolerance</param>
  5158. <returns>The simplified coverage polygons</returns>
  5159. </member>
  5160. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(NetTopologySuite.Geometries.Geometry[],System.Double[])">
  5161. <summary>
  5162. Simplifies the boundaries of a set of polygonal geometries forming a coverage,
  5163. preserving the coverage topology, using a separate tolerance
  5164. for each element of the coverage.
  5165. Coverage edges are simplified using the lowest tolerance of each adjacent
  5166. element.
  5167. </summary>
  5168. <param name="coverage">A set of polygonal geometries forming a coverage</param>
  5169. <param name="tolerances">The simplification tolerances (one per input element)</param>
  5170. <returns>The simplified coverage polygons</returns>
  5171. </member>
  5172. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.SimplifyInner(NetTopologySuite.Geometries.Geometry[],System.Double)">
  5173. <summary>
  5174. Simplifies the inner boundaries of a set of polygonal geometries forming a coverage,
  5175. preserving the coverage topology.
  5176. Edges which form the exterior boundary of the coverage are left unchanged.
  5177. </summary>
  5178. <param name="coverage">A set of polygonal geometries forming a coverage</param>
  5179. <param name="tolerance">The simplification tolerance</param>
  5180. <returns>The simplified coverage polygons</returns>
  5181. </member>
  5182. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.SimplifyOuter(NetTopologySuite.Geometries.Geometry[],System.Double)">
  5183. <summary>
  5184. Simplifies the outer boundaries of a set of polygonal geometries forming a coverage,
  5185. preserving the coverage topology.
  5186. Edges in the interior of the coverage are left unchanged.
  5187. </summary>
  5188. <param name="coverage">A set of polygonal geometries forming a coverage</param>
  5189. <param name="tolerance">The simplification tolerance</param>
  5190. <returns>The simplified coverage polygons</returns>
  5191. </member>
  5192. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.#ctor(NetTopologySuite.Geometries.Geometry[])">
  5193. <summary>
  5194. Create a new coverage simplifier instance.
  5195. </summary>
  5196. <param name="coverage">A set of polygonal geometries forming a coverage</param>
  5197. </member>
  5198. <member name="P:NetTopologySuite.Coverage.CoverageSimplifier.RemovableRingSizeFactor">
  5199. <summary>
  5200. Gets or sets a value indicating the factor
  5201. applied to the area tolerance to determine
  5202. if small rings should be removed.
  5203. Larger values cause more rings to be removed.
  5204. A value of <c>0</c> prevents rings from being removed.
  5205. </summary>
  5206. </member>
  5207. <member name="P:NetTopologySuite.Coverage.CoverageSimplifier.SmoothWeight">
  5208. <summary>
  5209. Gets or sets a value inidcating the weight influencing
  5210. how smooth the simplification should be.
  5211. The weight must be between 0 and 1.
  5212. Larger values increase the smoothness of the simplified edges.
  5213. </summary>
  5214. </member>
  5215. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double)">
  5216. <summary>
  5217. Computes the simplified coverage using a single distance tolerance,
  5218. preserving the coverage topology.
  5219. </summary>
  5220. <param name="tolerance">The simplification distance tolerance</param>
  5221. <returns>The simplified coverage polygons</returns>
  5222. </member>
  5223. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double,System.Double)">
  5224. <summary>
  5225. Computes the simplified coverage using separate distance tolerances
  5226. for inner and outer edges, preserving the coverage topology.
  5227. </summary>
  5228. <param name="toleranceInner">The distance tolerance for inner edges</param>
  5229. <param name="toleranceOuter">The distance tolerance for outer edges</param>
  5230. <returns>The simplified coverage polygons</returns>
  5231. </member>
  5232. <member name="M:NetTopologySuite.Coverage.CoverageSimplifier.Simplify(System.Double[])">
  5233. <summary>
  5234. Computes the simplified coverage using separate distance tolerances
  5235. for each coverage element, preserving the coverage topology.
  5236. </summary>
  5237. <param name="tolerances">the distance tolerances for the coverage elements</param>
  5238. <returns>The simplified coverage polygons</returns>
  5239. </member>
  5240. <member name="T:NetTopologySuite.Coverage.CoverageUnion">
  5241. <summary>
  5242. Unions a polygonal coverage in an efficient way.
  5243. <para/>
  5244. Valid polygonal coverage topology allows merging polygons in a very efficient way.
  5245. </summary>
  5246. <author>Martin Davis</author>
  5247. </member>
  5248. <member name="M:NetTopologySuite.Coverage.CoverageUnion.Union(NetTopologySuite.Geometries.Geometry[])">
  5249. <summary>
  5250. Unions a polygonal coverage.
  5251. </summary>
  5252. <param name="coverage">The polygons in the coverage</param>
  5253. <returns>The union of the coverage polygons</returns>
  5254. </member>
  5255. <member name="T:NetTopologySuite.Coverage.CoverageValidator">
  5256. <summary>
  5257. Validates a polygonal coverage, and returns the locations of
  5258. invalid polygon boundary segments if found.
  5259. <para/>
  5260. A polygonal coverage is a set of polygons which may be edge-adjacent but do
  5261. not overlap.
  5262. Coverage algorithms(such as { @link CoverageUnion}
  5263. or simplification)
  5264. generally require the input coverage to be valid to produce correct results.
  5265. A polygonal coverage is valid if:
  5266. <list type="number">
  5267. <item><description>The interiors of all polygons do not intersect(are disjoint).
  5268. This is the case if no polygon has a boundary which intersects the interior of another polygon,
  5269. and no two polygons are identical.</description></item>
  5270. <item><description>If the boundaries of polygons intersect, the vertices
  5271. and line segments of the intersection match exactly.</description></item>
  5272. </list>
  5273. <para/>
  5274. A valid coverage may contain holes(regions of no coverage).
  5275. Sometimes it is desired to detect whether coverages contain
  5276. narrow gaps between polygons
  5277. (which can be a result of digitizing error or misaligned data).
  5278. This class can detect narrow gaps,
  5279. by specifying a maximum gap width using {@link #setGapWidth(double)}.
  5280. Note that this also identifies narrow gaps separating disjoint coverage regions,
  5281. and narrow gores.
  5282. In some situations it may also produce false positives
  5283. (linework identified as part of a gap which is actually wider).
  5284. See <see cref="T:NetTopologySuite.Coverage.CoverageGapFinder"/> for an alternate way to detect gaps which may be more accurate.
  5285. </summary>
  5286. <author>Martin Davis</author>
  5287. </member>
  5288. <member name="M:NetTopologySuite.Coverage.CoverageValidator.IsValid(NetTopologySuite.Geometries.Geometry[])">
  5289. <summary>
  5290. Tests whether a polygonal coverage is valid.
  5291. </summary>
  5292. <param name="coverage">An array of polygons forming a coverage</param>
  5293. <returns><c>true</c> if the coverage is valid</returns>
  5294. <remarks>Named <c>isValid</c> in JTS</remarks>
  5295. </member>
  5296. <member name="M:NetTopologySuite.Coverage.CoverageValidator.HasInvalidResult(NetTopologySuite.Geometries.Geometry[])">
  5297. <summary>
  5298. Tests if some element of an array of geometries is a coverage invalidity
  5299. indicator.
  5300. </summary>
  5301. <param name="validateResult">An array produced by a polygonal coverage validation</param>
  5302. <returns><c>true</c> if the result has at least one invalid indicator</returns>
  5303. </member>
  5304. <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate(NetTopologySuite.Geometries.Geometry[])">
  5305. <summary>
  5306. Validates that a set of polygons forms a valid polygonal coverage,
  5307. and returns linear geometries indicating the locations of invalidities, if any.
  5308. </summary>
  5309. <param name="coverage">An array of polygons forming a coverage</param>
  5310. <returns>An array of linear geometries indicating coverage errors, or nulls</returns>
  5311. </member>
  5312. <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate(NetTopologySuite.Geometries.Geometry[],System.Double)">
  5313. <summary>
  5314. Validates that a set of polygons forms a valid polygonal coverage
  5315. and contains no gaps narrower than a specified width.
  5316. The result is an array of linear geometries indicating the locations of invalidities,
  5317. or null if the polygon is coverage-valid.
  5318. </summary>
  5319. <param name="coverage">An array of polygons forming a coverage</param>
  5320. <param name="gapWidth">The maximum width of invalid gaps</param>
  5321. <returns>An array of linear geometries indicating coverage errors, or nulls</returns>
  5322. </member>
  5323. <member name="M:NetTopologySuite.Coverage.CoverageValidator.#ctor(NetTopologySuite.Geometries.Geometry[])">
  5324. <summary>
  5325. Creates a new coverage validator
  5326. </summary>
  5327. <param name="coverage">An array of polygons representing a polygonal coverage</param>
  5328. </member>
  5329. <member name="P:NetTopologySuite.Coverage.CoverageValidator.GapWidth">
  5330. <summary>
  5331. Gets or sets a value indicating the maximum gap, if narrow gaps are to be detected.
  5332. </summary>
  5333. </member>
  5334. <member name="M:NetTopologySuite.Coverage.CoverageValidator.Validate">
  5335. <summary>
  5336. Validates the polygonal coverage.
  5337. The result is an array of the same size as the input coverage.
  5338. Each array entry is either null, or if the polygon does not form a valid coverage,
  5339. a linear geometry containing the boundary segments
  5340. which intersect polygon interiors, which are mismatched,
  5341. or form gaps (if checked).
  5342. </summary>
  5343. <returns>An array of nulls or linear geometries</returns>
  5344. </member>
  5345. <member name="T:NetTopologySuite.Coverage.InvalidSegmentDetector">
  5346. <summary>
  5347. Detects invalid coverage topology where ring segments interact.
  5348. The inputs to <see cref="M:NetTopologySuite.Coverage.InvalidSegmentDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
  5349. must be <see cref="T:NetTopologySuite.Coverage.CoverageRing"/>s.
  5350. If an invalid situation is detected the input target segment is
  5351. marked invalid using <see cref="M:NetTopologySuite.Coverage.CoverageRing.MarkInvalid(System.Int32)"/>.
  5352. <para/>
  5353. This class assumes it is used with <see cref="T:NetTopologySuite.Noding.ISegmentSetMutualIntersector"/>,
  5354. so that segments in the same ring are not evaluated.
  5355. </summary>
  5356. </member>
  5357. <member name="M:NetTopologySuite.Coverage.InvalidSegmentDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  5358. <summary>
  5359. Process interacting segments.
  5360. The input order is important.
  5361. The adjacent segment is first, the target is second.
  5362. The inputs must be <see cref="T:NetTopologySuite.Coverage.CoverageRing"/>s.
  5363. </summary>
  5364. </member>
  5365. <member name="M:NetTopologySuite.Coverage.InvalidSegmentDetector.IsCollinearOrInterior(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Coverage.CoverageRing,System.Int32)">
  5366. <summary>
  5367. Checks if the segments are collinear, or if the target segment
  5368. intersects the interior of the adjacent ring.
  5369. Segments which are collinear must be non-equal and hence invalid,
  5370. since matching segments have already been marked as valid and
  5371. are not passed to this code.
  5372. </summary>
  5373. </member>
  5374. <member name="T:NetTopologySuite.Coverage.TPVWSimplifier">
  5375. <summary>
  5376. Computes a Topology-Preserving Visvalingnam-Whyatt simplification
  5377. of a set of input lines.
  5378. The simplified lines will contain no more intersections than are present
  5379. in the original input.
  5380. Line and ring endpoints are preserved, except for rings
  5381. which are flagged as "free".
  5382. Rings which are smaller than the tolerance area
  5383. may be removed entirely, as long as they are flagged as removable.
  5384. <para/>
  5385. The amount of simplification is determined by a tolerance value,
  5386. which is a non-zero quantity.
  5387. It is the square root of the area tolerance used
  5388. in the Visvalingam-Whyatt algorithm.
  5389. This equates roughly to the maximum
  5390. distance by which a simplfied line can change from the original.
  5391. </summary>
  5392. <author>Martin Davis</author>
  5393. </member>
  5394. <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Double,System.Boolean,System.Boolean)">
  5395. <summary>
  5396. Creates a new edge.
  5397. The endpoints of the edge are preserved during simplification,
  5398. unless it is a ring and the <paramref name="isFreeRing"/> flag is set.
  5399. </summary>
  5400. <param name="pts"></param>
  5401. <param name="distanceTolerance">The simplification tolerance</param>
  5402. <param name="isFreeRing">A flag indiciating if a ring endpoint can be removed</param>
  5403. <param name="isRemovable"></param>
  5404. </member>
  5405. <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.HasIntersectingVertex(NetTopologySuite.Coverage.Corner,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Coverage.TPVWSimplifier.Edge)">
  5406. <summary>
  5407. Tests if any vertices in a line intersect the corner triangle.
  5408. Uses the vertex spatial index for efficiency.
  5409. </summary>
  5410. <param name="corner">The corner vertices</param>
  5411. <param name="cornerEnv">The envelope of the corner</param>
  5412. <param name="edge">The edge to test</param>
  5413. <returns><c>true</c> if there is an intersecting vertex</returns>
  5414. </member>
  5415. <member name="M:NetTopologySuite.Coverage.TPVWSimplifier.Edge.RemoveCorner(NetTopologySuite.Coverage.Corner,System.Double,NetTopologySuite.Coverage.CornerArea,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Coverage.Corner})">
  5416. <summary>
  5417. Removes a corner by removing the apex vertex from the ring.
  5418. Two new corners are created with apexes
  5419. at the other vertices of the corner
  5420. (if they are non-convex and thus removable).
  5421. </summary>
  5422. <param name="corner">The corner to remove</param>
  5423. <param name="areaTolerance"></param>
  5424. <param name="cornerArea"></param>
  5425. <param name="cornerQueue">The corner queue</param>
  5426. </member>
  5427. <member name="T:NetTopologySuite.Coverage.VertexRingCounter">
  5428. <summary>
  5429. Counts the number of rings containing each vertex.
  5430. Vertices which are contained by 3 or more rings are nodes in the coverage topology
  5431. (although not the only ones -
  5432. boundary vertices with 3 or more incident edges are also nodes).
  5433. </summary>
  5434. <author>Martin Davis</author>
  5435. </member>
  5436. <member name="T:NetTopologySuite.DataStructures.Interval">
  5437. <summary>
  5438. Structure for a closed 1-dimensional &#x211d;-interval
  5439. </summary>
  5440. </member>
  5441. <member name="F:NetTopologySuite.DataStructures.Interval.Min">
  5442. <summary>
  5443. The lower bound of the interval
  5444. </summary>
  5445. </member>
  5446. <member name="F:NetTopologySuite.DataStructures.Interval.Max">
  5447. <summary>
  5448. The upper bound of the interval
  5449. </summary>
  5450. </member>
  5451. <member name="M:NetTopologySuite.DataStructures.Interval.#ctor(System.Double)">
  5452. <summary>
  5453. Initializes this structure with <see cref="F:NetTopologySuite.DataStructures.Interval.Min"/> = <see cref="F:NetTopologySuite.DataStructures.Interval.Max"/> = <paramref name="value"/>
  5454. </summary>
  5455. <param name="value">The value for min and max</param>
  5456. </member>
  5457. <member name="M:NetTopologySuite.DataStructures.Interval.#ctor(System.Double,System.Double)">
  5458. <summary>
  5459. Initializes this structure with <paramref name="min"/> and <paramref name="max"/> values
  5460. </summary>
  5461. <param name="min">The minimum interval values</param>
  5462. <param name="max">The maximum interval values</param>
  5463. </member>
  5464. <member name="M:NetTopologySuite.DataStructures.Interval.ExpandedByValue(System.Double)">
  5465. <summary>
  5466. Method to expand
  5467. </summary>
  5468. <param name="p"></param>
  5469. <returns></returns>
  5470. </member>
  5471. <member name="P:NetTopologySuite.DataStructures.Interval.IsEmpty">
  5472. <summary>
  5473. Gets a value if this interval is empty/undefined
  5474. </summary>
  5475. </member>
  5476. <member name="M:NetTopologySuite.DataStructures.Interval.GetHashCode">
  5477. <inheritdoc cref="M:System.Object.GetHashCode" />
  5478. </member>
  5479. <member name="M:NetTopologySuite.DataStructures.Interval.Equals(System.Object)">
  5480. <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
  5481. </member>
  5482. <member name="M:NetTopologySuite.DataStructures.Interval.Equals(NetTopologySuite.DataStructures.Interval)">
  5483. <inheritdoc cref="M:System.IEquatable`1.Equals(`0)" />
  5484. </member>
  5485. <member name="M:NetTopologySuite.DataStructures.Interval.ToString">
  5486. <inheritdoc/>
  5487. </member>
  5488. <member name="P:NetTopologySuite.DataStructures.Interval.Width">
  5489. <summary>
  5490. Gets a value indicating the width of the <see cref="T:NetTopologySuite.DataStructures.Interval"/>
  5491. </summary>
  5492. </member>
  5493. <member name="P:NetTopologySuite.DataStructures.Interval.Centre">
  5494. <summary>
  5495. Gets a value indicating the centre of the interval (Min + Width * 0.5)
  5496. </summary>
  5497. </member>
  5498. <member name="M:NetTopologySuite.DataStructures.Interval.ExpandedByInterval(NetTopologySuite.DataStructures.Interval)">
  5499. <summary>
  5500. Function to compute an interval that contains this and <paramref name="interval"/> <see cref="T:NetTopologySuite.DataStructures.Interval"/>
  5501. </summary>
  5502. <param name="interval">The interval</param>
  5503. <returns>An interval</returns>
  5504. </member>
  5505. <member name="M:NetTopologySuite.DataStructures.Interval.Overlaps(NetTopologySuite.DataStructures.Interval)">
  5506. <summary>
  5507. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> overlaps <paramref name="interval"/>.
  5508. </summary>
  5509. <param name="interval">The interval to test</param>
  5510. <returns><c>true</c> if this interval overlaps <paramref name="interval"/></returns>
  5511. </member>
  5512. <member name="M:NetTopologySuite.DataStructures.Interval.Overlaps(System.Double,System.Double)">
  5513. <summary>
  5514. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> overlaps the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>].
  5515. </summary>
  5516. <param name="min">The minimum value of the interval</param>
  5517. <param name="max">The maximum value of the interval</param>
  5518. <returns><c>true</c> if this interval overlaps the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>]</returns>
  5519. </member>
  5520. <member name="M:NetTopologySuite.DataStructures.Interval.Contains(NetTopologySuite.DataStructures.Interval)">
  5521. <summary>
  5522. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains <paramref name="interval"/>.
  5523. </summary>
  5524. <remarks>This is more rigid than <see cref="M:NetTopologySuite.DataStructures.Interval.Overlaps(NetTopologySuite.DataStructures.Interval)"/></remarks>
  5525. <param name="interval">The interval to test</param>
  5526. <returns><c>true</c> if this interval contains <paramref name="interval"/></returns>
  5527. </member>
  5528. <member name="M:NetTopologySuite.DataStructures.Interval.Contains(System.Double,System.Double)">
  5529. <summary>
  5530. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>].
  5531. </summary>
  5532. <remarks>This is more rigid than <see cref="M:NetTopologySuite.DataStructures.Interval.Overlaps(System.Double,System.Double)"/></remarks>
  5533. <param name="min">The minimum value of the interval</param>
  5534. <param name="max">The maximum value of the interval</param>
  5535. <returns><c>true</c> if this interval contains the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>]</returns>
  5536. </member>
  5537. <member name="M:NetTopologySuite.DataStructures.Interval.Contains(System.Double)">
  5538. <summary>
  5539. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> contains the value <paramref name="p"/>.
  5540. </summary>
  5541. <param name="p">The value to test</param>
  5542. <returns><c>true</c> if this interval contains the value <paramref name="p"/></returns>
  5543. </member>
  5544. <member name="M:NetTopologySuite.DataStructures.Interval.Intersects(NetTopologySuite.DataStructures.Interval)">
  5545. <summary>
  5546. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> intersects the interval <paramref name="other"/>.
  5547. </summary>
  5548. <param name="other"></param>
  5549. <returns></returns>
  5550. <returns><c>true</c> if this interval intersects <paramref name="other"/></returns>
  5551. </member>
  5552. <member name="M:NetTopologySuite.DataStructures.Interval.Intersects(System.Double,System.Double)">
  5553. <summary>
  5554. Function to test if this <see cref="T:NetTopologySuite.DataStructures.Interval"/> intersects the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>].
  5555. </summary>
  5556. <param name="min">The minimum value of the interval</param>
  5557. <param name="max">The maximum value of the interval</param>
  5558. <returns><c>true</c> if this interval intersects the interval &#x211d;[<paramref name="min"/>, <paramref name="max"/>].</returns>
  5559. </member>
  5560. <member name="M:NetTopologySuite.DataStructures.Interval.Create">
  5561. <summary>
  5562. Creates an empty or uninitialized Interval
  5563. </summary>
  5564. <returns>An empty or uninitialized <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
  5565. </member>
  5566. <member name="M:NetTopologySuite.DataStructures.Interval.Create(System.Double)">
  5567. <summary>
  5568. Creates an interval with the range &#x211d;[<paramref name="value"/>,<paramref name="value"/>]
  5569. </summary>
  5570. <param name="value">The value</param>
  5571. <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
  5572. </member>
  5573. <member name="M:NetTopologySuite.DataStructures.Interval.Create(System.Double,System.Double)">
  5574. <summary>
  5575. Creates an interval with the range &#x211d;[<paramref name="val1"/>,<paramref name="val2"/>]. <br/>
  5576. If necessary, val1 and val2 are exchanged.
  5577. </summary>
  5578. <param name="val1">The minimum value</param>
  5579. <param name="val2">The maximum value</param>
  5580. <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
  5581. </member>
  5582. <member name="M:NetTopologySuite.DataStructures.Interval.Create(NetTopologySuite.DataStructures.Interval)">
  5583. <summary>
  5584. Creates an interval with the range &#x211d;[<see cref="F:NetTopologySuite.DataStructures.Interval.Min"/>,<see cref="F:NetTopologySuite.DataStructures.Interval.Max"/>].
  5585. </summary>
  5586. <param name="interval">The template interval</param>
  5587. <returns>An <see cref="T:NetTopologySuite.DataStructures.Interval"/></returns>
  5588. </member>
  5589. <member name="M:NetTopologySuite.DataStructures.Interval.op_Equality(NetTopologySuite.DataStructures.Interval,NetTopologySuite.DataStructures.Interval)">
  5590. <summary>
  5591. Equality operator for <see cref="T:NetTopologySuite.DataStructures.Interval"/>s
  5592. </summary>
  5593. <param name="lhs">The left-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
  5594. <param name="rhs">The right-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
  5595. <returns><c>true</c> if the <see cref="T:NetTopologySuite.DataStructures.Interval"/>s are equal.</returns>
  5596. </member>
  5597. <member name="M:NetTopologySuite.DataStructures.Interval.op_Inequality(NetTopologySuite.DataStructures.Interval,NetTopologySuite.DataStructures.Interval)">
  5598. <summary>
  5599. Inequality operator for <see cref="T:NetTopologySuite.DataStructures.Interval"/>s
  5600. </summary>
  5601. <param name="lhs">The left-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
  5602. <param name="rhs">The right-hand-side <see cref="T:NetTopologySuite.DataStructures.Interval"/></param>
  5603. <returns><c>true</c> if the <see cref="T:NetTopologySuite.DataStructures.Interval"/>s are <b>not</b> equal.</returns>
  5604. </member>
  5605. <member name="T:NetTopologySuite.Densify.Densifier">
  5606. <summary>
  5607. Densifies a geometry by inserting extra vertices along the line segments
  5608. contained in the geometry.
  5609. All segments in the created densified geometry will be <b>no longer</b>
  5610. than the given distance tolerance
  5611. (that is, all segments in the output will have length less than or equal to
  5612. the distance tolerance).
  5613. </summary>
  5614. <remarks>
  5615. Densified polygonal geometries are guaranteed to be topologically correct.
  5616. <para/>
  5617. The coordinates created during densification respect the input geometry's <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  5618. <para/>
  5619. By default polygonal results are processed to ensure they are valid.
  5620. This processing is costly, and it is very rare for results to be invalid.
  5621. Validation processing can be disabled by setting the <see cref="P:NetTopologySuite.Densify.Densifier.Validate"/> property to <c>false</c>.
  5622. <para/>
  5623. <b>Note:</b> At some future point this class will offer a variety of densification strategies.
  5624. </remarks>
  5625. <author>Martin Davis</author>
  5626. </member>
  5627. <member name="M:NetTopologySuite.Densify.Densifier.Densify(NetTopologySuite.Geometries.Geometry,System.Double)">
  5628. <summary>
  5629. Densifies a geometry using a given distance tolerance, and respecting the input geometry's <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  5630. </summary>
  5631. <param name="geom">The geometry densify</param>
  5632. <param name="distanceTolerance">The distance tolerance (<see cref="P:NetTopologySuite.Densify.Densifier.DistanceTolerance"/>)</param>
  5633. <returns>The densified geometry</returns>
  5634. </member>
  5635. <member name="M:NetTopologySuite.Densify.Densifier.DensifyPoints(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.PrecisionModel)">
  5636. <summary>
  5637. Densifies a list of coordinates.
  5638. </summary>
  5639. <param name="pts">The coordinate list</param>
  5640. <param name="distanceTolerance">The densify tolerance</param>
  5641. <param name="precModel">The precision model to apply on the new coordinates</param>
  5642. <returns>The densified coordinate sequence</returns>
  5643. </member>
  5644. <member name="F:NetTopologySuite.Densify.Densifier._validate">
  5645. <summary>
  5646. Indicates whether areas should be topologically validated.
  5647. <br/><b>Note:</b> JTS name <c>_isValidated</c>
  5648. </summary>
  5649. </member>
  5650. <member name="M:NetTopologySuite.Densify.Densifier.#ctor(NetTopologySuite.Geometries.Geometry)">
  5651. <summary>Creates a new densifier instance</summary>
  5652. <param name="inputGeom">The geometry to densify</param>
  5653. </member>
  5654. <member name="P:NetTopologySuite.Densify.Densifier.DistanceTolerance">
  5655. <summary>
  5656. Gets or sets the distance tolerance for the densification. All line segments
  5657. in the densified geometry will be no longer than the distance tolerance.
  5658. The distance tolerance must be positive.
  5659. </summary>
  5660. </member>
  5661. <member name="P:NetTopologySuite.Densify.Densifier.Validate">
  5662. <summary>
  5663. Gets or sets whether polygonal results are processed to ensure they are valid.
  5664. </summary>
  5665. <returns><c>true</c> if polygonal input is validated.</returns>
  5666. </member>
  5667. <member name="M:NetTopologySuite.Densify.Densifier.GetResultGeometry">
  5668. <summary>
  5669. Gets the densified geometry.
  5670. </summary>
  5671. <returns>The densified geometry</returns>
  5672. </member>
  5673. <member name="F:NetTopologySuite.Densify.Densifier.DensifyTransformer._validate">
  5674. <summary>
  5675. Indicates whether areas should be topologically validated.
  5676. <br/><b>Note:</b> JTS name <c>_isValidated</c>
  5677. </summary>
  5678. </member>
  5679. <member name="M:NetTopologySuite.Densify.Densifier.DensifyTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
  5680. <summary>
  5681. Creates a valid area geometry from one that possibly has bad topology
  5682. (i.e. self-intersections). Since buffer can handle invalid topology, but
  5683. always returns valid geometry, constructing a 0-width buffer "corrects"
  5684. the topology. Note this only works for area geometries, since buffer
  5685. always returns areas. This also may return empty geometries, if the input
  5686. has no actual area.
  5687. </summary>
  5688. <param name="roughAreaGeom">An area geometry possibly containing self-intersections</param>
  5689. <returns>A valid area geometry</returns>
  5690. </member>
  5691. <member name="T:NetTopologySuite.Dissolve.DissolveEdgeGraph">
  5692. <summary>
  5693. A graph containing <see cref="T:NetTopologySuite.Dissolve.DissolveHalfEdge"/>s.
  5694. </summary>
  5695. </member>
  5696. <member name="M:NetTopologySuite.Dissolve.DissolveEdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)">
  5697. <inheritdoc/>
  5698. </member>
  5699. <member name="T:NetTopologySuite.Dissolve.DissolveHalfEdge">
  5700. <summary>
  5701. A HalfEdge which carries information
  5702. required to support <see cref="T:NetTopologySuite.Dissolve.LineDissolver"/>.
  5703. </summary>
  5704. </member>
  5705. <member name="M:NetTopologySuite.Dissolve.DissolveHalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
  5706. <summary>
  5707. Creates an instance of a <c>DissolveHalfEdge</c> using the provided origin.
  5708. </summary>
  5709. <param name="orig">The origin</param>
  5710. </member>
  5711. <member name="P:NetTopologySuite.Dissolve.DissolveHalfEdge.IsStart">
  5712. <summary>
  5713. Tests whether this edge is the starting segment
  5714. in a LineString being dissolved.
  5715. </summary>
  5716. <returns><c>true</c> if this edge is a start segment</returns>
  5717. </member>
  5718. <member name="M:NetTopologySuite.Dissolve.DissolveHalfEdge.SetStart">
  5719. <summary>
  5720. Sets this edge to be the start segment of an input LineString.
  5721. </summary>
  5722. </member>
  5723. <member name="T:NetTopologySuite.Dissolve.LineDissolver">
  5724. <summary>
  5725. Dissolves the linear components
  5726. from a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  5727. into a set of maximal-length <see cref="T:NetTopologySuite.Geometries.LineString"/>s
  5728. in which every unique segment appears once only.
  5729. The output linestrings run between node vertices
  5730. of the input, which are vertices which have
  5731. either degree 1, or degree 3 or greater.
  5732. </summary>
  5733. <remarks>
  5734. Use cases for dissolving linear components
  5735. include generalization
  5736. (in particular, simplifying polygonal coverages),
  5737. and visualization
  5738. (in particular, avoiding symbology conflicts when
  5739. depicting shared polygon boundaries).
  5740. </remarks>
  5741. <remarks>
  5742. This class does NOT node the input lines.
  5743. If there are line segments crossing in the input,
  5744. they will still cross in the output.
  5745. </remarks>
  5746. </member>
  5747. <member name="M:NetTopologySuite.Dissolve.LineDissolver.Dissolve(NetTopologySuite.Geometries.Geometry)">
  5748. <summary>
  5749. Dissolves the linear components in a geometry.
  5750. </summary>
  5751. <param name="g">the geometry to dissolve</param>
  5752. <returns>the dissolved lines</returns>
  5753. </member>
  5754. <member name="M:NetTopologySuite.Dissolve.LineDissolver.#ctor">
  5755. <summary>
  5756. Creates an instance of this class
  5757. </summary>
  5758. </member>
  5759. <member name="M:NetTopologySuite.Dissolve.LineDissolver.Add(NetTopologySuite.Geometries.Geometry)">
  5760. <summary>
  5761. Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to be dissolved.
  5762. Any number of geometries may be added by calling this method multiple times.
  5763. Any type of Geometry may be added. The constituent linework will be
  5764. extracted to be dissolved.
  5765. </summary>
  5766. <param name="geometry">geometry to be line-merged</param>
  5767. </member>
  5768. <member name="M:NetTopologySuite.Dissolve.LineDissolver.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  5769. <summary>
  5770. Adds a collection of Geometries to be processed. May be called multiple times.
  5771. Any dimension of Geometry may be added; the constituent linework will be
  5772. extracted.
  5773. </summary>
  5774. <param name="geometries">the geometries to be line-merged</param>
  5775. </member>
  5776. <member name="M:NetTopologySuite.Dissolve.LineDissolver.GetResult">
  5777. <summary>
  5778. Gets the dissolved result as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  5779. </summary>
  5780. <returns>the dissolved lines</returns>
  5781. </member>
  5782. <member name="M:NetTopologySuite.Dissolve.LineDissolver.BuildLines">
  5783. <summary>
  5784. For each edge in stack
  5785. (which must originate at a node)
  5786. extracts the line it initiates.
  5787. </summary>
  5788. </member>
  5789. <member name="M:NetTopologySuite.Dissolve.LineDissolver.UpdateRingStartEdge(NetTopologySuite.Dissolve.DissolveHalfEdge)">
  5790. <summary>
  5791. Updates the tracked ringStartEdge
  5792. if the given edge has a lower origin
  5793. (using the standard <see cref="T:NetTopologySuite.Geometries.Coordinate"/> ordering).
  5794. </summary>
  5795. <remarks>
  5796. Identifying the lowest starting node meets two goals:
  5797. * It ensures that isolated input rings are created using the original node and orientation.
  5798. * For isolated rings formed from multiple input linestrings,
  5799. it provides a canonical node and orientation for the output
  5800. (rather than essentially random, and thus hard to test).
  5801. </remarks>
  5802. <param name="e"></param>
  5803. </member>
  5804. <member name="M:NetTopologySuite.Dissolve.LineDissolver.BuildLine(NetTopologySuite.EdgeGraph.HalfEdge)">
  5805. <summary>
  5806. Builds a line starting from the given edge.
  5807. The start edge origin is a node (valence = 1 or >= 3),
  5808. unless it is part of a pure ring.
  5809. </summary>
  5810. <remarks>
  5811. A pure ring has no other incident lines.
  5812. In this case the start edge may occur anywhere on the ring.
  5813. </remarks>
  5814. <remarks>
  5815. The line is built up to the next node encountered,
  5816. or until the start edge is re-encountered
  5817. (which happens if the edges form a ring).
  5818. </remarks>
  5819. <param name="eStart"></param>
  5820. </member>
  5821. <member name="M:NetTopologySuite.Dissolve.LineDissolver.StackEdges(NetTopologySuite.EdgeGraph.HalfEdge)">
  5822. <summary>
  5823. Adds edges around this node to the stack.
  5824. </summary>
  5825. <param name="node"></param>
  5826. </member>
  5827. <member name="T:NetTopologySuite.EdgeGraph.EdgeGraph">
  5828. <summary>
  5829. A graph comprised of <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/>s.
  5830. It supports tracking the vertices in the graph
  5831. via edges incident on them,
  5832. to allow efficient lookup of edges and vertices.
  5833. </summary>
  5834. <remarks>
  5835. This class may be subclassed to use a
  5836. different subclass of HalfEdge,
  5837. by overriding <see cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)"/>.
  5838. If additional logic is required to initialize
  5839. edges then <see cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.AddEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  5840. can be overridden as well.
  5841. </remarks>
  5842. </member>
  5843. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.CreateEdge(NetTopologySuite.Geometries.Coordinate)">
  5844. <summary>
  5845. Creates a single HalfEdge.
  5846. Override to use a different HalfEdge subclass.
  5847. </summary>
  5848. <param name="orig">the origin location</param>
  5849. <returns>a new <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> with the given origin</returns>
  5850. </member>
  5851. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  5852. <summary>
  5853. Creates a <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> pair, using the <c>HalfEdge</c> type of the graph subclass
  5854. </summary>
  5855. <param name="p0"></param>
  5856. <param name="p1"></param>
  5857. <returns>A <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> pair</returns>
  5858. </member>
  5859. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.AddEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  5860. <summary>
  5861. Adds an edge between the coordinates orig and dest
  5862. to this graph.
  5863. </summary>
  5864. <remarks>
  5865. Only valid edges can be added (in particular, zero-length segments cannot be added)
  5866. </remarks>
  5867. <param name="orig">the edge origin location</param>
  5868. <param name="dest">the edge destination location</param>
  5869. <returns>The created edge</returns>
  5870. <returns><c>null</c> if the edge was invalid and not added</returns>
  5871. <seealso cref="M:NetTopologySuite.EdgeGraph.EdgeGraph.IsValidEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  5872. </member>
  5873. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.IsValidEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  5874. <summary>
  5875. Test if an the coordinates for an edge form a valid edge (with non-zero length)
  5876. </summary>
  5877. <param name="orig">The start coordinate</param>
  5878. <param name="dest">The end coordinate</param>
  5879. <returns><c>true</c> of the edge formed is valid</returns>
  5880. </member>
  5881. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.Insert(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.EdgeGraph.HalfEdge)">
  5882. <summary>
  5883. Inserts an edge not already present into the graph.
  5884. </summary>
  5885. <param name="orig">the edge origin location</param>
  5886. <param name="dest">the edge destination location</param>
  5887. <param name="eAdj">an existing edge with same orig (if any)</param>
  5888. <returns>the created edge</returns>
  5889. </member>
  5890. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.GetVertexEdges">
  5891. <summary>
  5892. Gets all <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/>s in the graph.
  5893. Both edges of edge pairs are included.
  5894. </summary>
  5895. <returns>An enumeration of the graph edges</returns>
  5896. </member>
  5897. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraph.FindEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  5898. <summary>
  5899. Finds an edge in this graph with the given origin
  5900. and destination, if one exists.
  5901. </summary>
  5902. <param name="orig">the origin location</param>
  5903. <param name="dest">the destination location</param>
  5904. <returns>an edge with the given orig and dest, or null if none exists</returns>
  5905. </member>
  5906. <member name="T:NetTopologySuite.EdgeGraph.EdgeGraphBuilder">
  5907. <summary>
  5908. Builds an edge graph from geometries containing edges.
  5909. </summary>
  5910. </member>
  5911. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Build(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  5912. <summary>
  5913. Factory method to build an <c>EdgeGraph</c>.
  5914. </summary>
  5915. <param name="geoms">The geometries to make up the <c>EdgeGraph</c></param>
  5916. <returns>An <c>EdgeGraph</c> of the <paramref name="geoms"/></returns>
  5917. </member>
  5918. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.#ctor">
  5919. <summary>
  5920. Creates a new <c>EdgeGraphBuilder</c>.
  5921. </summary>
  5922. </member>
  5923. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.GetGraph">
  5924. <summary>
  5925. Gets the created <c>EdgeGraph</c>
  5926. </summary>
  5927. <returns>The created <c>EdgeGraph</c></returns>
  5928. </member>
  5929. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Add(NetTopologySuite.Geometries.Geometry)">
  5930. <summary>
  5931. Adds the edges of a Geometry to the graph.
  5932. May be called multiple times.
  5933. Any dimension of Geometry may be added; the constituent edges are extracted.
  5934. </summary>
  5935. <param name="geometry">geometry to be added</param>
  5936. </member>
  5937. <member name="M:NetTopologySuite.EdgeGraph.EdgeGraphBuilder.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  5938. <summary>
  5939. Adds the edges in a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to the graph.
  5940. May be called multiple times.
  5941. Any dimension of <see cref="T:NetTopologySuite.Geometries.Geometry"/> may be added.
  5942. </summary>
  5943. <param name="geometries">the geometries to be added</param>
  5944. </member>
  5945. <member name="T:NetTopologySuite.EdgeGraph.HalfEdge">
  5946. <summary>
  5947. Represents a directed component of an edge in an <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph"/>.
  5948. HalfEdges link vertices whose locations are defined by <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  5949. HalfEdges start at an <b>origin</b> vertex,
  5950. and terminate at a <b>destination</b> vertex.
  5951. HalfEdges always occur in symmetric pairs, with the <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> method
  5952. giving access to the oppositely-oriented component.
  5953. HalfEdges and the methods on them form an edge algebra,
  5954. which can be used to traverse and query the topology
  5955. of the graph formed by the edges.
  5956. <para/>
  5957. To support graphs where the edges are sequences of coordinates
  5958. each edge may also have a direction point supplied.
  5959. This is used to determine the ordering
  5960. of the edges around the origin.
  5961. HalfEdges with the same origin are ordered
  5962. so that the ring of edges formed by them is oriented CCW.
  5963. <para/>
  5964. By design HalfEdges carry minimal information
  5965. about the actual usage of the graph they represent.
  5966. They can be subclassed to carry more information if required.
  5967. <para/>
  5968. HalfEdges form a complete and consistent data structure by themselves,
  5969. but an <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph"/> is useful to allow retrieving edges
  5970. by vertex and edge location, as well as ensuring
  5971. edges are created and linked appropriately.
  5972. </summary>
  5973. <author>Martin Davis</author>
  5974. </member>
  5975. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  5976. <summary>
  5977. Creates a HalfEdge pair representing an edge
  5978. between two vertices located at coordinates p0 and p1.
  5979. </summary>
  5980. <param name="p0">a vertex coordinate</param>
  5981. <param name="p1">a vertex coordinate</param>
  5982. <returns>the HalfEdge with origin at p0</returns>
  5983. </member>
  5984. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Init(NetTopologySuite.EdgeGraph.HalfEdge,NetTopologySuite.EdgeGraph.HalfEdge)">
  5985. <summary>
  5986. Initialize a symmetric pair of halfedges.
  5987. Intended for use by <see cref="T:NetTopologySuite.EdgeGraph.EdgeGraph" />
  5988. subclasses.
  5989. <para/>
  5990. The edges are initialized to have each other
  5991. as the <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> edge, and to have
  5992. <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Next"/> pointers which point to edge other.
  5993. This effectively creates a graph containing a single edge.
  5994. </summary>
  5995. <param name="e0">A halfedge</param>
  5996. <param name="e1">A symmetric halfedge</param>
  5997. <returns>The initialized edge e0</returns>
  5998. </member>
  5999. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
  6000. <summary>
  6001. Creates an edge originating from a given coordinate.
  6002. </summary>
  6003. <param name="orig">the origin coordinate</param>
  6004. </member>
  6005. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Link(NetTopologySuite.EdgeGraph.HalfEdge)">
  6006. <summary>
  6007. Links this edge with its sym (opposite) edge.
  6008. This must be done for each pair of edges created.
  6009. </summary>
  6010. <param name="sym">The sym edge to link.</param>
  6011. </member>
  6012. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Init(NetTopologySuite.EdgeGraph.HalfEdge)">
  6013. <summary>
  6014. Initializes this edge with <paramref name="e"/> as <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/> edge.
  6015. </summary>
  6016. <param name="e">A symmetric half edge.</param>
  6017. </member>
  6018. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Orig">
  6019. <summary>
  6020. Gets the origin coordinate of this edge.
  6021. </summary>
  6022. </member>
  6023. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Dest">
  6024. <summary>
  6025. Gets the destination coordinate of this edge.
  6026. </summary>
  6027. </member>
  6028. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionX">
  6029. <summary>
  6030. Gets a value indicating the X component of the direction vector.
  6031. </summary>
  6032. <returns>The X component of the direction vector</returns>
  6033. </member>
  6034. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionY">
  6035. <summary>
  6036. Gets a value indicating the Y component of the direction vector.
  6037. </summary>
  6038. <returns>The Y component of the direction vector</returns>
  6039. </member>
  6040. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DirectionPt">
  6041. <summary>
  6042. Gets a value indicating the direction point of this edge.
  6043. In the base case this is the dest coordinate
  6044. of the edge.
  6045. <para/>
  6046. Subclasses may override to
  6047. allow a HalfEdge to represent an edge with more than two coordinates.
  6048. </summary>
  6049. <returns>The direction point for the edge</returns>
  6050. </member>
  6051. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym">
  6052. <summary>
  6053. Gets or sets the symmetric (opposite) edge of this edge.
  6054. </summary>
  6055. </member>
  6056. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Next">
  6057. <summary>
  6058. Gets the next edge CCW around the destination vertex of this edge.
  6059. If the destination vertex has degree <c>1</c> then this is the <c>Sym</c> edge.
  6060. </summary>
  6061. <returns>The next outgoing edge CCW around the destination vertex</returns>
  6062. </member>
  6063. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.Prev">
  6064. <summary>
  6065. Gets the previous edge CW around the origin
  6066. vertex of this edge,
  6067. with that vertex being its destination.
  6068. <para/>
  6069. It is always true that <c>e.Next.Prev == e</c>
  6070. <para/>
  6071. Note that this requires a scan of the origin edges,
  6072. so may not be efficient for some uses.
  6073. </summary>
  6074. <returns>The previous edge CW around the origin vertex</returns>
  6075. </member>
  6076. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.ONext">
  6077. <summary>
  6078. Gets the next edge CCW around the origin of this edge,
  6079. with the same origin.<br/>
  6080. If the origin vertex has degree <c>1</c> then this is the edge itself.
  6081. <para/>
  6082. <c>e.ONext</c> is equal to <c>e.Sym.Next()</c>
  6083. </summary>
  6084. <returns>The next edge around the origin</returns>
  6085. </member>
  6086. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Find(NetTopologySuite.Geometries.Coordinate)">
  6087. <summary>
  6088. Finds the edge starting at the origin of this edge
  6089. with the given dest vertex, if any.
  6090. </summary>
  6091. <param name="dest">the dest vertex to search for</param>
  6092. <returns>
  6093. the edge with the required dest vertex,
  6094. if it exists, or null
  6095. </returns>
  6096. </member>
  6097. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  6098. <summary>
  6099. Tests whether this edge has the given orig and dest vertices.
  6100. </summary>
  6101. <param name="p0">the origin vertex to test</param>
  6102. <param name="p1">the destination vertex to test</param>
  6103. <returns><c>true</c> if the vertices are equal to the ones of this edge</returns>
  6104. </member>
  6105. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Insert(NetTopologySuite.EdgeGraph.HalfEdge)">
  6106. <summary>
  6107. Inserts an edge
  6108. into the ring of edges around the origin vertex of this edge,
  6109. ensuring that the edges remain ordered CCW.
  6110. The inserted edge must have the same origin as this edge.
  6111. </summary>
  6112. <param name="eAdd">the edge to insert</param>
  6113. </member>
  6114. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.InsertionEdge(NetTopologySuite.EdgeGraph.HalfEdge)">
  6115. <summary>
  6116. Finds the insertion edge for a edge
  6117. being added to this origin,
  6118. ensuring that the star of edges
  6119. around the origin remains fully CCW.
  6120. </summary>
  6121. <param name="eAdd">The edge being added</param>
  6122. <returns>The edge to insert after</returns>
  6123. </member>
  6124. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.InsertAfter(NetTopologySuite.EdgeGraph.HalfEdge)">
  6125. <summary>
  6126. Insert an edge with the same origin after this one.
  6127. Assumes that the inserted edge is in the correct
  6128. position around the ring.
  6129. </summary>
  6130. <param name="e">the edge to insert (with same origin)</param>
  6131. </member>
  6132. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.IsEdgesSorted">
  6133. <summary>
  6134. Tests whether the edges around the origin
  6135. are sorted correctly.
  6136. Note that edges must be strictly increasing,
  6137. which implies no two edges can have the same direction point.
  6138. </summary>
  6139. <returns><c>true</c> if the origin edges are sorted correctly
  6140. </returns>
  6141. </member>
  6142. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.FindLowest">
  6143. <summary>
  6144. Finds the lowest edge around the origin,
  6145. using the standard edge ordering.
  6146. </summary>
  6147. <returns>The lowest edge around the origin</returns>
  6148. </member>
  6149. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.CompareTo(NetTopologySuite.EdgeGraph.HalfEdge)">
  6150. <summary>
  6151. Compares edges which originate at the same vertex
  6152. based on the angle they make at their origin vertex with the positive X-axis.
  6153. This allows sorting edges around their origin vertex in CCW order.
  6154. </summary>
  6155. </member>
  6156. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.CompareAngularDirection(NetTopologySuite.EdgeGraph.HalfEdge)">
  6157. <summary>
  6158. Implements the total order relation.
  6159. The angle of edge a is greater than the angle of edge b,
  6160. where the angle of an edge is the angle made by
  6161. the first segment of the edge with the positive x-axis.
  6162. When applied to a list of edges originating at the same point,
  6163. this produces a CCW ordering of the edges around the point.
  6164. Using the obvious algorithm of computing the angle is not robust,
  6165. since the angle calculation is susceptible to round off error.
  6166. </summary>
  6167. <remarks>
  6168. A robust algorithm is:
  6169. 1. compare the quadrants the edge vectors lie in.
  6170. If the quadrants are different,
  6171. it is trivial to determine which edge has a greater angle.
  6172. 2. If the vectors lie in the same quadrant, the
  6173. <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/> function
  6174. can be used to determine the relative orientation of the vectors.
  6175. </remarks>
  6176. </member>
  6177. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DeltaX">
  6178. <summary>
  6179. The X component of the distance between the orig and dest vertices.
  6180. </summary>
  6181. </member>
  6182. <member name="P:NetTopologySuite.EdgeGraph.HalfEdge.DeltaY">
  6183. <summary>
  6184. The Y component of the distance between the orig and dest vertices.
  6185. </summary>
  6186. </member>
  6187. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.ToString">
  6188. <summary>
  6189. Computes a string representation of a HalfEdge.
  6190. </summary>
  6191. </member>
  6192. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.ToStringNode">
  6193. <summary>
  6194. Provides a string representation of the edges around
  6195. the origin node of this edge.
  6196. </summary>
  6197. <remarks>
  6198. Uses the subclass representation for each edge.
  6199. </remarks>
  6200. <returns>A string showing the edges around the origin</returns>
  6201. </member>
  6202. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.Degree">
  6203. <summary>
  6204. Computes the degree of the origin vertex.
  6205. The degree is the number of edges
  6206. originating from the vertex.
  6207. </summary>
  6208. <returns>the degree of the origin vertex</returns>
  6209. </member>
  6210. <member name="M:NetTopologySuite.EdgeGraph.HalfEdge.PrevNode">
  6211. <summary>
  6212. Finds the first node previous to this edge, if any.
  6213. If no such node exists (i.e. the edge is part of a ring)
  6214. then null is returned.
  6215. </summary>
  6216. <returns>
  6217. an edge originating at the node prior to this edge, if any,
  6218. or null if no node exists
  6219. </returns>
  6220. </member>
  6221. <member name="T:NetTopologySuite.EdgeGraph.MarkHalfEdge">
  6222. <summary>
  6223. A <see cref="T:NetTopologySuite.EdgeGraph.HalfEdge"/> which supports
  6224. marking edges with a boolean flag.
  6225. Useful for algorithms which perform graph traversals.
  6226. </summary>
  6227. </member>
  6228. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.IsMarked(NetTopologySuite.EdgeGraph.HalfEdge)">
  6229. <summary>
  6230. Returns a value indicating that the given edge is marked.
  6231. </summary>
  6232. <param name="e">An edge</param>
  6233. <returns><c>true</c> if the edge is marked</returns>
  6234. </member>
  6235. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.Mark(NetTopologySuite.EdgeGraph.HalfEdge)">
  6236. <summary>
  6237. Marks the edge.
  6238. </summary>
  6239. <param name="e">An edge to mark</param>
  6240. </member>
  6241. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.SetMark(NetTopologySuite.EdgeGraph.HalfEdge,System.Boolean)">
  6242. <summary>
  6243. Sets the mark for the given edge to a boolean value.
  6244. </summary>
  6245. <param name="e">An Edge to update</param>
  6246. <param name="isMarked">The mark value to set</param>
  6247. </member>
  6248. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.SetMarkBoth(NetTopologySuite.EdgeGraph.HalfEdge,System.Boolean)">
  6249. <summary>
  6250. Sets the mark for the given edge pair to a boolean value.
  6251. </summary>
  6252. <param name="e">an edge of the pair to update</param>
  6253. <param name="isMarked">the mark value to set</param>
  6254. </member>
  6255. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.MarkBoth(NetTopologySuite.EdgeGraph.HalfEdge)">
  6256. <summary>
  6257. Marks the edges in a pair.
  6258. </summary>
  6259. <param name="e">an edge of the pair to mark</param>
  6260. </member>
  6261. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.#ctor(NetTopologySuite.Geometries.Coordinate)">
  6262. <summary>
  6263. Creates a new marked edge.
  6264. </summary>
  6265. <param name="orig">the coordinate of the edge origin</param>
  6266. </member>
  6267. <member name="M:NetTopologySuite.EdgeGraph.MarkHalfEdge.Mark">
  6268. <summary>
  6269. Marks this edge.
  6270. </summary>
  6271. </member>
  6272. <member name="P:NetTopologySuite.EdgeGraph.MarkHalfEdge.Marked">
  6273. <summary>
  6274. Gets or sets a value indicating if this <c>MarkHalfEdge</c> is marked
  6275. </summary>
  6276. </member>
  6277. <member name="T:NetTopologySuite.Geometries.Coordinate">
  6278. <summary>
  6279. A lightweight class used to store coordinates on the 2-dimensional Cartesian plane.
  6280. <para>
  6281. The base data object is suitable for use with coordinate sequences with
  6282. <c>dimension</c> = 2 and <c>measures</c> = 0.
  6283. </para>
  6284. </summary>
  6285. <remarks>
  6286. It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  6287. Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
  6288. information such as an envelope, a precision model, and spatial reference
  6289. system information), a <c>Coordinate</c> only contains ordinate values
  6290. and properties.
  6291. <para/>
  6292. Implementations may optionally support Z-ordinate and M-measure values
  6293. as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.Coordinate.Z"/>
  6294. and <see cref="P:NetTopologySuite.Geometries.Coordinate.M"/> setters or <see cref="P:NetTopologySuite.Geometries.Coordinate.this[int]" /> indexer are recommended.
  6295. </remarks>
  6296. </member>
  6297. <member name="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate">
  6298. <summary>
  6299. The value used to indicate a null or missing ordinate value.
  6300. In particular, used for the value of ordinates for dimensions
  6301. greater than the defined dimension of a coordinate.
  6302. </summary>
  6303. </member>
  6304. <member name="P:NetTopologySuite.Geometries.Coordinate.X">
  6305. <summary>
  6306. Gets or sets the X-ordinate value.
  6307. </summary>
  6308. </member>
  6309. <member name="P:NetTopologySuite.Geometries.Coordinate.Y">
  6310. <summary>
  6311. Gets or sets the Y-ordinate value.
  6312. </summary>
  6313. </member>
  6314. <member name="P:NetTopologySuite.Geometries.Coordinate.Z">
  6315. <summary>
  6316. Gets or sets the Z-ordinate value, if supported.
  6317. If no Z value is present, returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.
  6318. </summary>
  6319. <exception cref="T:System.InvalidOperationException">
  6320. Thrown if an attempt is made to <b>set</b> the Z-ordinate value on an instance where
  6321. the Z-ordinate value is not supported.
  6322. </exception>
  6323. </member>
  6324. <member name="P:NetTopologySuite.Geometries.Coordinate.M">
  6325. <summary>
  6326. Gets or sets the value of the measure, if supported.
  6327. If no measure value is present, returns <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.
  6328. </summary>
  6329. <exception cref="T:System.InvalidOperationException">
  6330. Thrown if an attempt is made to <b>set</b> the measure value on an instance where
  6331. measures are not supported.
  6332. </exception>
  6333. </member>
  6334. <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor(System.Double,System.Double)">
  6335. <summary>
  6336. Constructs a <c>Coordinate</c> at (x,y).
  6337. </summary>
  6338. <param name="x">The X value</param>
  6339. <param name="y">The Y value</param>
  6340. </member>
  6341. <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor">
  6342. <summary>
  6343. Constructs a <c>Coordinate</c> at (0,0).
  6344. </summary>
  6345. </member>
  6346. <member name="M:NetTopologySuite.Geometries.Coordinate.#ctor(NetTopologySuite.Geometries.Coordinate)">
  6347. <summary>
  6348. Constructs a <c>Coordinate</c> having the same (x,y,z) values as
  6349. <paramref name="c"/>.
  6350. </summary>
  6351. <param name="c"><c>Coordinate</c> to copy.</param>
  6352. </member>
  6353. <member name="P:NetTopologySuite.Geometries.Coordinate.Item(NetTopologySuite.Geometries.Ordinate)">
  6354. <summary>
  6355. Gets or sets the value for the given ordinate.
  6356. </summary>
  6357. <param name="ordinate">The ordinate.</param>
  6358. <returns>The ordinate value</returns>
  6359. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinate"/> is not one of <see cref="F:NetTopologySuite.Geometries.Ordinate.X"/>, <see cref="F:NetTopologySuite.Geometries.Ordinate.Y"/>, <see cref="F:NetTopologySuite.Geometries.Ordinate.Z"/>, or <see cref="F:NetTopologySuite.Geometries.Ordinate.M"/>.</exception>
  6360. </member>
  6361. <member name="P:NetTopologySuite.Geometries.Coordinate.Item(System.Int32)">
  6362. <summary>
  6363. Gets or sets the ordinate value for the given index.
  6364. </summary>
  6365. <remarks>
  6366. The base implementation supports 0 (X) and 1 (Y) as values for the index.
  6367. </remarks>
  6368. <param name="ordinateIndex">The ordinate index</param>
  6369. <returns>The ordinate value</returns>
  6370. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
  6371. </member>
  6372. <member name="M:NetTopologySuite.Geometries.Coordinate.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.Coordinate">
  6373. <summary>
  6374. Implicitly cast a tuple to a new <see cref="T:NetTopologySuite.Geometries.Coordinate"/> as a copy of this instance.
  6375. </summary>
  6376. <param name="value"></param>
  6377. <returns></returns>
  6378. </member>
  6379. <member name="M:NetTopologySuite.Geometries.Coordinate.Deconstruct(System.Double@,System.Double@)">
  6380. <summary>
  6381. Deconstructs this <see cref="T:NetTopologySuite.Geometries.Coordinate"/> into its components.
  6382. </summary>
  6383. <param name="x"></param>
  6384. <param name="y"></param>
  6385. </member>
  6386. <member name="P:NetTopologySuite.Geometries.Coordinate.CoordinateValue">
  6387. <summary>
  6388. Gets/Sets <c>Coordinate</c>s (x,y,z) values.
  6389. </summary>
  6390. </member>
  6391. <member name="P:NetTopologySuite.Geometries.Coordinate.IsValid">
  6392. <summary>Gets a value indicating if the <c>Coordinate</c>
  6393. has valid x- and y ordinate values
  6394. <para/>
  6395. An ordinate value is valid if it is finite.
  6396. </summary>
  6397. <returns><c>true</c> if the coordinate is valid</returns>
  6398. <see cref="M:System.Double.IsInfinity(System.Double)"/>
  6399. <see cref="M:System.Double.IsNaN(System.Double)"/>
  6400. </member>
  6401. <member name="M:NetTopologySuite.Geometries.Coordinate.IsFinite(System.Double)">
  6402. <summary>
  6403. Predicate to check if a <see cref="T:System.Double"/> value is finite.
  6404. <para/>
  6405. It is finite if both <see cref="M:System.Double.IsInfinity(System.Double)"/> and <see cref="M:System.Double.IsNaN(System.Double)"/> return <c>false</c>
  6406. </summary>
  6407. <param name="value">The value to test</param>
  6408. <returns><c>value</c></returns>
  6409. </member>
  6410. <member name="M:NetTopologySuite.Geometries.Coordinate.Equals2D(NetTopologySuite.Geometries.Coordinate)">
  6411. <summary>
  6412. Returns whether the planar projections of the two <c>Coordinate</c>s are equal.
  6413. </summary>
  6414. <param name="other"><c>Coordinate</c> with which to do the 2D comparison.</param>
  6415. <returns>
  6416. <c>true</c> if the x- and y-coordinates are equal;
  6417. the Z coordinates do not have to be equal.
  6418. </returns>
  6419. </member>
  6420. <member name="M:NetTopologySuite.Geometries.Coordinate.Equals2D(NetTopologySuite.Geometries.Coordinate,System.Double)">
  6421. <summary>
  6422. Tests if another Coordinate has the same values for the X and Y ordinates,
  6423. within a specified tolerance value. The Z ordinate is ignored.
  6424. </summary>
  6425. <param name="c">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.</param>
  6426. <param name="tolerance">The tolerance value to use.</param>
  6427. <returns><c>true</c> if the X and Y ordinates are within the given tolerance.</returns>
  6428. <remarks>The Z ordinate is ignored.</remarks>
  6429. </member>
  6430. <member name="M:NetTopologySuite.Geometries.Coordinate.Equals(NetTopologySuite.Geometries.Coordinate)">
  6431. <summary>
  6432. </summary>
  6433. <param name="other"></param>
  6434. <returns></returns>
  6435. </member>
  6436. <member name="M:NetTopologySuite.Geometries.Coordinate.CompareTo(System.Object)">
  6437. <summary>
  6438. Compares this object with the specified object for order.
  6439. Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
  6440. Returns
  6441. -1 : this.x &lt; other.x || ((this.x == other.x) AND (this.y &lt; other.y))
  6442. 0 : this.x == other.x AND this.y = other.y
  6443. 1 : this.x &gt; other.x || ((this.x == other.x) AND (this.y &gt; other.y))
  6444. </summary>
  6445. <param name="o"><c>Coordinate</c> with which this <c>Coordinate</c> is being compared.</param>
  6446. <returns>
  6447. A negative integer, zero, or a positive integer as this <c>Coordinate</c>
  6448. is less than, equal to, or greater than the specified <c>Coordinate</c>.
  6449. </returns>
  6450. </member>
  6451. <member name="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)">
  6452. <summary>
  6453. Compares this object with the specified object for order.
  6454. Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
  6455. Returns
  6456. -1 : this.x &lt; other.x || ((this.x == other.x) AND (this.y &lt; other.y))
  6457. 0 : this.x == other.x AND this.y = other.y
  6458. 1 : this.x &gt; other.x || ((this.x == other.x) AND (this.y &gt; other.y))
  6459. </summary>
  6460. <param name="other"><c>Coordinate</c> with which this <c>Coordinate</c> is being compared.</param>
  6461. <returns>
  6462. A negative integer, zero, or a positive integer as this <c>Coordinate</c>
  6463. is less than, equal to, or greater than the specified <c>Coordinate</c>.
  6464. </returns>
  6465. </member>
  6466. <member name="M:NetTopologySuite.Geometries.Coordinate.Copy">
  6467. <summary>
  6468. Create a copy of this <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  6469. </summary>
  6470. <returns>A copy of this coordinate.</returns>
  6471. </member>
  6472. <member name="M:NetTopologySuite.Geometries.Coordinate.Create(System.Double,System.Double,System.Double,System.Double)">
  6473. <summary>
  6474. Create a Coordinate of the same type as this Coordinate, using the provided values.
  6475. </summary>
  6476. <remarks>Depending on the actual type the following limitations are in place:
  6477. <list type="table">
  6478. <listheader><term>Coordinate (Sub-)Class</term><description>Limitation</description></listheader>
  6479. <item><term><c>Coordinate</c></term><description><paramref name="z"/>-parameter and <paramref name="m"/>-parameter are silently dropped.</description></item>
  6480. <item><term><c>CoordinateZ</c></term><description><paramref name="m"/>-parameter is silently dropped.</description></item>
  6481. <item><term><c>CoordinateM</c></term><description><paramref name="z"/>-parameter is silently dropped.</description></item>
  6482. <item><term><c>CoordinateZM</c></term><description>No parameter is dropped.</description></item>
  6483. </list>
  6484. </remarks>
  6485. <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
  6486. <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
  6487. <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  6488. <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  6489. <returns>A new <see cref="T:NetTopologySuite.Geometries.Coordinate"/></returns>
  6490. </member>
  6491. <member name="M:NetTopologySuite.Geometries.Coordinate.Distance(NetTopologySuite.Geometries.Coordinate)">
  6492. <summary>
  6493. Computes the 2-dimensional Euclidean distance to another location.
  6494. </summary>
  6495. <param name="c">A <see cref="T:NetTopologySuite.Geometries.Coordinate"/> with which to do the distance comparison.</param>
  6496. <returns>the 2-dimensional Euclidean distance between the locations.</returns>
  6497. <remarks>The Z-ordinate is ignored.</remarks>
  6498. </member>
  6499. <member name="M:NetTopologySuite.Geometries.Coordinate.Equals(System.Object)">
  6500. <summary>
  6501. Returns <c>true</c> if <c>other</c> has the same values for the x and y ordinates.
  6502. Since Coordinates are 2.5D, this routine ignores the z value when making the comparison.
  6503. </summary>
  6504. <param name="o"><c>Coordinate</c> with which to do the comparison.</param>
  6505. <returns><c>true</c> if <c>other</c> is a <c>Coordinate</c> with the same values for the x and y ordinates.</returns>
  6506. </member>
  6507. <member name="M:NetTopologySuite.Geometries.Coordinate.GetHashCode">
  6508. <summary>
  6509. Gets a hashcode for this coordinate.
  6510. </summary>
  6511. <returns>A hashcode for this coordinate.</returns>
  6512. </member>
  6513. <member name="M:NetTopologySuite.Geometries.Coordinate.ToString">
  6514. <summary>
  6515. Returns a <c>string</c> of the form <I>(x,y,z)</I> .
  6516. </summary>
  6517. <returns><c>string</c> of the form <I>(x,y,z)</I></returns>
  6518. </member>
  6519. <member name="T:NetTopologySuite.Geometries.CoordinateArrays">
  6520. <summary>
  6521. Useful utility functions for handling Coordinate arrays.
  6522. </summary>
  6523. </member>
  6524. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Dimension(NetTopologySuite.Geometries.Coordinate[])">
  6525. <summary>
  6526. Determine dimension based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  6527. </summary>
  6528. <param name="pts">pts supplied coordinates</param>
  6529. <returns>number of ordinates recorded</returns>
  6530. </member>
  6531. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Measures(NetTopologySuite.Geometries.Coordinate[])">
  6532. <summary>
  6533. Determine number of measures based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  6534. </summary>
  6535. <param name="pts">supplied coordinates</param>
  6536. <returns>number of measures recorded</returns>
  6537. </member>
  6538. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[])">
  6539. <summary>
  6540. Utility method ensuring array contents are of consistent dimension and measures.
  6541. <para/>
  6542. Array is modified in place if required, coordinates are replaced in the array as required
  6543. to ensure all coordinates have the same dimension and measures. The final dimension and
  6544. measures used are the maximum found when checking the array.
  6545. </summary>
  6546. <param name="array">Modified in place to coordinates of consistent dimension and measures.</param>
  6547. </member>
  6548. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  6549. <summary>
  6550. Utility method ensuring array contents are of the specified dimension and measures.
  6551. <para/>
  6552. Array is returned unmodified if consistent, or a copy of the array is made with
  6553. each inconsistent coordinate duplicated into an instance of the correct dimension and measures.
  6554. </summary>
  6555. <param name="array">A coordinate array</param>
  6556. <param name="dimension"></param>
  6557. <param name="measures"></param>
  6558. <returns>Input array or copy created if required to enforce consistency.</returns>
  6559. </member>
  6560. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IsRing(NetTopologySuite.Geometries.Coordinate[])">
  6561. <summary>
  6562. Tests whether an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s forms a ring, by checking length and closure.
  6563. Self-intersection is not checked.
  6564. </summary>
  6565. <param name="pts">An array of Coordinates</param>
  6566. <returns>true if the coordinate form a ring.</returns>
  6567. </member>
  6568. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.PointNotInList(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6569. <summary>
  6570. Finds a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in a list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
  6571. which is not contained in another list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  6572. </summary>
  6573. <param name="testPts">The <see cref="T:NetTopologySuite.Geometries.Coordinate" />s to test.</param>
  6574. <param name="pts">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s to test the input points against.</param>
  6575. <returns>
  6576. A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from <paramref name="testPts" />
  6577. which is not in <paramref name="pts" />, or <c>null</c>.
  6578. </returns>
  6579. </member>
  6580. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6581. <summary>
  6582. Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays
  6583. in the forward direction of their coordinates,
  6584. using lexicographic ordering.
  6585. </summary>
  6586. <param name="pts1"></param>
  6587. <param name="pts2"></param>
  6588. <returns></returns>
  6589. </member>
  6590. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IncreasingDirection(NetTopologySuite.Geometries.Coordinate[])">
  6591. <summary>
  6592. Determines which orientation of the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array is (overall) increasing.
  6593. In other words, determines which end of the array is "smaller"
  6594. (using the standard ordering on <see cref="T:NetTopologySuite.Geometries.Coordinate" />).
  6595. Returns an integer indicating the increasing direction.
  6596. If the sequence is a palindrome, it is defined to be
  6597. oriented in a positive direction.
  6598. </summary>
  6599. <param name="pts">The array of Coordinates to test.</param>
  6600. <returns>
  6601. <c>1</c> if the array is smaller at the start or is a palindrome,
  6602. <c>-1</c> if smaller at the end.
  6603. </returns>
  6604. </member>
  6605. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IsEqualReversed(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6606. <summary>
  6607. Determines whether two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays of equal length
  6608. are equal in opposite directions.
  6609. </summary>
  6610. <param name="pts1"></param>
  6611. <param name="pts2"></param>
  6612. <returns></returns>
  6613. </member>
  6614. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.CopyDeep(NetTopologySuite.Geometries.Coordinate[])">
  6615. <summary>
  6616. Creates a deep copy of the argument <c>Coordinate</c> array.
  6617. </summary>
  6618. <param name="coordinates">Array of Coordinates.</param>
  6619. <returns>Deep copy of the input.</returns>
  6620. </member>
  6621. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.CopyDeep(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  6622. <summary>
  6623. Creates a deep copy of a given section of a source <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array into a destination Coordinate array.
  6624. The destination array must be an appropriate size to receive the copied coordinates.
  6625. </summary>
  6626. <param name="src">An array of Coordinates</param>
  6627. <param name="srcStart">The index to start copying from</param>
  6628. <param name="dest">The array to receive the deep-copied coordinates</param>
  6629. <param name="destStart">The destination index to start copying to</param>
  6630. <param name="length">The number of items to copy</param>
  6631. </member>
  6632. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.ToCoordinateArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  6633. <summary>
  6634. Converts the given <see cref="T:System.Collections.Generic.IEnumerable`1" /> of
  6635. <see cref="T:NetTopologySuite.Geometries.Coordinate" />s into a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
  6636. </summary>
  6637. <param name="coordList"><see cref="T:System.Collections.Generic.IEnumerable`1"/> of coordinates.</param>
  6638. <returns></returns>
  6639. </member>
  6640. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedPoints(NetTopologySuite.Geometries.Coordinate[])">
  6641. <summary>
  6642. Returns whether <see cref="M:NetTopologySuite.Geometries.Coordinate.Equals(System.Object)"/> returns true
  6643. for any two consecutive coordinates in the given array.
  6644. </summary>
  6645. <param name="coord">An array of <c>Coordinate</c>s.</param>
  6646. <returns>true if coord has repeated points; false otherwise.</returns>
  6647. </member>
  6648. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.AtLeastNCoordinatesOrNothing(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
  6649. <summary>
  6650. Returns either the given coordinate array if its length is greater than
  6651. the given amount, or an empty coordinate array.
  6652. </summary>
  6653. <param name="n">Length amount.</param>
  6654. <param name="c">Array of Coordinates.</param>
  6655. <returns>New Coordinate array.</returns>
  6656. </member>
  6657. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedPoints(NetTopologySuite.Geometries.Coordinate[])">
  6658. <summary>
  6659. If the coordinate array argument has repeated points,
  6660. constructs a new array containing no repeated points.
  6661. Otherwise, returns the argument.
  6662. </summary>
  6663. <param name="coord">An array of <c>Coordinate</c>s</param>
  6664. <returns>The array with repeated coordinates removed</returns>
  6665. </member>
  6666. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])">
  6667. <summary>
  6668. Tests whether an array has any repeated or invalid coordinates.
  6669. </summary>
  6670. <param name="coord">An array of coordinates</param>
  6671. <returns><c>true</c> if the array contains repeated or invalid coordinates</returns>
  6672. <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>
  6673. </member>
  6674. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])">
  6675. <summary>
  6676. If the coordinate array argument has repeated or invalid points,
  6677. constructs a new array containing no repeated points.
  6678. Otherwise, returns the argument.
  6679. </summary>
  6680. <param name="coord">An array of coordinates</param>
  6681. <returns>The array with repeated or invalid coordinates removed.</returns>
  6682. <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.HasRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])"/>
  6683. <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>
  6684. </member>
  6685. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveNull(NetTopologySuite.Geometries.Coordinate[])">
  6686. <summary>
  6687. Collapses a coordinate array to remove all null elements.
  6688. </summary>
  6689. <param name="coord">The coordinate array to collapse</param>
  6690. <returns>An Array containing only non-null elements</returns>
  6691. </member>
  6692. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Reverse(NetTopologySuite.Geometries.Coordinate[])">
  6693. <summary>
  6694. Reverses the coordinates in an array in-place.
  6695. </summary>
  6696. <param name="coord">Array of Coordinates.</param>
  6697. </member>
  6698. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Equals(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6699. <summary>
  6700. Returns <c>true</c> if the two arrays are identical, both <c>null</c>, or pointwise
  6701. equal (as compared using Coordinate.Equals).
  6702. </summary>
  6703. <param name="coord1">First array of Coordinates.</param>
  6704. <param name="coord2">Second array of Coordinates.</param>
  6705. <returns><c>true</c> if two Coordinates array are equals; false otherwise</returns>
  6706. </member>
  6707. <member name="T:NetTopologySuite.Geometries.CoordinateArrays.ForwardComparator">
  6708. <summary>
  6709. Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays
  6710. in the forward direction of their coordinates,
  6711. using lexicographic ordering.
  6712. </summary>
  6713. </member>
  6714. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.ForwardComparator.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6715. <summary>
  6716. Compares the specified <see cref="T:NetTopologySuite.Geometries.Coordinate" />s arrays.
  6717. </summary>
  6718. <param name="pts1">An array of coordinates</param>
  6719. <param name="pts2">An array of coordinates</param>
  6720. </member>
  6721. <member name="T:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator">
  6722. <summary>
  6723. A comparator for <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays modulo their directionality.
  6724. E.g. if two coordinate arrays are identical but reversed
  6725. they will compare as equal under this ordering.
  6726. If the arrays are not equal, the ordering returned
  6727. is the ordering in the forward direction.
  6728. </summary>
  6729. </member>
  6730. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator.Compare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6731. <summary>
  6732. Compares the specified <see cref="T:NetTopologySuite.Geometries.Coordinate" />s arrays.
  6733. </summary>
  6734. <param name="pts1">An array of coordinates</param>
  6735. <param name="pts2">An array of coordinates</param>
  6736. </member>
  6737. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.BidirectionalComparator.OldCompare(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  6738. <summary/>
  6739. </member>
  6740. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Equals(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[],System.Collections.Generic.IComparer{NetTopologySuite.Geometries.Coordinate[]})">
  6741. <summary>
  6742. Returns <c>true</c> if the two arrays are identical, both <c>null</c>, or pointwise
  6743. equal, using a user-defined <see cref="T:System.Collections.IComparer" />
  6744. for <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
  6745. </summary>
  6746. <param name="coord1">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.</param>
  6747. <param name="coord2">Another array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.</param>
  6748. <param name="coordinateComparer">
  6749. A <see cref="T:System.Collections.IComparer" /> for <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
  6750. </param>
  6751. <returns></returns>
  6752. </member>
  6753. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.MinCoordinate(NetTopologySuite.Geometries.Coordinate[])">
  6754. <summary>
  6755. Returns the minimum coordinate, using the usual lexicographic comparison.
  6756. </summary>
  6757. <param name="coordinates">Array to search.</param>
  6758. <returns>The minimum coordinate in the array, found using <c>CompareTo</c>.</returns>
  6759. </member>
  6760. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
  6761. <summary>
  6762. Shifts the positions of the coordinates until <c>firstCoordinate</c> is first.
  6763. </summary>
  6764. <param name="coordinates">Array to rearrange.</param>
  6765. <param name="firstCoordinate">Coordinate to make first.</param>
  6766. </member>
  6767. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  6768. <summary>
  6769. Shifts the positions of the coordinates until the coordinate
  6770. at <c>indexOfFirstCoordinate</c> is first.
  6771. </summary>
  6772. <param name="coordinates">The array of coordinates to arrange</param>
  6773. <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
  6774. </member>
  6775. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Scroll(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Boolean)">
  6776. <summary>
  6777. Shifts the positions of the coordinates until the coordinate
  6778. at <c>indexOfFirstCoordinate</c> is first.
  6779. </summary>
  6780. <remarks>
  6781. If <paramref name="ensureRing"/> is <c>true</c>, first and last
  6782. coordinate of the returned array are equal.
  6783. </remarks>
  6784. <param name="coordinates">The array of coordinates to arrange</param>
  6785. <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
  6786. <param name="ensureRing">A flag indicating if returned array should form a ring.</param>
  6787. </member>
  6788. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.IndexOf(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  6789. <summary>
  6790. Returns the index of <paramref name="coordinate" /> in <paramref name="coordinates" />.
  6791. The first position is 0; the second is 1; etc.
  6792. </summary>
  6793. <param name="coordinate">A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to search for.</param>
  6794. <param name="coordinates">A <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array to search.</param>
  6795. <returns>The position of <c>coordinate</c>, or -1 if it is not found.</returns>
  6796. </member>
  6797. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Extract(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  6798. <summary>
  6799. Extracts a subsequence of the input <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array
  6800. from indices <paramref name="start" /> to <paramref name="end"/> (inclusive).
  6801. The input indices are clamped to the array size;
  6802. If the end index is less than the start index,
  6803. the extracted array will be empty.
  6804. </summary>
  6805. <param name="pts">The input array.</param>
  6806. <param name="start">The index of the start of the subsequence to extract.</param>
  6807. <param name="end">The index of the end of the subsequence to extract.</param>
  6808. <returns>A subsequence of the input array.</returns>
  6809. </member>
  6810. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])">
  6811. <summary>
  6812. Computes the <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/> of the coordinates.
  6813. </summary>
  6814. <param name="coordinates">the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> array to scan.</param>
  6815. <returns>the <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/> of the <paramref name="coordinates"/>.</returns>
  6816. </member>
  6817. <member name="M:NetTopologySuite.Geometries.CoordinateArrays.Intersection(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Envelope)">
  6818. <summary>
  6819. Extracts the coordinates which intersect an <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.Envelope(NetTopologySuite.Geometries.Coordinate[])"/>.
  6820. </summary>
  6821. <param name="coordinates">The coordinates to scan</param>
  6822. <param name="env">The envelope to intersect with</param>
  6823. <returns>An array of coordinates which intersect with the envelope</returns>
  6824. </member>
  6825. <member name="T:NetTopologySuite.Geometries.CoordinateEqualityComparer">
  6826. <summary>
  6827. A class that can be used to test coordinates for equality.
  6828. <para/>
  6829. It uses the algorithm that was default for NTS prior to v2.2,
  6830. i.e. checks if the 2d distance between coordinates <c>x</c>
  6831. and <c>y</c> is less than or equal to a tolerance value.
  6832. </summary>
  6833. </member>
  6834. <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  6835. <inheritdoc cref="M:System.Collections.Generic.EqualityComparer`1.Equals(`0,`0)"/>
  6836. </member>
  6837. <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.Equals(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  6838. <summary>
  6839. Compares <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s <paramref name="x"/> and <paramref name="y"/> for equality allowing for a <paramref name="tolerance"/>.
  6840. </summary>
  6841. <param name="x">A <c>Coordinate</c></param>
  6842. <param name="y">A <c>Coordinate</c></param>
  6843. <param name="tolerance">A tolerance value.</param>
  6844. <returns><c>true</c> if <paramref name="x"/> and <paramref name="y"/> can be considered equal; otherwise <c>false</c>.</returns>
  6845. </member>
  6846. <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.GetHashCode(NetTopologySuite.Geometries.Coordinate)">
  6847. <inheritdoc cref="M:System.Collections.Generic.EqualityComparer`1.GetHashCode(`0)"/>
  6848. </member>
  6849. <member name="M:NetTopologySuite.Geometries.CoordinateEqualityComparer.AreEqual(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  6850. <summary>
  6851. Method to test 2 <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality, allowing a tolerance.
  6852. </summary>
  6853. <param name="a">The 1st Coordinate</param>
  6854. <param name="b">The 2nd Coordinate</param>
  6855. <param name="tolerance">A tolerance value</param>
  6856. <returns><c>true</c> if <paramref name="a"/> and <paramref name="b"/> can be considered equal.</returns>
  6857. </member>
  6858. <member name="T:NetTopologySuite.Geometries.PerOrdinateEqualityComparer">
  6859. <summary>
  6860. A class that can be used to test coordinates for equality.
  6861. <para/>
  6862. This class test for each ordinate if the distance is less
  6863. than a tolerance value.
  6864. </summary>
  6865. </member>
  6866. <member name="M:NetTopologySuite.Geometries.PerOrdinateEqualityComparer.AreEqual(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  6867. <summary>
  6868. Method to test 2 <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality, allowing a tolerance.
  6869. </summary>
  6870. <param name="a">The 1st Coordinate</param>
  6871. <param name="b">The 2nd Coordinate</param>
  6872. <param name="tolerance">A tolerance value</param>
  6873. <returns><c>true</c> if <paramref name="a"/> and <paramref name="b"/> can be considered equal.</returns>
  6874. </member>
  6875. <member name="M:NetTopologySuite.Geometries.PerOrdinateEqualityComparer.Distance(System.Double,System.Double)">
  6876. <summary>
  6877. Computes the distance between two <see cref="T:System.Double"/> values
  6878. </summary>
  6879. <param name="a">1st double</param>
  6880. <param name="b">2nd double</param>
  6881. <returns>The distance between <paramref name="a"/> and <paramref name="b"/></returns>
  6882. </member>
  6883. <member name="T:NetTopologySuite.Geometries.CoordinateFilter">
  6884. <summary>
  6885. An implementation of <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/> that delegates the
  6886. filter action to a provided method.
  6887. </summary>
  6888. </member>
  6889. <member name="M:NetTopologySuite.Geometries.CoordinateFilter.#ctor(System.Action{NetTopologySuite.Geometries.Coordinate})">
  6890. <summary>
  6891. Creates an instance of this class providing the action
  6892. to perform on any coordinate.
  6893. </summary>
  6894. <param name="coordFilterAction">The action</param>
  6895. <exception cref="T:System.ArgumentNullException"> thrown if <paramref name="coordFilterAction"/> is <c>null</c>.</exception>
  6896. </member>
  6897. <member name="M:NetTopologySuite.Geometries.CoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  6898. <inheritdoc/>
  6899. </member>
  6900. <member name="T:NetTopologySuite.Geometries.CoordinateList">
  6901. <summary>
  6902. A list of Coordinates, which may
  6903. be set to prevent repeated coordinates from occurring in the list.
  6904. </summary>
  6905. </member>
  6906. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor">
  6907. <summary>
  6908. Constructs a new list without any coordinates
  6909. </summary>
  6910. </member>
  6911. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Int32)">
  6912. <summary>
  6913. Constructs a new list without any coordinates but an initial capacity
  6914. </summary>
  6915. <param name="capacity">The initial capacity of the list.</param>
  6916. </member>
  6917. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  6918. <summary>
  6919. Constructs a new list from an array of Coordinates, allowing repeated points.
  6920. (I.e. this constructor produces a <see cref="T:NetTopologySuite.Geometries.CoordinateList"/> with exactly the same set of points
  6921. as the input array.)
  6922. </summary>
  6923. <param name="coord">Initial coordinates</param>
  6924. </member>
  6925. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
  6926. <summary>
  6927. Constructs a new list from a collection of Coordinates,
  6928. allows repeated points.
  6929. </summary>
  6930. <param name="coordList">Collection of coordinates to load into the list.</param>
  6931. </member>
  6932. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate},System.Boolean)">
  6933. <summary>
  6934. Constructs a new list from a collection of Coordinates,
  6935. allowing caller to specify if repeated points are to be removed.
  6936. </summary>
  6937. <param name="coordList">Collection of coordinates to load into the list.</param>
  6938. <param name="allowRepeated">If <c>false</c>, repeated points are removed.</param>
  6939. </member>
  6940. <member name="M:NetTopologySuite.Geometries.CoordinateList.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
  6941. <summary>
  6942. Constructs a new list from an array of Coordinates,
  6943. allowing caller to specify if repeated points are to be removed.
  6944. </summary>
  6945. <param name="coord">Array of coordinates to load into the list.</param>
  6946. <param name="allowRepeated">If <c>false</c>, repeated points are removed.</param>
  6947. </member>
  6948. <member name="M:NetTopologySuite.Geometries.CoordinateList.GetCoordinate(System.Int32)">
  6949. <summary>
  6950. Returns the coordinate at specified index.
  6951. </summary>
  6952. <param name="i">Coordinate index.</param>
  6953. <return>Coordinate specified.</return>
  6954. </member>
  6955. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Int32,System.Int32)">
  6956. <summary>
  6957. Adds a section of an array of coordinates to the list.
  6958. </summary>
  6959. <param name="coord">The coordinates</param>
  6960. <param name="allowRepeated">If set to false, repeated coordinates are collapsed</param>
  6961. <param name="start">The index to start from</param>
  6962. <param name="end">The index to add up to but not including</param>
  6963. <returns>true (as by general collection contract)</returns>
  6964. </member>
  6965. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Boolean)">
  6966. <summary>
  6967. Adds an array of coordinates to the list.
  6968. </summary>
  6969. <param name="coord">Coordinates to be inserted.</param>
  6970. <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
  6971. <param name="direction">If false, the array is added in reverse order.</param>
  6972. <returns>Return true.</returns>
  6973. </member>
  6974. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
  6975. <summary>
  6976. Adds an array of coordinates to the list.
  6977. </summary>
  6978. <param name="coord">Coordinates to be inserted.</param>
  6979. <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
  6980. <returns>Return true.</returns>
  6981. </member>
  6982. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(System.Object,System.Boolean)">
  6983. <summary>
  6984. Adds a coordinate to the list.
  6985. </summary>
  6986. <param name="obj">Coordinate to be inserted, as object.</param>
  6987. <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
  6988. <returns>Return true.</returns>
  6989. </member>
  6990. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  6991. <summary>
  6992. Adds a coordinate to the end of this list.
  6993. </summary>
  6994. <param name="coord">Coordinate to be inserted.</param>
  6995. <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
  6996. <returns>Return true if all ok.</returns>
  6997. </member>
  6998. <member name="M:NetTopologySuite.Geometries.CoordinateList.Add(System.Int32,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  6999. <summary>
  7000. Inserts the specified coordinate at the specified position in this list.
  7001. </summary>
  7002. <param name="i">The position at which to insert</param>
  7003. <param name="coord">the coordinate to insert</param>
  7004. <param name="allowRepeated">if set to false, repeated coordinates are collapsed</param>
  7005. </member>
  7006. <member name="M:NetTopologySuite.Geometries.CoordinateList.AddAll(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate},System.Boolean)">
  7007. <summary>
  7008. Add an array of coordinates.
  7009. </summary>
  7010. <param name="coll">Coordinates collection to be inserted.</param>
  7011. <param name="allowRepeated">If set to false, repeated coordinates are collapsed.</param>
  7012. <returns>Return true if at least one element has added (IList not empty).</returns>
  7013. </member>
  7014. <member name="M:NetTopologySuite.Geometries.CoordinateList.CloseRing">
  7015. <summary>
  7016. Ensure this coordList is a ring, by adding the start point if necessary.
  7017. </summary>
  7018. </member>
  7019. <member name="M:NetTopologySuite.Geometries.CoordinateList.ToCoordinateArray">
  7020. <summary>
  7021. Returns the Coordinates in this collection.
  7022. </summary>
  7023. <returns>Coordinates as <c>Coordinate[]</c> array.</returns>
  7024. </member>
  7025. <member name="M:NetTopologySuite.Geometries.CoordinateList.ToCoordinateArray(System.Boolean)">
  7026. <summary>
  7027. Creates an array containing the coordinates in this list,
  7028. oriented in the given direction (forward or reverse).
  7029. </summary>
  7030. <param name="isForward">The direction value: <c>true</c> for forward, <c>false</c> for reverse</param>
  7031. <returns>An oriented array of coordinates</returns>
  7032. </member>
  7033. <member name="M:NetTopologySuite.Geometries.CoordinateList.Clone">
  7034. <summary>
  7035. Returns a deep copy of this collection.
  7036. </summary>
  7037. <returns>The copied object.</returns>
  7038. </member>
  7039. <member name="T:NetTopologySuite.Geometries.CoordinateM">
  7040. <summary>
  7041. A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
  7042. and an additional measure (<see cref="P:NetTopologySuite.Geometries.CoordinateM.M"/>) value.
  7043. <para>
  7044. This data object is suitable for use with coordinate sequences with
  7045. <c>dimension</c> = 3 and <c>measures</c> = 1.
  7046. </para>
  7047. </summary>
  7048. <remarks>
  7049. It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  7050. Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
  7051. information such as an envelope, a precision model, and spatial reference
  7052. system information), a <c>CoordinateM</c> only contains ordinate values
  7053. and properties.
  7054. <para/>
  7055. <c>CoordinateM</c>s are two-dimensional points, with an additional M-ordinate.
  7056. If an M-ordinate value is not specified or not defined,
  7057. constructed coordinates have a M-ordinate of <c>NaN</c>
  7058. (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
  7059. Apart from the basic accessor functions, NTS supports
  7060. only specific operations involving the M-ordinate.
  7061. <para/>
  7062. Implementations may optionally support Z-ordinate and M-measure values
  7063. as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
  7064. and <see cref="P:NetTopologySuite.Geometries.CoordinateM.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateM.this[int]" /> indexer are recommended.
  7065. </remarks>
  7066. </member>
  7067. <member name="P:NetTopologySuite.Geometries.CoordinateM.M">
  7068. <summary>
  7069. Gets or sets the M-ordinate value.
  7070. </summary>
  7071. </member>
  7072. <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(System.Double,System.Double,System.Double)">
  7073. <summary>
  7074. Constructs a <c>CoordinateM</c> at (x,y,z).
  7075. </summary>
  7076. <param name="x">The X value</param>
  7077. <param name="y">The Y value</param>
  7078. <param name="m">The measure value</param>
  7079. </member>
  7080. <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor">
  7081. <summary>
  7082. Constructs a <c>CoordinateM</c> at (0,0,NaN).
  7083. </summary>
  7084. </member>
  7085. <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(NetTopologySuite.Geometries.Coordinate)">
  7086. <summary>
  7087. Constructs a <c>CoordinateM</c> having the same (x,y) values as
  7088. <paramref name="c"/>.
  7089. </summary>
  7090. <param name="c"><c>Coordinate</c> to copy.</param>
  7091. </member>
  7092. <member name="M:NetTopologySuite.Geometries.CoordinateM.#ctor(System.Double,System.Double)">
  7093. <summary>
  7094. Constructs a <c>CoordinateM</c> at (x,y,NaN).
  7095. </summary>
  7096. <param name="x">X value.</param>
  7097. <param name="y">Y value.</param>
  7098. </member>
  7099. <member name="P:NetTopologySuite.Geometries.CoordinateM.Item(System.Int32)">
  7100. <summary>
  7101. Gets or sets the ordinate value for the given index.
  7102. </summary>
  7103. <remarks>
  7104. The base implementation supports 0 (X), 1 (Y) and 2 (M) as values for the index.
  7105. </remarks>
  7106. <param name="ordinateIndex">The ordinate index</param>
  7107. <returns>The ordinate value</returns>
  7108. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
  7109. </member>
  7110. <member name="M:NetTopologySuite.Geometries.CoordinateM.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateM">
  7111. <summary>
  7112. Implicit conversion of a <c>(double x, double y)</c> value to a <c>CoordinateM</c>.
  7113. </summary>
  7114. <param name="value"></param>
  7115. <returns></returns>
  7116. </member>
  7117. <member name="M:NetTopologySuite.Geometries.CoordinateM.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateM">
  7118. <summary>
  7119. Implicit conversion of a <c>(double x, double y, double m)</c> value to a <c>CoordinateM</c>.
  7120. </summary>
  7121. <param name="value"></param>
  7122. <returns></returns>
  7123. </member>
  7124. <member name="M:NetTopologySuite.Geometries.CoordinateM.Deconstruct(System.Double@,System.Double@,System.Double@)">
  7125. <summary>
  7126. Deconstructs this <c>CoordinateM</c> into its x, y and m values.
  7127. </summary>
  7128. <param name="x"></param>
  7129. <param name="y"></param>
  7130. <param name="m"></param>
  7131. </member>
  7132. <member name="P:NetTopologySuite.Geometries.CoordinateM.CoordinateValue">
  7133. <summary>
  7134. Gets/Sets <c>CoordinateM</c>s (x,y,z) values.
  7135. </summary>
  7136. </member>
  7137. <member name="M:NetTopologySuite.Geometries.CoordinateM.Create(System.Double,System.Double,System.Double,System.Double)">
  7138. <summary>
  7139. Create a Coordinate of the same type as this Coordinate,
  7140. using the provided values for <paramref name="x"/>, <paramref name="y"/> and <paramref name="m"/>.
  7141. </summary>
  7142. <remarks>A provided value for <paramref name="z"/> will be silently dropped.</remarks>
  7143. <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
  7144. <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
  7145. <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  7146. <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  7147. <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateM"/></returns>
  7148. </member>
  7149. <member name="M:NetTopologySuite.Geometries.CoordinateM.ToString">
  7150. <summary>
  7151. Returns a <c>string</c> of the form <i>(x, y, m=m)</i>.
  7152. </summary>
  7153. <returns><c>string</c> of the form <i>(x, y, m=m)</i></returns>
  7154. </member>
  7155. <member name="T:NetTopologySuite.Geometries.Coordinates">
  7156. <summary>
  7157. Useful utility functions for handling Coordinate objects.
  7158. </summary>
  7159. </member>
  7160. <member name="M:NetTopologySuite.Geometries.Coordinates.Create(System.Int32)">
  7161. <summary>
  7162. Factory method providing access to common Coordinate implementations.
  7163. </summary>
  7164. <param name="dimension"></param>
  7165. <returns>created coordinate</returns>
  7166. </member>
  7167. <member name="M:NetTopologySuite.Geometries.Coordinates.Create(System.Int32,System.Int32)">
  7168. <summary>
  7169. Factory method providing access to common Coordinate implementations.
  7170. </summary>
  7171. <param name="dimension"></param>
  7172. <param name="measures"></param>
  7173. <returns>created coordinate</returns>
  7174. </member>
  7175. <member name="M:NetTopologySuite.Geometries.Coordinates.Dimension(NetTopologySuite.Geometries.Coordinate)">
  7176. <summary>
  7177. Determine dimension based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  7178. </summary>
  7179. <param name="coordinate">supplied coordinate</param>
  7180. <returns>number of ordinates recorded</returns>
  7181. </member>
  7182. <member name="M:NetTopologySuite.Geometries.Coordinates.SpatialDimension(NetTopologySuite.Geometries.Coordinate)">
  7183. <summary>
  7184. Evaluates the number of spatial dimensions (x, y, z) that a coordinate can carry.
  7185. </summary>
  7186. <param name="c">A coordinate</param>
  7187. <returns>The number of spatial dimensions</returns>
  7188. </member>
  7189. <member name="M:NetTopologySuite.Geometries.Coordinates.HasZ(NetTopologySuite.Geometries.Coordinate)">
  7190. <summary>
  7191. Check if coordinate can store a z-ordinate value, based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  7192. </summary>
  7193. <param name="coordinate">A coordinate</param>
  7194. <returns><c>true</c> if <paramref name="coordinate"/> can carry a z-ordinate value</returns>
  7195. </member>
  7196. <member name="M:NetTopologySuite.Geometries.Coordinates.Measures(NetTopologySuite.Geometries.Coordinate)">
  7197. <summary>
  7198. Determine number of measures based on subclass of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  7199. </summary>
  7200. <param name="coordinate">supplied coordinate</param>
  7201. <returns>number of measures recorded </returns>
  7202. </member>
  7203. <member name="T:NetTopologySuite.Geometries.CoordinateSequence">
  7204. <seealso cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/>
  7205. </member>
  7206. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
  7207. <summary>
  7208. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> class.
  7209. </summary>
  7210. <param name="count">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/>.</param>
  7211. <param name="dimension">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/>.</param>
  7212. <param name="measures">The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.</param>
  7213. <exception cref="T:System.ArgumentOutOfRangeException">
  7214. Thrown when any argument is negative.
  7215. </exception>
  7216. <exception cref="T:System.ArgumentException">
  7217. Thrown when <paramref name="dimension"/> and <paramref name="measures"/> specify fewer
  7218. than two (2) spatial dimensions.
  7219. </exception>
  7220. </member>
  7221. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension">
  7222. <summary>
  7223. Returns the dimension (number of ordinates in each coordinate) for this sequence.
  7224. <para>
  7225. This total includes any measures, indicated by non-zero <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
  7226. </para>
  7227. </summary>
  7228. </member>
  7229. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Measures">
  7230. <summary>
  7231. Gets the number of measures included in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> for each coordinate for this
  7232. sequence.
  7233. </summary>
  7234. <remarks>
  7235. For a measured coordinate sequence a non-zero value is returned.
  7236. <list type="bullet">
  7237. <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> sequence measures is zero</description></item>
  7238. <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYM"/> sequence measure is one</description></item>
  7239. <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYZ"/> sequence measure is zero</description></item>
  7240. <item><description>For <see cref="F:NetTopologySuite.Geometries.Ordinates.XYZM"/> sequence measure is one</description></item>
  7241. <item><description>Values greater than one are supported</description></item>
  7242. </list>
  7243. </remarks>
  7244. </member>
  7245. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Spatial">
  7246. <summary>
  7247. Gets the number of non-measure dimensions included in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> for each
  7248. coordinate for this sequence.
  7249. <para>
  7250. Equivalent to <c>Dimension - Measures</c>.
  7251. </para>
  7252. </summary>
  7253. </member>
  7254. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Ordinates">
  7255. <summary>
  7256. Gets the kind of ordinates this sequence supplies.
  7257. </summary>
  7258. </member>
  7259. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.HasZ">
  7260. <summary>
  7261. Gets a value indicating if <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetZ(System.Int32)"/> is supported.
  7262. </summary>
  7263. </member>
  7264. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.HasM">
  7265. <summary>
  7266. Gets a value indicating if <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetM(System.Int32)"/> is supported.
  7267. </summary>
  7268. </member>
  7269. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.ZOrdinateIndex">
  7270. <summary>
  7271. Gets the index of the Z ordinate (for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/> or
  7272. <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>), or -1 if <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.HasZ"/> is
  7273. <see langword="false"/>.
  7274. </summary>
  7275. <remarks>
  7276. It's just a cache for <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)"/> with <see cref="F:NetTopologySuite.Geometries.Ordinate.Z"/>.
  7277. </remarks>
  7278. </member>
  7279. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.MOrdinateIndex">
  7280. <summary>
  7281. Gets the index of the M ordinate (for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/> or
  7282. <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>), or -1 if <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.HasM"/> is
  7283. <see langword="false"/>.
  7284. </summary>
  7285. <remarks>
  7286. It's just a cache for <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)"/> with <see cref="F:NetTopologySuite.Geometries.Ordinate.M"/>.
  7287. </remarks>
  7288. </member>
  7289. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.CreateCoordinate">
  7290. <summary>
  7291. Creates a coordinate for use in this sequence.
  7292. </summary>
  7293. <remarks>
  7294. The coordinate is created supporting the same number of <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> and <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>
  7295. as this sequence and is suitable for use with <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)"/>.
  7296. </remarks>
  7297. <returns>A coordinate for use with this sequence</returns>
  7298. </member>
  7299. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32)">
  7300. <summary>
  7301. Returns (possibly a copy of) the ith Coordinate in this collection.
  7302. Whether or not the Coordinate returned is the actual underlying
  7303. Coordinate or merely a copy depends on the implementation.
  7304. Note that in the future the semantics of this method may change
  7305. to guarantee that the Coordinate returned is always a copy. Callers are
  7306. advised not to assume that they can modify a CoordinateSequence by
  7307. modifying the Coordinate returned by this method.
  7308. </summary>
  7309. <param name="i"></param>
  7310. <returns></returns>
  7311. </member>
  7312. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinateCopy(System.Int32)">
  7313. <summary>
  7314. Returns a copy of the i'th coordinate in this sequence.
  7315. This method optimizes the situation where the caller is
  7316. going to make a copy anyway - if the implementation
  7317. has already created a new Coordinate object, no further copy is needed.
  7318. </summary>
  7319. <param name="i">The index of the coordinate to retrieve.</param>
  7320. <returns>A copy of the i'th coordinate in the sequence</returns>
  7321. </member>
  7322. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  7323. <summary>
  7324. Copies the i'th coordinate in the sequence to the supplied Coordinate.
  7325. At least the first two dimensions <b>must</b> be copied.
  7326. </summary>
  7327. <param name="index">The index of the coordinate to copy.</param>
  7328. <param name="coord">A Coordinate to receive the value.</param>
  7329. </member>
  7330. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetX(System.Int32)">
  7331. <summary>
  7332. Returns ordinate X (0) of the specified coordinate.
  7333. </summary>
  7334. <param name="index"></param>
  7335. <returns>The value of the X ordinate in the index'th coordinate.</returns>
  7336. </member>
  7337. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetY(System.Int32)">
  7338. <summary>
  7339. Returns ordinate Y (1) of the specified coordinate.
  7340. </summary>
  7341. <param name="index"></param>
  7342. <returns>The value of the Y ordinate in the index'th coordinate.</returns>
  7343. </member>
  7344. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetZ(System.Int32)">
  7345. <summary>
  7346. Returns ordinate Z of the specified coordinate if available.
  7347. </summary>
  7348. <param name="index"></param>
  7349. <returns>
  7350. The value of the Z ordinate in the index'th coordinate, or
  7351. <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if not defined.
  7352. </returns>
  7353. </member>
  7354. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetM(System.Int32)">
  7355. <summary>
  7356. Returns ordinate M of the specified coordinate if available.
  7357. </summary>
  7358. <param name="index"></param>
  7359. <returns>
  7360. The value of the M ordinate in the index'th coordinate, or
  7361. <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if not defined.
  7362. </returns>
  7363. </member>
  7364. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetX(System.Int32,System.Double)">
  7365. <summary>
  7366. Sets ordinate X (0) of the specified coordinate to the specified value.
  7367. </summary>
  7368. <param name="index">
  7369. The index of the coordinate whose X value to set.
  7370. </param>
  7371. <param name="value">
  7372. The value to set the coordinate's X value to.
  7373. </param>
  7374. </member>
  7375. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetY(System.Int32,System.Double)">
  7376. <summary>
  7377. Sets ordinate Y (1) of the specified coordinate to the specified value.
  7378. </summary>
  7379. <param name="index">
  7380. The index of the coordinate whose Y value to set.
  7381. </param>
  7382. <param name="value">
  7383. The value to set the coordinate's Y value to.
  7384. </param>
  7385. </member>
  7386. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetZ(System.Int32,System.Double)">
  7387. <summary>
  7388. Sets ordinate Z of the specified coordinate to the specified value if present.
  7389. </summary>
  7390. <param name="index">
  7391. The index of the coordinate whose Z value to set if present.
  7392. </param>
  7393. <param name="value">
  7394. The value to set the coordinate's Z value to if present.
  7395. </param>
  7396. </member>
  7397. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetM(System.Int32,System.Double)">
  7398. <summary>
  7399. Sets ordinate M of the specified coordinate to the specified value if present.
  7400. </summary>
  7401. <param name="index">
  7402. The index of the coordinate whose M value to set if present.
  7403. </param>
  7404. <param name="value">
  7405. The value to set the coordinate's M value to if present.
  7406. </param>
  7407. </member>
  7408. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
  7409. <summary>
  7410. Returns the ordinate of a coordinate in this sequence.
  7411. Ordinate indices 0 and 1 are assumed to be X and Y.
  7412. <para/>
  7413. Ordinate indices greater than 1 have user-defined semantics
  7414. (for instance, they may contain other dimensions or measure
  7415. values as described by <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/> and <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
  7416. </summary>
  7417. <remarks>
  7418. If the sequence does not provide value for the required ordinate, the implementation <b>must not</b> throw an exception, it should return <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.
  7419. </remarks>
  7420. <param name="index">The coordinate index in the sequence.</param>
  7421. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  7422. <returns>The ordinate value, or <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if the sequence does not provide values for <paramref name="ordinateIndex"/>"/></returns>
  7423. </member>
  7424. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate)">
  7425. <summary>
  7426. Returns the ordinate of a coordinate in this sequence.
  7427. </summary>
  7428. <param name="index">The coordinate index in the sequence.</param>
  7429. <param name="ordinate">The ordinate value to get.</param>
  7430. <returns>The ordinate value, or <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/> if the sequence does not provide values for <paramref name="ordinate"/>"/></returns>
  7431. </member>
  7432. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.First">
  7433. <summary>
  7434. Gets a value indicating the first <c>Coordinate</c> in this sequence.<br/>
  7435. For <c>LineString</c>s e.g. this is the starting point.
  7436. </summary>
  7437. <returns>First <c>Coordinate</c> in sequence or <c>null</c> if empty.</returns>
  7438. </member>
  7439. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Last">
  7440. <summary>
  7441. Gets a value indicating the last <c>Coordinate</c> in this sequence.<br/>
  7442. For <c>LineString</c>s e.g. this is the ending point.
  7443. </summary>
  7444. <returns>Last <c>Coordinate</c> in sequence or <c>null</c> if empty.</returns>
  7445. </member>
  7446. <member name="P:NetTopologySuite.Geometries.CoordinateSequence.Count">
  7447. <summary>
  7448. Gets a value indicating the number of coordinates in this sequence.
  7449. </summary>
  7450. </member>
  7451. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  7452. <summary>
  7453. Sets the value for a given ordinate of a coordinate in this sequence.
  7454. </summary>
  7455. <remarks>
  7456. If the sequence can't store the ordinate value, the implementation <b>must not</b> throw an exception, it should simply ignore the call.
  7457. </remarks>
  7458. <param name="index">The coordinate index in the sequence.</param>
  7459. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  7460. <param name="value">The new ordinate value.</param>
  7461. </member>
  7462. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)">
  7463. <summary>
  7464. Sets the value for a given ordinate of a coordinate in this sequence.
  7465. </summary>
  7466. <param name="index">The coordinate index in the sequence.</param>
  7467. <param name="ordinate">The ordinate value to set.</param>
  7468. <param name="value">The new ordinate value.</param>
  7469. </member>
  7470. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.ToCoordinateArray">
  7471. <summary>
  7472. Returns (possibly copies of) the Coordinates in this collection.
  7473. Whether or not the Coordinates returned are the actual underlying
  7474. Coordinates or merely copies depends on the implementation. Note that
  7475. if this implementation does not store its data as an array of Coordinates,
  7476. this method will incur a performance penalty because the array needs to
  7477. be built from scratch.
  7478. </summary>
  7479. <returns></returns>
  7480. </member>
  7481. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  7482. <summary>
  7483. Expands the given Envelope to include the coordinates in the sequence.
  7484. Allows implementing classes to optimize access to coordinate values.
  7485. </summary>
  7486. <param name="env">The envelope to expand.</param>
  7487. <returns>A reference to the expanded envelope.</returns>
  7488. </member>
  7489. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.Copy">
  7490. <summary>
  7491. Returns a deep copy of this collection.
  7492. </summary>
  7493. <returns>A copy of the coordinate sequence containing copies of all points</returns>
  7494. </member>
  7495. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.Reversed">
  7496. <summary>
  7497. Returns a reversed copy of this <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7498. </summary>
  7499. <returns>
  7500. A reversed copy of this <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7501. </returns>
  7502. <exception cref="T:System.InvalidOperationException">
  7503. Thrown when <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/> returned <see langword="null"/>.
  7504. </exception>
  7505. </member>
  7506. <member name="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)">
  7507. <summary>
  7508. Retrieves the index at which this sequence stores a particular <see cref="T:NetTopologySuite.Geometries.Ordinate"/>'s
  7509. values, if that ordinate is present in <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Ordinates"/>.
  7510. </summary>
  7511. <param name="ordinate">
  7512. The <see cref="T:NetTopologySuite.Geometries.Ordinate"/> value whose index to retrieve.
  7513. </param>
  7514. <param name="ordinateIndex">
  7515. When this method returns, contains the index of the requested ordinate, if the ordinate
  7516. is present in this sequence; otherwise, -1. This parameter is passed uninitialized.
  7517. </param>
  7518. <returns>
  7519. <see langword="true"/> if this sequence contains <paramref name="ordinate"/>; otherwise,
  7520. <see langword="false"/>.
  7521. </returns>
  7522. </member>
  7523. <member name="T:NetTopologySuite.Geometries.CoordinateSequenceComparator">
  7524. <summary>
  7525. Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
  7526. </summary><remarks>
  7527. <para>
  7528. For sequences of the same dimension, the ordering is lexicographic.
  7529. Otherwise, lower dimensions are sorted before higher.
  7530. The dimensions compared can be limited; if this is done
  7531. ordinate dimensions above the limit will not be compared.
  7532. </para>
  7533. <para>
  7534. If different behaviour is required for comparing size, dimension,
  7535. or coordinate values, any or all methods can be overridden.</para>
  7536. </remarks>
  7537. </member>
  7538. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(System.Double,System.Double)">
  7539. <summary>
  7540. Compare two <c>double</c>s, allowing for NaN values.
  7541. NaN is treated as being less than any valid number.
  7542. </summary>
  7543. <param name="a">A <c>double</c></param>
  7544. <param name="b">A <c>double</c></param>
  7545. <returns>-1, 0, or 1 depending on whether a is less than, equal to or greater than b</returns>
  7546. </member>
  7547. <member name="F:NetTopologySuite.Geometries.CoordinateSequenceComparator.DimensionLimit">
  7548. <summary>
  7549. The number of dimensions to test
  7550. </summary>
  7551. </member>
  7552. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.#ctor">
  7553. <summary>
  7554. Creates a comparator which will test all dimensions.
  7555. </summary>
  7556. </member>
  7557. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.#ctor(System.Int32)">
  7558. <summary>
  7559. Creates a comparator which will test only the specified number of dimensions.
  7560. </summary>
  7561. <param name="dimensionLimit">The number of dimensions to test</param>
  7562. </member>
  7563. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(System.Object,System.Object)">
  7564. <summary>
  7565. Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />s for relative order.
  7566. </summary>
  7567. <param name="o1">A coordinate sequence</param>
  7568. <param name="o2">A coordinate sequence</param>
  7569. <returns>-1, 0, or 1 depending on whether o1 is less than, equal to, or greater than o2</returns>
  7570. </member>
  7571. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.CompareCoordinate(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  7572. <summary>
  7573. Compares the same coordinate of two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
  7574. </summary>
  7575. <param name="s1">A coordinate sequence</param>
  7576. <param name="s2">A coordinate sequence</param>
  7577. <param name="i">The index of the coordinate to test</param>
  7578. <param name="dimension">the number of dimensions to test</param>
  7579. </member>
  7580. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceComparator.Compare(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
  7581. <summary>
  7582. Compares two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s for relative order.
  7583. </summary>
  7584. <param name="s1">A coordinate sequence</param>
  7585. <param name="s2">A coordinate sequence</param>
  7586. <returns>-1, 0, or 1 depending on whether s1 is less than, equal to, or greater than s2</returns>
  7587. </member>
  7588. <member name="T:NetTopologySuite.Geometries.CoordinateSequenceFactory">
  7589. <summary>
  7590. An object that knows how to build a particular implementation of
  7591. <c>CoordinateSequence</c> from an array of Coordinates.
  7592. </summary>
  7593. <seealso cref="T:NetTopologySuite.Geometries.CoordinateSequence" />
  7594. </member>
  7595. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.#ctor">
  7596. <summary>
  7597. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> class.`
  7598. </summary>
  7599. </member>
  7600. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.#ctor(NetTopologySuite.Geometries.Ordinates)">
  7601. <summary>
  7602. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> class.
  7603. </summary>
  7604. <param name="ordinates">
  7605. The maximum set of <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that this instance will be
  7606. able to create sequences for.
  7607. </param>
  7608. </member>
  7609. <member name="P:NetTopologySuite.Geometries.CoordinateSequenceFactory.Ordinates">
  7610. <summary>
  7611. Gets the Ordinate flags that sequences created by this factory can maximal cope with.
  7612. </summary>
  7613. </member>
  7614. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
  7615. <summary>
  7616. Returns a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> based on the given array;
  7617. whether or not the array is copied is implementation-dependent.
  7618. </summary>
  7619. <param name="coordinates">A coordinates array, which may not be null nor contain null elements</param>
  7620. <returns>A coordinate sequence.</returns>
  7621. </member>
  7622. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
  7623. <summary>
  7624. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> which is a copy
  7625. of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />.
  7626. This method must handle null arguments by creating an empty sequence.
  7627. </summary>
  7628. <param name="coordSeq"></param>
  7629. <returns>A coordinate sequence</returns>
  7630. </member>
  7631. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32)">
  7632. <summary>
  7633. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and dimension.
  7634. For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
  7635. </summary>
  7636. <remarks>
  7637. If the requested dimension is larger than the CoordinateSequence implementation
  7638. can provide, then a sequence of maximum possible dimension should be created.
  7639. An error should not be thrown.
  7640. </remarks>
  7641. <param name="size"></param>
  7642. <param name="dimension">the dimension of the coordinates in the sequence
  7643. (if user-specifiable, otherwise ignored)</param>
  7644. <returns>A coordinate sequence</returns>
  7645. </member>
  7646. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
  7647. <summary>
  7648. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and dimension
  7649. with measure support. For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />
  7650. implementation must be mutable.
  7651. </summary>
  7652. <remarks>
  7653. If the requested dimension or measures are larger than the CoordinateSequence implementation
  7654. can provide, then a sequence of maximum possible dimension should be created.
  7655. An error should not be thrown.
  7656. </remarks>
  7657. <param name="size">The number of coordinates in the sequence</param>
  7658. <param name="dimension">The dimension of the coordinates in the sequence (if user-specifiable,
  7659. otherwise ignored)</param>
  7660. <param name="measures">The number of measures of the coordinates in the sequence (if user-specifiable,
  7661. otherwise ignored)</param>
  7662. </member>
  7663. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,NetTopologySuite.Geometries.Ordinates)">
  7664. <summary>
  7665. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and ordinates.
  7666. For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
  7667. </summary>
  7668. <param name="size">The number of coordinates.</param>
  7669. <param name="ordinates">
  7670. The ordinates each coordinate has. <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> is fix, <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> can be set.
  7671. </param>
  7672. <returns>A coordinate sequence.</returns>
  7673. </member>
  7674. <member name="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.GetCommonSequenceParameters(NetTopologySuite.Geometries.Coordinate[])">
  7675. <summary>
  7676. Gets the three parameters needed to create any <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> instance
  7677. (<see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/>, <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Dimension"/>, and
  7678. <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>) such that the sequence can store all the data
  7679. from a given array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/> instances.
  7680. </summary>
  7681. <param name="coordinates">
  7682. The array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/> instances that the sequence will be created from.
  7683. </param>
  7684. <returns>
  7685. The values of the three parameters to use for creating the sequence.
  7686. </returns>
  7687. </member>
  7688. <member name="T:NetTopologySuite.Geometries.CoordinateSequences">
  7689. <summary>
  7690. Utility functions for manipulating <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />s.
  7691. </summary>
  7692. </member>
  7693. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Reverse(NetTopologySuite.Geometries.CoordinateSequence)">
  7694. <summary>
  7695. Reverses the coordinates in a sequence in-place.
  7696. </summary>
  7697. <param name="seq">The coordinate sequence to reverse.</param>
  7698. </member>
  7699. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Swap(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  7700. <summary>
  7701. Swaps two coordinates in a sequence.
  7702. </summary>
  7703. <param name="seq">seq the sequence to modify</param>
  7704. <param name="i">the index of a coordinate to swap</param>
  7705. <param name="j">the index of a coordinate to swap</param>
  7706. </member>
  7707. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Copy(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  7708. <summary>
  7709. Copies a section of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7710. The sequences may have different dimensions;
  7711. in this case only the common dimensions are copied.
  7712. </summary>
  7713. <param name="src">The sequence to copy coordinates from</param>
  7714. <param name="srcPos">The starting index of the coordinates to copy</param>
  7715. <param name="dest">The sequence to which the coordinates should be copied to</param>
  7716. <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
  7717. <param name="length">The number of coordinates to copy</param>
  7718. </member>
  7719. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence,System.Int32,System.Int32)">
  7720. <summary>
  7721. Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>.
  7722. The sequences must have same dimensions.
  7723. </summary>
  7724. <param name="src">The sequence to copy coordinates from</param>
  7725. <param name="srcPos">The starting index of the coordinates to copy</param>
  7726. <param name="dest">The sequence to which the coordinates should be copied to</param>
  7727. <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
  7728. <param name="length">The number of coordinates to copy</param>
  7729. </member>
  7730. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence,System.Int32,System.Int32)">
  7731. <summary>
  7732. Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/>.
  7733. The sequences must have same dimensions.
  7734. </summary>
  7735. <param name="src">The sequence to copy coordinates from</param>
  7736. <param name="srcPos">The starting index of the coordinates to copy</param>
  7737. <param name="dest">The sequence to which the coordinates should be copied to</param>
  7738. <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
  7739. <param name="length">The number of coordinates to copy</param>
  7740. </member>
  7741. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.TryRawCopy(NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence,System.Int32,NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence,System.Int32,System.Int32)">
  7742. <summary>
  7743. Copies a section of a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>.
  7744. The sequences must have same dimensions.
  7745. </summary>
  7746. <param name="src">The sequence to copy coordinates from</param>
  7747. <param name="srcPos">The starting index of the coordinates to copy</param>
  7748. <param name="dest">The sequence to which the coordinates should be copied to</param>
  7749. <param name="destPos">The starting index of the coordinates in <see paramref="dest"/></param>
  7750. <param name="length">The number of coordinates to copy</param>
  7751. </member>
  7752. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.CopyCoord(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  7753. <summary>
  7754. Copies a coordinate of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7755. The sequences may have different dimensions;
  7756. in this case only the common dimensions are copied.
  7757. </summary>
  7758. <param name="src">The sequence to copy coordinate from</param>
  7759. <param name="srcPos">The index of the coordinate to copy</param>
  7760. <param name="dest">The sequence to which the coordinate should be copied to</param>
  7761. <param name="destPos">The index of the coordinate in <see paramref="dest"/></param>
  7762. </member>
  7763. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.CopyCoord(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32,System.Int32)">
  7764. <summary>
  7765. Copies a coordinate of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to another <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7766. The sequences may have different dimensions;
  7767. in this case only the common dimensions are copied.
  7768. </summary>
  7769. <param name="src">The sequence to copy coordinate from</param>
  7770. <param name="srcPos">The index of the coordinate to copy</param>
  7771. <param name="dest">The sequence to which the coordinate should be copied to</param>
  7772. <param name="destPos">The index of the coordinate in <see paramref="dest"/></param>
  7773. <param name="numSpatial">The number of spatial ordinates to copy</param>
  7774. <param name="numMeasures">The number of measure ordinates to copy</param>
  7775. </member>
  7776. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsRing(NetTopologySuite.Geometries.CoordinateSequence)">
  7777. <summary>
  7778. Tests whether a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> forms a valid <see cref="T:NetTopologySuite.Geometries.LinearRing"/>,
  7779. by checking the sequence length and closure
  7780. (whether the first and last points are identical in 2D).
  7781. Self-intersection is not checked.
  7782. </summary>
  7783. <param name="seq">The sequence to test</param>
  7784. <returns>True if the sequence is a ring</returns>
  7785. <seealso cref="T:NetTopologySuite.Geometries.LinearRing"/>
  7786. </member>
  7787. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.EnsureValidRing(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.CoordinateSequence)">
  7788. <summary>
  7789. Ensures that a CoordinateSequence forms a valid ring,
  7790. returning a new closed sequence of the correct length if required.
  7791. If the input sequence is already a valid ring, it is returned
  7792. without modification.
  7793. If the input sequence is too short or is not closed,
  7794. it is extended with one or more copies of the start point.
  7795. </summary>
  7796. <param name="fact">The CoordinateSequenceFactory to use to create the new sequence</param>
  7797. <param name="seq">The sequence to test</param>
  7798. <returns>The original sequence, if it was a valid ring, or a new sequence which is valid.</returns>
  7799. </member>
  7800. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Extend(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  7801. <summary>
  7802. Extends a given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7803. <para/>
  7804. Because coordinate sequences are fix in size, extending is done by
  7805. creating a new coordinate sequence of the requested size.
  7806. <para/>
  7807. The new, trailing coordinate entries (if any) are filled with the last
  7808. coordinate of the input sequence
  7809. </summary>
  7810. <param name="fact">The factory to use when creating the new sequence.</param>
  7811. <param name="seq">The sequence to extend.</param>
  7812. <param name="size">The required size of the extended sequence</param>
  7813. <returns>The extended sequence</returns>
  7814. </member>
  7815. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqual(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
  7816. <summary>
  7817. Tests whether two <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
  7818. To be equal, the sequences must be the same length.
  7819. They do not need to be of the same dimension,
  7820. but the ordinate values for the smallest dimension of the two
  7821. must be equal.
  7822. Two <c>NaN</c> ordinates values are considered to be equal.
  7823. </summary>
  7824. <param name="seq1">a CoordinateSequence</param>
  7825. <param name="seq2">a CoordinateSequence</param>
  7826. <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
  7827. </member>
  7828. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqualAt(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  7829. <summary>
  7830. Tests whether two <c>Coordinate</c>s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
  7831. They do not need to be of the same dimension,
  7832. but the ordinate values for the common ordinates of the two
  7833. must be equal.
  7834. Two <c>NaN</c> ordinates values are considered to be equal.
  7835. </summary>
  7836. <param name="seq1">A CoordinateSequence</param>
  7837. <param name="pos1">The index of the <c>Coordinate</c> in <paramref name="seq1"/>.</param>
  7838. <param name="seq2">a CoordinateSequence</param>
  7839. <param name="pos2">The index of the <c>Coordinate</c> in <paramref name="seq2"/>.</param>
  7840. <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
  7841. </member>
  7842. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IsEqualAt(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32,System.Int32)">
  7843. <summary>
  7844. Tests whether two <c>Coordinate</c>s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s are equal.
  7845. They do not need to be of the same dimension,
  7846. but the ordinate values for the common ordinates of the two
  7847. must be equal.
  7848. Two <c>NaN</c> ordinates values are considered to be equal.
  7849. </summary>
  7850. <param name="seq1">A CoordinateSequence</param>
  7851. <param name="pos1">The index of the <c>Coordinate</c> in <paramref name="seq1"/>.</param>
  7852. <param name="seq2">a CoordinateSequence</param>
  7853. <param name="pos2">The index of the <c>Coordinate</c> in <paramref name="seq2"/>.</param>
  7854. <param name="numSpatial">The number of spatial ordinates to compare</param>
  7855. <param name="numMeasures">The number of measure ordinates to compare</param>
  7856. <returns><c>true</c> if the sequences are equal in the common dimensions</returns>
  7857. </member>
  7858. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.ToString(NetTopologySuite.Geometries.CoordinateSequence)">
  7859. <summary>
  7860. Creates a string representation of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  7861. The format is:
  7862. <para>
  7863. ( ord0,ord1.. ord0,ord1,... ... )
  7864. </para>
  7865. </summary>
  7866. <param name="cs">the sequence to output</param>
  7867. <returns>the string representation of the sequence</returns>
  7868. </member>
  7869. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinate(NetTopologySuite.Geometries.CoordinateSequence)">
  7870. <summary>
  7871. Returns the minimum coordinate, using the usual lexicographic comparison.
  7872. </summary>
  7873. <param name="seq">The coordinate sequence to search</param>
  7874. <returns>The minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
  7875. </member>
  7876. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinateIndex(NetTopologySuite.Geometries.CoordinateSequence)">
  7877. <summary>
  7878. Returns the index of the minimum coordinate of the whole
  7879. coordinate sequence, using the usual lexicographic comparison.
  7880. </summary>
  7881. <param name="seq">The coordinate sequence to search</param>
  7882. <returns>The index of the minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
  7883. </member>
  7884. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.MinCoordinateIndex(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  7885. <summary>
  7886. Returns the index of the minimum coordinate of a part of
  7887. the coordinate sequence (defined by <paramref name="from"/>
  7888. and <paramref name="to"/>), using the usual lexicographic
  7889. comparison.
  7890. </summary>
  7891. <param name="seq">The coordinate sequence to search</param>
  7892. <param name="from">The lower search index</param>
  7893. <param name="to">The upper search index</param>
  7894. <returns>The index of the minimum coordinate in the sequence, found using <see cref="M:NetTopologySuite.Geometries.Coordinate.CompareTo(NetTopologySuite.Geometries.Coordinate)"/></returns>
  7895. </member>
  7896. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Coordinate)">
  7897. <summary>
  7898. Shifts the positions of the coordinates until <c>firstCoordinate</c> is first.
  7899. </summary>
  7900. <param name="seq">The coordinate sequence to rearrange</param>
  7901. <param name="firstCoordinate">The coordinate to make first"></param>
  7902. </member>
  7903. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  7904. <summary>
  7905. Shifts the positions of the coordinates until the coordinate at <c>firstCoordinateIndex</c>
  7906. is first.
  7907. </summary>
  7908. <param name="seq">The coordinate sequence to rearrange</param>
  7909. <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
  7910. </member>
  7911. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.Scroll(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Boolean)">
  7912. <summary>
  7913. Shifts the positions of the coordinates until the coordinate at <c>firstCoordinateIndex</c>
  7914. is first.
  7915. </summary>
  7916. <param name="seq">The coordinate sequence to rearrange</param>
  7917. <param name="indexOfFirstCoordinate">The index of the coordinate to make first</param>
  7918. <param name="ensureRing">Makes sure that <paramref name="seq"/> will be a closed ring upon exit</param>
  7919. </member>
  7920. <member name="M:NetTopologySuite.Geometries.CoordinateSequences.IndexOf(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateSequence)">
  7921. <summary>
  7922. Returns the index of <c>coordinate</c> in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
  7923. The first position is 0; the second, 1; etc.
  7924. </summary>
  7925. <param name="coordinate">The <c>Coordinate</c> to search for</param>
  7926. <param name="seq">The coordinate sequence to search</param>
  7927. <returns>
  7928. The position of <c>coordinate</c>, or -1 if it is not found
  7929. </returns>
  7930. </member>
  7931. <member name="T:NetTopologySuite.Geometries.CoordinateZ">
  7932. <summary>
  7933. A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
  7934. and an additional z-ordinate (<see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>) value.
  7935. <para>
  7936. This base data object is suitable for use with coordinate sequences with
  7937. <c>dimension</c> = 3 and <c>measures</c> = 0.
  7938. </para>
  7939. </summary><remarks>
  7940. It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  7941. Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
  7942. information such as an envelope, a precision model, and spatial reference
  7943. system information), a <c>CoordinateZ</c> only contains ordinate values
  7944. and properties.
  7945. <para/>
  7946. <c>CoordinateZ</c>s are two-dimensional points, with an additional Z-ordinate.
  7947. If an Z-ordinate value is not specified or not defined,
  7948. constructed coordinates have a Z-ordinate of <c>NaN</c>
  7949. (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
  7950. <para/>
  7951. Apart from the basic accessor functions, NTS supports
  7952. only specific operations involving the Z-ordinate.
  7953. <para/>
  7954. Implementations may optionally support Z-ordinate and M-measure values
  7955. as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
  7956. and <see cref="P:NetTopologySuite.Geometries.Coordinate.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateZ.this[int]" /> indexer are recommended.
  7957. </remarks>
  7958. </member>
  7959. <member name="P:NetTopologySuite.Geometries.CoordinateZ.Z">
  7960. <summary>
  7961. Gets or sets the Z-ordinate value.
  7962. </summary>
  7963. </member>
  7964. <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(System.Double,System.Double,System.Double)">
  7965. <summary>
  7966. Constructs a <c>CoordinateZ</c> at (x,y,z).
  7967. </summary>
  7968. <param name="x">The X value</param>
  7969. <param name="y">The Y value</param>
  7970. <param name="z">The Z value</param>
  7971. </member>
  7972. <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor">
  7973. <summary>
  7974. Constructs a <c>CoordinateZ</c> at (0,0,NaN).
  7975. </summary>
  7976. </member>
  7977. <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(NetTopologySuite.Geometries.Coordinate)">
  7978. <summary>
  7979. Constructs a <c>CoordinateZ</c> having the same (x,y) values as
  7980. <paramref name="c"/>.
  7981. </summary>
  7982. <param name="c"><c>Coordinate</c> to copy.</param>
  7983. </member>
  7984. <member name="M:NetTopologySuite.Geometries.CoordinateZ.#ctor(System.Double,System.Double)">
  7985. <summary>
  7986. Constructs a <c>CoordinateZ</c> at (x,y,NaN).
  7987. </summary>
  7988. <param name="x">X value.</param>
  7989. <param name="y">Y value.</param>
  7990. </member>
  7991. <member name="P:NetTopologySuite.Geometries.CoordinateZ.Item(System.Int32)">
  7992. <summary>
  7993. Gets or sets the ordinate value for the given index.
  7994. </summary>
  7995. <remarks>
  7996. The base implementation supports 0 (X), 1 (Y) and 2 (Z) as values for the index.
  7997. </remarks>
  7998. <param name="ordinateIndex">The ordinate index</param>
  7999. <returns>The ordinate value</returns>
  8000. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
  8001. </member>
  8002. <member name="M:NetTopologySuite.Geometries.CoordinateZ.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZ">
  8003. <summary>
  8004. Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZ</c>.
  8005. </summary>
  8006. <param name="value"></param>
  8007. <returns></returns>
  8008. </member>
  8009. <member name="M:NetTopologySuite.Geometries.CoordinateZ.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZ">
  8010. <summary>
  8011. Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZ</c>.
  8012. </summary>
  8013. <param name="value"></param>
  8014. <returns></returns>
  8015. </member>
  8016. <member name="M:NetTopologySuite.Geometries.CoordinateZ.Deconstruct(System.Double@,System.Double@,System.Double@)">
  8017. <summary>
  8018. Deconstructs this <c>CoordinateZ</c> into its x, y and z values.
  8019. </summary>
  8020. <param name="x">The x-ordinate value</param>
  8021. <param name="y">The y-ordinate value</param>
  8022. <param name="z">The z-ordinate value</param>
  8023. </member>
  8024. <member name="P:NetTopologySuite.Geometries.CoordinateZ.CoordinateValue">
  8025. <summary>
  8026. Gets/Sets <c>CoordinateZ</c>s (x,y,z) values.
  8027. </summary>
  8028. </member>
  8029. <member name="M:NetTopologySuite.Geometries.CoordinateZ.Create(System.Double,System.Double,System.Double,System.Double)">
  8030. <summary>
  8031. Create a Coordinate of the same type as this Coordinate,
  8032. using the provided values for <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/>.
  8033. </summary>
  8034. <remarks>A provided value for <paramref name="m"/> will be silently dropped.</remarks>
  8035. <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
  8036. <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
  8037. <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  8038. <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  8039. <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/></returns>
  8040. </member>
  8041. <member name="M:NetTopologySuite.Geometries.CoordinateZ.Equals3D(NetTopologySuite.Geometries.CoordinateZ)">
  8042. <summary>
  8043. Returns <c>true</c> if <paramref name="other"/>
  8044. has the same values for X, Y and Z.
  8045. </summary>
  8046. <param name="other">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/> with which to do the 3D comparison.</param>
  8047. <returns>
  8048. <c>true</c> if <paramref name="other"/> is a <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/>
  8049. with the same values for X, Y and Z.
  8050. </returns>
  8051. </member>
  8052. <member name="M:NetTopologySuite.Geometries.CoordinateZ.EqualInZ(NetTopologySuite.Geometries.CoordinateZ,System.Double)">
  8053. <summary>
  8054. Tests if another CoordinateZ has the same value for Z, within a tolerance.
  8055. </summary>
  8056. <param name="c">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/>.</param>
  8057. <param name="tolerance">The tolerance value.</param>
  8058. <returns><c>true</c> if the Z ordinates are within the given tolerance.</returns>
  8059. </member>
  8060. <member name="M:NetTopologySuite.Geometries.CoordinateZ.ToString">
  8061. <summary>
  8062. Returns a <c>string</c> of the form <i>(x, y, z)</i> .
  8063. </summary>
  8064. <returns><c>string</c> of the form <i>(x, y, z)</i></returns>
  8065. </member>
  8066. <member name="M:NetTopologySuite.Geometries.CoordinateZ.Distance3D(NetTopologySuite.Geometries.CoordinateZ)">
  8067. <summary>
  8068. Computes the 3-dimensional Euclidean distance to another location.
  8069. </summary>
  8070. <param name="c">A <see cref="T:NetTopologySuite.Geometries.CoordinateZ"/> with which to do the distance comparison.</param>
  8071. <returns>the 3-dimensional Euclidean distance between the locations.</returns>
  8072. </member>
  8073. <member name="T:NetTopologySuite.Geometries.CoordinateZM">
  8074. <summary>
  8075. A lightweight class used to store coordinates on the 2-dimensional Cartesian plane
  8076. and additional z- and m-ordinate values (<see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>, <see cref="P:NetTopologySuite.Geometries.CoordinateZM.M"/>).
  8077. <para>
  8078. This data object is suitable for use with coordinate sequences with
  8079. <c>dimension</c> = 4 and <c>measures</c> = 1.
  8080. </para>
  8081. </summary>
  8082. <remarks>
  8083. It is distinct from <see cref="T:NetTopologySuite.Geometries.Point"/>, which is a subclass of <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  8084. Unlike objects of type <see cref="T:NetTopologySuite.Geometries.Point"/> (which contain additional
  8085. information such as an envelope, a precision model, and spatial reference
  8086. system information), a <c>CoordinateZM</c> only contains ordinate values
  8087. and properties.
  8088. <para/>
  8089. <c>CoordinateZM</c>s are two-dimensional points, with an additional Z-ordinate.
  8090. If an Z-ordinate value is not specified or not defined,
  8091. constructed coordinates have a Z-ordinate of <c>NaN</c>
  8092. (which is also the value of <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>).
  8093. <para/>
  8094. Apart from the basic accessor functions, NTS supports
  8095. only specific operations involving the Z- and/or M-ordinate.
  8096. <para/>
  8097. Implementations may optionally support Z-ordinate and M-measure values
  8098. as appropriate for a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>. Use of <see cref="P:NetTopologySuite.Geometries.CoordinateZ.Z"/>
  8099. and <see cref="P:NetTopologySuite.Geometries.CoordinateZM.M"/> setters or <see cref="P:NetTopologySuite.Geometries.CoordinateZM.this[int]" /> indexer are recommended.
  8100. </remarks>
  8101. </member>
  8102. <member name="P:NetTopologySuite.Geometries.CoordinateZM.M">
  8103. <summary>
  8104. Gets or sets the measure-ordinate value.
  8105. </summary>
  8106. </member>
  8107. <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(System.Double,System.Double,System.Double,System.Double)">
  8108. <summary>
  8109. Constructs a <c>CoordinateZM</c> at (x,y,z).
  8110. </summary>
  8111. <param name="x">The X value</param>
  8112. <param name="y">The Y value</param>
  8113. <param name="z">The Z value</param>
  8114. <param name="m">The Measure value</param>
  8115. </member>
  8116. <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor">
  8117. <summary>
  8118. Constructs a <c>CoordinateZM</c> at (0,0,NaN,NaN).
  8119. </summary>
  8120. </member>
  8121. <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(NetTopologySuite.Geometries.Coordinate)">
  8122. <summary>
  8123. Constructs a <c>CoordinateZM</c> having the same (x,y) values as
  8124. <paramref name="c"/>.
  8125. </summary>
  8126. <param name="c"><c>Coordinate</c> to copy.</param>
  8127. </member>
  8128. <member name="M:NetTopologySuite.Geometries.CoordinateZM.#ctor(System.Double,System.Double)">
  8129. <summary>
  8130. Constructs a <c>CoordinateZM</c> at (x,y,NaN).
  8131. </summary>
  8132. <param name="x">X value.</param>
  8133. <param name="y">Y value.</param>
  8134. </member>
  8135. <member name="P:NetTopologySuite.Geometries.CoordinateZM.Item(System.Int32)">
  8136. <summary>
  8137. Gets or sets the ordinate value for the given index.
  8138. </summary>
  8139. <remarks>
  8140. The base implementation supports 0 (X), 1 (Y) and 2 (Z) as values for the index.
  8141. </remarks>
  8142. <param name="ordinateIndex">The ordinate index</param>
  8143. <returns>The ordinate value</returns>
  8144. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if <paramref name="ordinateIndex"/> is not in the valid range.</exception>
  8145. </member>
  8146. <member name="M:NetTopologySuite.Geometries.CoordinateZM.op_Implicit(System.ValueTuple{System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZM">
  8147. <summary>
  8148. Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZM</c>.
  8149. </summary>
  8150. <param name="value"></param>
  8151. <returns></returns>
  8152. </member>
  8153. <member name="M:NetTopologySuite.Geometries.CoordinateZM.op_Implicit(System.ValueTuple{System.Double,System.Double,System.Double,System.Double})~NetTopologySuite.Geometries.CoordinateZM">
  8154. <summary>
  8155. Implicit conversion of a <c>Tuple</c> to a <c>CoordinateZM</c>.
  8156. </summary>
  8157. <param name="value"></param>
  8158. <returns></returns>
  8159. </member>
  8160. <member name="M:NetTopologySuite.Geometries.CoordinateZM.Deconstruct(System.Double@,System.Double@,System.Double@,System.Double@)">
  8161. <summary>
  8162. Deconstructs this <c>CoordinateZM</c> into its x, y, z and values.
  8163. </summary>
  8164. <param name="x">The x-ordinate value</param>
  8165. <param name="y">The y-ordinate value</param>
  8166. <param name="z">The z-ordinate value</param>
  8167. <param name="m"></param>
  8168. </member>
  8169. <member name="P:NetTopologySuite.Geometries.CoordinateZM.CoordinateValue">
  8170. <summary>
  8171. Gets/Sets <c>CoordinateZM</c>s (x,y,z) values.
  8172. </summary>
  8173. </member>
  8174. <member name="M:NetTopologySuite.Geometries.CoordinateZM.Create(System.Double,System.Double,System.Double,System.Double)">
  8175. <summary>
  8176. Create a Coordinate of the same type as this Coordinate,
  8177. using the provided values for <paramref name="x"/>, <paramref name="y"/>, <paramref name="z"/> and <paramref name="m"/>.
  8178. </summary>
  8179. <param name="x">The x-ordinate value, if not provided, it is <c>0d</c>.</param>
  8180. <param name="y">The y-ordinate value, if not provided, it is <c>0d</c>.</param>
  8181. <param name="z">The z-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  8182. <param name="m">The m-ordinate value, if not provided, it is <see cref="F:NetTopologySuite.Geometries.Coordinate.NullOrdinate"/>.</param>
  8183. <returns>A new <see cref="T:NetTopologySuite.Geometries.CoordinateZM"/></returns>
  8184. </member>
  8185. <member name="M:NetTopologySuite.Geometries.CoordinateZM.ToString">
  8186. <summary>
  8187. Returns a <c>string</c> of the form <i>(x, y, z, m=m)</i> .
  8188. </summary>
  8189. <returns><c>string</c> of the form <i>(x, y, z, m=m)</i></returns>
  8190. </member>
  8191. <member name="T:NetTopologySuite.Geometries.Dimension">
  8192. <summary>
  8193. Provides constants representing the dimensions of a point, a curve and a surface.
  8194. </summary>
  8195. <remarks>
  8196. Also provides constants representing the dimensions of the empty geometry and
  8197. non-empty geometries, and the wildcard constant <see cref="F:NetTopologySuite.Geometries.Dimension.Dontcare"/> meaning "any dimension".
  8198. These constants are used as the entries in <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>s.
  8199. </remarks>
  8200. </member>
  8201. <member name="F:NetTopologySuite.Geometries.Dimension.Point">
  8202. <summary>
  8203. Dimension value of a point (0).
  8204. </summary>
  8205. </member>
  8206. <member name="F:NetTopologySuite.Geometries.Dimension.P">
  8207. <summary>
  8208. Dimension value of a point (0).
  8209. </summary>
  8210. </member>
  8211. <member name="F:NetTopologySuite.Geometries.Dimension.Curve">
  8212. <summary>
  8213. Dimension value of a curve (1).
  8214. </summary>
  8215. </member>
  8216. <member name="F:NetTopologySuite.Geometries.Dimension.L">
  8217. <summary>
  8218. Dimension value of a curve (1).
  8219. </summary>
  8220. </member>
  8221. <member name="F:NetTopologySuite.Geometries.Dimension.Surface">
  8222. <summary>
  8223. Dimension value of a surface (2).
  8224. </summary>
  8225. </member>
  8226. <member name="F:NetTopologySuite.Geometries.Dimension.A">
  8227. <summary>
  8228. Dimension value of a surface (2).
  8229. </summary>
  8230. </member>
  8231. <member name="F:NetTopologySuite.Geometries.Dimension.False">
  8232. <summary>
  8233. Dimension value of a empty point (-1).
  8234. </summary>
  8235. </member>
  8236. <member name="F:NetTopologySuite.Geometries.Dimension.True">
  8237. <summary>
  8238. Dimension value of non-empty geometries (= {Point,Curve,Surface}).
  8239. </summary>
  8240. </member>
  8241. <member name="F:NetTopologySuite.Geometries.Dimension.Dontcare">
  8242. <summary>
  8243. Dimension value for any dimension (= {False, True}).
  8244. </summary>
  8245. </member>
  8246. <member name="F:NetTopologySuite.Geometries.Dimension.Unknown">
  8247. <summary>
  8248. Dimension value for a unknown spatial object
  8249. </summary>
  8250. </member>
  8251. <member name="F:NetTopologySuite.Geometries.Dimension.Collapse">
  8252. <summary>
  8253. Dimension value for a collapsed surface or curve
  8254. </summary>
  8255. </member>
  8256. <member name="T:NetTopologySuite.Geometries.DimensionUtility">
  8257. <summary>
  8258. Class containing static methods for conversions
  8259. between dimension values and characters.
  8260. </summary>
  8261. </member>
  8262. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymFalse">
  8263. <summary>
  8264. Symbol for the FALSE pattern matrix entry
  8265. </summary>
  8266. </member>
  8267. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymTrue">
  8268. <summary>
  8269. Symbol for the TRUE pattern matrix entry
  8270. </summary>
  8271. </member>
  8272. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymDontcare">
  8273. <summary>
  8274. Symbol for the DONTCARE pattern matrix entry
  8275. </summary>
  8276. </member>
  8277. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymP">
  8278. <summary>
  8279. Symbol for the P (dimension 0) pattern matrix entry
  8280. </summary>
  8281. </member>
  8282. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymL">
  8283. <summary>
  8284. Symbol for the L (dimension 1) pattern matrix entry
  8285. </summary>
  8286. </member>
  8287. <member name="F:NetTopologySuite.Geometries.DimensionUtility.SymA">
  8288. <summary>
  8289. Symbol for the A (dimension 2) pattern matrix entry
  8290. </summary>
  8291. </member>
  8292. <member name="M:NetTopologySuite.Geometries.DimensionUtility.ToDimensionSymbol(NetTopologySuite.Geometries.Dimension)">
  8293. <summary>
  8294. Converts the dimension value to a dimension symbol,
  8295. for example, <c>True => 'T'</c>
  8296. </summary>
  8297. <param name="dimensionValue">Number that can be stored in the <c>IntersectionMatrix</c>.
  8298. Possible values are <c>True, False, Dontcare, 0, 1, 2</c>.</param>
  8299. <returns>Character for use in the string representation of an <c>IntersectionMatrix</c>.
  8300. Possible values are <c>T, F, * , 0, 1, 2</c>.</returns>
  8301. </member>
  8302. <member name="M:NetTopologySuite.Geometries.DimensionUtility.ToDimensionValue(System.Char)">
  8303. <summary>
  8304. Converts the dimension symbol to a dimension value,
  8305. for example, <c>'*' => Dontcare</c>
  8306. </summary>
  8307. <param name="dimensionSymbol">Character for use in the string representation of an <c>IntersectionMatrix</c>.
  8308. Possible values are <c>T, F, * , 0, 1, 2</c>.</param>
  8309. <returns>Number that can be stored in the <c>IntersectionMatrix</c>.
  8310. Possible values are <c>True, False, Dontcare, 0, 1, 2</c>.</returns>
  8311. </member>
  8312. <member name="T:NetTopologySuite.Geometries.Envelope">
  8313. <summary>
  8314. Defines a rectangular region of the 2D coordinate plane.
  8315. </summary>
  8316. <remarks>
  8317. It is often used to represent the bounding box of a <c>Geometry</c>,
  8318. e.g. the minimum and maximum x and y values of the <c>Coordinate</c>s.
  8319. Note that Envelopes support infinite or half-infinite regions, by using the values of
  8320. <c>Double.PositiveInfinity</c> and <c>Double.NegativeInfinity</c>.
  8321. When Envelope objects are created or initialized,
  8322. the supplied extent values are automatically sorted into the correct order.
  8323. </remarks>
  8324. </member>
  8325. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  8326. <summary>
  8327. Test the point q to see whether it intersects the Envelope
  8328. defined by p1-p2.
  8329. </summary>
  8330. <param name="p1">One extremal point of the envelope.</param>
  8331. <param name="p2">Another extremal point of the envelope.</param>
  8332. <param name="q">Point to test for intersection.</param>
  8333. <returns><c>true</c> if q intersects the envelope p1-p2.</returns>
  8334. </member>
  8335. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  8336. <summary>
  8337. Tests whether the envelope defined by p1-p2
  8338. and the envelope defined by q1-q2
  8339. intersect.
  8340. </summary>
  8341. <param name="p1">One extremal point of the envelope Point.</param>
  8342. <param name="p2">Another extremal point of the envelope Point.</param>
  8343. <param name="q1">One extremal point of the envelope Q.</param>
  8344. <param name="q2">Another extremal point of the envelope Q.</param>
  8345. <returns><c>true</c> if Q intersects Point</returns>
  8346. </member>
  8347. <member name="F:NetTopologySuite.Geometries.Envelope._minX">
  8348. <summary>
  8349. The minimum x-coordinate
  8350. </summary>
  8351. </member>
  8352. <member name="F:NetTopologySuite.Geometries.Envelope._maxX">
  8353. <summary>
  8354. The maximum x-coordinate
  8355. </summary>
  8356. </member>
  8357. <member name="F:NetTopologySuite.Geometries.Envelope._minY">
  8358. <summary>
  8359. The minimum y-coordinate
  8360. </summary>
  8361. </member>
  8362. <member name="F:NetTopologySuite.Geometries.Envelope._maxY">
  8363. <summary>
  8364. The maximum y-coordinate
  8365. </summary>
  8366. </member>
  8367. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor">
  8368. <summary>
  8369. Creates a null <c>Envelope</c>.
  8370. </summary>
  8371. </member>
  8372. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(System.Double,System.Double,System.Double,System.Double)">
  8373. <summary>
  8374. Creates an <c>Envelope</c> for a region defined by maximum and minimum values.
  8375. </summary>
  8376. <param name="x1">The first x-value.</param>
  8377. <param name="x2">The second x-value.</param>
  8378. <param name="y1">The first y-value.</param>
  8379. <param name="y2">The second y-value.</param>
  8380. </member>
  8381. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  8382. <summary>
  8383. Creates an <c>Envelope</c> for a region defined by two Coordinates.
  8384. </summary>
  8385. <param name="p1">The first Coordinate.</param>
  8386. <param name="p2">The second Coordinate.</param>
  8387. </member>
  8388. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Coordinate)">
  8389. <summary>
  8390. Creates an <c>Envelope</c> for a region defined by a single Coordinate.
  8391. </summary>
  8392. <param name="p">The Coordinate.</param>
  8393. </member>
  8394. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  8395. <summary>
  8396. Creates an <c>Envelope</c> for a region defined by an enumeration of <c>Coordinate</c>s.
  8397. </summary>
  8398. <param name="pts">The <c>Coordinates</c>.</param>
  8399. </member>
  8400. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.CoordinateSequence)">
  8401. <summary>
  8402. Creates an <c>Envelope</c> for a region defined by a <c>CoordinateSequence</c>s.
  8403. </summary>
  8404. <param name="sequence">The <c>CoordinateSequence</c>.</param>
  8405. </member>
  8406. <member name="M:NetTopologySuite.Geometries.Envelope.#ctor(NetTopologySuite.Geometries.Envelope)">
  8407. <summary>
  8408. Create an <c>Envelope</c> from an existing Envelope.
  8409. </summary>
  8410. <param name="env">The Envelope to initialize from.</param>
  8411. </member>
  8412. <member name="M:NetTopologySuite.Geometries.Envelope.Init">
  8413. <summary>
  8414. Initialize to a null <c>Envelope</c>.
  8415. </summary>
  8416. </member>
  8417. <member name="M:NetTopologySuite.Geometries.Envelope.Init(System.Double,System.Double,System.Double,System.Double)">
  8418. <summary>
  8419. Initialize an <c>Envelope</c> for a region defined by maximum and minimum values.
  8420. </summary>
  8421. <param name="x1">The first x-value.</param>
  8422. <param name="x2">The second x-value.</param>
  8423. <param name="y1">The first y-value.</param>
  8424. <param name="y2">The second y-value.</param>
  8425. </member>
  8426. <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  8427. <summary>
  8428. Initialize an <c>Envelope</c> for a region defined by two Coordinates.
  8429. </summary>
  8430. <param name="p1">The first Coordinate.</param>
  8431. <param name="p2">The second Coordinate.</param>
  8432. </member>
  8433. <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Coordinate)">
  8434. <summary>
  8435. Initialize an <c>Envelope</c> for a region defined by a single Coordinate.
  8436. </summary>
  8437. <param name="p">The Coordinate.</param>
  8438. </member>
  8439. <member name="M:NetTopologySuite.Geometries.Envelope.Init(NetTopologySuite.Geometries.Envelope)">
  8440. <summary>
  8441. Initialize an <c>Envelope</c> from an existing Envelope.
  8442. </summary>
  8443. <param name="env">The Envelope to initialize from.</param>
  8444. </member>
  8445. <member name="M:NetTopologySuite.Geometries.Envelope.SetToNull">
  8446. <summary>
  8447. Makes this <c>Envelope</c> a "null" envelope..
  8448. </summary>
  8449. </member>
  8450. <member name="P:NetTopologySuite.Geometries.Envelope.IsNull">
  8451. <summary>
  8452. Returns <c>true</c> if this <c>Envelope</c> is a "null" envelope.
  8453. </summary>
  8454. <returns>
  8455. <c>true</c> if this <c>Envelope</c> is uninitialized
  8456. or is the envelope of the empty point.
  8457. </returns>
  8458. </member>
  8459. <member name="P:NetTopologySuite.Geometries.Envelope.Width">
  8460. <summary>
  8461. Returns the difference between the maximum and minimum x values.
  8462. </summary>
  8463. <returns>max x - min x, or 0 if this is a null <c>Envelope</c>.</returns>
  8464. </member>
  8465. <member name="P:NetTopologySuite.Geometries.Envelope.Height">
  8466. <summary>
  8467. Returns the difference between the maximum and minimum y values.
  8468. </summary>
  8469. <returns>max y - min y, or 0 if this is a null <c>Envelope</c>.</returns>
  8470. </member>
  8471. <member name="P:NetTopologySuite.Geometries.Envelope.Diameter">
  8472. <summary>
  8473. Gets the length of the diameter (diagonal) of the envelope.
  8474. </summary>
  8475. <returns>The diameter length</returns>
  8476. </member>
  8477. <member name="P:NetTopologySuite.Geometries.Envelope.MinX">
  8478. <summary>
  8479. Returns the <c>Envelope</c>s minimum x-value. min x > max x
  8480. indicates that this is a null <c>Envelope</c>.
  8481. </summary>
  8482. <returns>The minimum x-coordinate.</returns>
  8483. </member>
  8484. <member name="P:NetTopologySuite.Geometries.Envelope.MaxX">
  8485. <summary>
  8486. Returns the <c>Envelope</c>s maximum x-value. min x > max x
  8487. indicates that this is a null <c>Envelope</c>.
  8488. </summary>
  8489. <returns>The maximum x-coordinate.</returns>
  8490. </member>
  8491. <member name="P:NetTopologySuite.Geometries.Envelope.MinY">
  8492. <summary>
  8493. Returns the <c>Envelope</c>s minimum y-value. min y > max y
  8494. indicates that this is a null <c>Envelope</c>.
  8495. </summary>
  8496. <returns>The minimum y-coordinate.</returns>
  8497. </member>
  8498. <member name="P:NetTopologySuite.Geometries.Envelope.MaxY">
  8499. <summary>
  8500. Returns the <c>Envelope</c>s maximum y-value. min y > max y
  8501. indicates that this is a null <c>Envelope</c>.
  8502. </summary>
  8503. <returns>The maximum y-coordinate.</returns>
  8504. </member>
  8505. <member name="P:NetTopologySuite.Geometries.Envelope.Area">
  8506. <summary>
  8507. Gets the area of this envelope.
  8508. </summary>
  8509. <returns>The area of the envelope, or 0.0 if envelope is null</returns>
  8510. </member>
  8511. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandBy(System.Double)">
  8512. <summary>
  8513. Expands this envelope by a given distance in all directions.
  8514. Both positive and negative distances are supported.
  8515. </summary>
  8516. <param name="distance">The distance to expand the envelope.</param>
  8517. </member>
  8518. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandBy(System.Double,System.Double)">
  8519. <summary>
  8520. Expands this envelope by a given distance in all directions.
  8521. Both positive and negative distances are supported.
  8522. </summary>
  8523. <param name="deltaX">The distance to expand the envelope along the the X axis.</param>
  8524. <param name="deltaY">The distance to expand the envelope along the the Y axis.</param>
  8525. </member>
  8526. <member name="P:NetTopologySuite.Geometries.Envelope.MinExtent">
  8527. <summary>
  8528. Gets the minimum extent of this envelope across both dimensions.
  8529. </summary>
  8530. <returns></returns>
  8531. </member>
  8532. <member name="P:NetTopologySuite.Geometries.Envelope.MaxExtent">
  8533. <summary>
  8534. Gets the maximum extent of this envelope across both dimensions.
  8535. </summary>
  8536. <returns></returns>
  8537. </member>
  8538. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(NetTopologySuite.Geometries.Coordinate)">
  8539. <summary>
  8540. Enlarges this <c>Envelope</c> so that it contains
  8541. the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  8542. Has no effect if the point is already on or within the envelope.
  8543. </summary>
  8544. <param name="p">The Coordinate.</param>
  8545. </member>
  8546. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(System.Double,System.Double)">
  8547. <summary>
  8548. Enlarges this <c>Envelope</c> so that it contains
  8549. the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  8550. </summary>
  8551. <remarks>Has no effect if the point is already on or within the envelope.</remarks>
  8552. <param name="x">The value to lower the minimum x to or to raise the maximum x to.</param>
  8553. <param name="y">The value to lower the minimum y to or to raise the maximum y to.</param>
  8554. </member>
  8555. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandToInclude(NetTopologySuite.Geometries.Envelope)">
  8556. <summary>
  8557. Enlarges this <c>Envelope</c> so that it contains
  8558. the <c>other</c> Envelope.
  8559. Has no effect if <c>other</c> is wholly on or
  8560. within the envelope.
  8561. </summary>
  8562. <param name="other">the <c>Envelope</c> to expand to include.</param>
  8563. </member>
  8564. <member name="M:NetTopologySuite.Geometries.Envelope.ExpandedBy(NetTopologySuite.Geometries.Envelope)">
  8565. <summary>
  8566. Enlarges this <c>Envelope</c> so that it contains
  8567. the <c>other</c> Envelope.
  8568. Has no effect if <c>other</c> is wholly on or
  8569. within the envelope.
  8570. </summary>
  8571. <param name="other">the <c>Envelope</c> to expand to include.</param>
  8572. </member>
  8573. <member name="M:NetTopologySuite.Geometries.Envelope.Translate(System.Double,System.Double)">
  8574. <summary>
  8575. Translates this envelope by given amounts in the X and Y direction.
  8576. </summary>
  8577. <param name="transX">The amount to translate along the X axis.</param>
  8578. <param name="transY">The amount to translate along the Y axis.</param>
  8579. </member>
  8580. <member name="P:NetTopologySuite.Geometries.Envelope.Centre">
  8581. <summary>
  8582. Computes the coordinate of the centre of this envelope (as long as it is non-null).
  8583. </summary>
  8584. <returns>
  8585. The centre coordinate of this envelope,
  8586. or <c>null</c> if the envelope is null.
  8587. </returns>.
  8588. </member>
  8589. <member name="M:NetTopologySuite.Geometries.Envelope.Intersection(NetTopologySuite.Geometries.Envelope)">
  8590. <summary>
  8591. Computes the intersection of two <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
  8592. </summary>
  8593. <param name="env">The envelope to intersect with</param>
  8594. <returns>
  8595. A new Envelope representing the intersection of the envelopes (this will be
  8596. the null envelope if either argument is null, or they do not intersect
  8597. </returns>
  8598. </member>
  8599. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Envelope)">
  8600. <summary>
  8601. Check if the region defined by <c>other</c>
  8602. intersects the region of this <c>Envelope</c>.
  8603. <para/>
  8604. A null envelope never intersects.
  8605. </summary>
  8606. <param name="other">The <c>Envelope</c> which this <c>Envelope</c> is
  8607. being checked for intersecting.
  8608. </param>
  8609. <returns>
  8610. <c>true</c> if the <c>Envelope</c>s intersect.
  8611. </returns>
  8612. </member>
  8613. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate)">
  8614. <summary>
  8615. Check if the point <c>p</c> overlaps (lies inside) the region of this <c>Envelope</c>.
  8616. </summary>
  8617. <param name="p"> the <c>Coordinate</c> to be tested.</param>
  8618. <returns><c>true</c> if the point overlaps this <c>Envelope</c>.</returns>
  8619. </member>
  8620. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(System.Double,System.Double)">
  8621. <summary>
  8622. Check if the point <c>(x, y)</c> overlaps (lies inside) the region of this <c>Envelope</c>.
  8623. </summary>
  8624. <param name="x"> the x-ordinate of the point.</param>
  8625. <param name="y"> the y-ordinate of the point.</param>
  8626. <returns><c>true</c> if the point overlaps this <c>Envelope</c>.</returns>
  8627. </member>
  8628. <member name="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  8629. <summary>
  8630. Tests if the extent defined by two extremal points
  8631. intersects the extent of this <c>Envelope</c>.
  8632. </summary>
  8633. <param name="a">A point</param>
  8634. <param name="b">Another point</param>
  8635. <returns><c>true</c> if the extents intersect</returns>
  8636. </member>
  8637. <member name="M:NetTopologySuite.Geometries.Envelope.Disjoint(NetTopologySuite.Geometries.Envelope)">
  8638. <summary>
  8639. Tests if the region defined by <c>other</c>
  8640. is disjoint from the region of this <c>Envelope</c>.
  8641. </summary>
  8642. <param name="other">The <c>Envelope</c> being checked for disjointness</param>
  8643. <returns><c>true</c> if the <c>Envelope</c>s are disjoint</returns>
  8644. <seealso cref="M:NetTopologySuite.Geometries.Envelope.Intersects(NetTopologySuite.Geometries.Envelope)"/>
  8645. </member>
  8646. <member name="M:NetTopologySuite.Geometries.Envelope.Contains(NetTopologySuite.Geometries.Envelope)">
  8647. <summary>
  8648. Tests if the <c>Envelope other</c> lies wholely inside this <c>Envelope</c> (inclusive of the boundary).
  8649. </summary>
  8650. <remarks>
  8651. Note that this is <b>not</b> the same definition as the SFS <i>contains</i>,
  8652. which would exclude the envelope boundary.
  8653. </remarks>
  8654. <para>The <c>Envelope</c> to check</para>
  8655. <returns>true if <c>other</c> is contained in this <c>Envelope</c></returns>
  8656. <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Envelope)"/>
  8657. </member>
  8658. <member name="M:NetTopologySuite.Geometries.Envelope.Contains(NetTopologySuite.Geometries.Coordinate)">
  8659. <summary>
  8660. Tests if the given point lies in or on the envelope.
  8661. </summary>
  8662. <remarks>
  8663. Note that this is <b>not</b> the same definition as the SFS <i>contains</i>,
  8664. which would exclude the envelope boundary.
  8665. </remarks>
  8666. <param name="p">the point which this <c>Envelope</c> is being checked for containing</param>
  8667. <returns><c>true</c> if the point lies in the interior or on the boundary of this <c>Envelope</c>. </returns>
  8668. <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Coordinate)"/>
  8669. </member>
  8670. <member name="M:NetTopologySuite.Geometries.Envelope.Contains(System.Double,System.Double)">
  8671. <summary>
  8672. Tests if the given point lies in or on the envelope.
  8673. </summary>
  8674. <remarks>
  8675. Note that this is <b>not</b> the same definition as the SFS <i>contains</i>, which would exclude the envelope boundary.
  8676. </remarks>
  8677. <param name="x">the x-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
  8678. <param name="y">the y-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
  8679. <returns>
  8680. <c>true</c> if <c>(x, y)</c> lies in the interior or on the boundary of this <c>Envelope</c>.
  8681. </returns>
  8682. <see cref="M:NetTopologySuite.Geometries.Envelope.Covers(System.Double,System.Double)"/>
  8683. </member>
  8684. <member name="M:NetTopologySuite.Geometries.Envelope.ContainsProperly(NetTopologySuite.Geometries.Envelope)">
  8685. <summary>
  8686. Tests if an envelope is properly contained in this one.
  8687. The envelope is properly contained if it is contained
  8688. by this one but not equal to it.
  8689. </summary>
  8690. <param name="other">The envelope to test</param>
  8691. <returns><c>true</c> if the envelope is properly contained</returns>
  8692. </member>
  8693. <member name="M:NetTopologySuite.Geometries.Envelope.Covers(System.Double,System.Double)">
  8694. <summary>
  8695. Tests if the given point lies in or on the envelope.
  8696. </summary>
  8697. <param name="x">the x-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
  8698. <param name="y">the y-coordinate of the point which this <c>Envelope</c> is being checked for containing</param>
  8699. <returns> <c>true</c> if <c>(x, y)</c> lies in the interior or on the boundary of this <c>Envelope</c>.</returns>
  8700. </member>
  8701. <member name="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Coordinate)">
  8702. <summary>
  8703. Tests if the given point lies in or on the envelope.
  8704. </summary>
  8705. <param name="p">the point which this <c>Envelope</c> is being checked for containing</param>
  8706. <returns><c>true</c> if the point lies in the interior or on the boundary of this <c>Envelope</c>.</returns>
  8707. </member>
  8708. <member name="M:NetTopologySuite.Geometries.Envelope.Covers(NetTopologySuite.Geometries.Envelope)">
  8709. <summary>
  8710. Tests if the <c>Envelope other</c> lies wholely inside this <c>Envelope</c> (inclusive of the boundary).
  8711. </summary>
  8712. <param name="other">the <c>Envelope</c> to check</param>
  8713. <returns>true if this <c>Envelope</c> covers the <c>other</c></returns>
  8714. </member>
  8715. <member name="M:NetTopologySuite.Geometries.Envelope.Distance(NetTopologySuite.Geometries.Envelope)">
  8716. <summary>
  8717. Computes the distance between this and another
  8718. <c>Envelope</c>.
  8719. The distance between overlapping Envelopes is 0. Otherwise, the
  8720. distance is the Euclidean distance between the closest points.
  8721. </summary>
  8722. <returns>The distance between this and another <c>Envelope</c>.</returns>
  8723. </member>
  8724. <member name="M:NetTopologySuite.Geometries.Envelope.Equals(System.Object)">
  8725. <inheritdoc />
  8726. </member>
  8727. <member name="M:NetTopologySuite.Geometries.Envelope.Equals(NetTopologySuite.Geometries.Envelope)">
  8728. <inheritdoc cref="M:System.IEquatable{Envelope}.Equals(Envelope)"/>
  8729. </member>
  8730. <member name="M:NetTopologySuite.Geometries.Envelope.CompareTo(System.Object)">
  8731. <summary>
  8732. Compares two envelopes using lexicographic ordering.
  8733. The ordering comparison is based on the usual numerical
  8734. comparison between the sequence of ordinates.
  8735. Null envelopes are less than all non-null envelopes.
  8736. </summary>
  8737. <param name="o">An envelope</param>
  8738. </member>
  8739. <member name="M:NetTopologySuite.Geometries.Envelope.CompareTo(NetTopologySuite.Geometries.Envelope)">
  8740. <summary>
  8741. Compares two envelopes using lexicographic ordering.
  8742. The ordering comparison is based on the usual numerical
  8743. comparison between the sequence of ordinates.
  8744. Null envelopes are less than all non-null envelopes.
  8745. </summary>
  8746. <param name="env">An envelope</param>
  8747. </member>
  8748. <member name="M:NetTopologySuite.Geometries.Envelope.GetHashCode">
  8749. <inheritdoc/>
  8750. </member>
  8751. <member name="M:NetTopologySuite.Geometries.Envelope.ToString">
  8752. <summary>
  8753. Function to get a textual representation of this envelope
  8754. </summary>
  8755. <returns>A textual representation of this envelope</returns>
  8756. </member>
  8757. <member name="M:NetTopologySuite.Geometries.Envelope.Copy">
  8758. <summary>
  8759. Creates a deep copy of the current envelope.
  8760. </summary>
  8761. <returns></returns>
  8762. </member>
  8763. <member name="M:NetTopologySuite.Geometries.Envelope.Parse(System.String)">
  8764. <summary>
  8765. Method to parse an envelope from its <see cref="M:NetTopologySuite.Geometries.Envelope.ToString"/> value
  8766. </summary>
  8767. <param name="envelope">The envelope string</param>
  8768. <returns>The envelope</returns>
  8769. </member>
  8770. <member name="T:NetTopologySuite.Geometries.Geometry">
  8771. <summary>
  8772. A representation of a planar, linear vector geometry.
  8773. </summary>
  8774. <remarks>
  8775. <para>
  8776. <h3>Binary Predicates:</h3>
  8777. Because it is not clear at this time what semantics for spatial
  8778. analysis methods involving <c>GeometryCollection</c>s would be useful,
  8779. <c>GeometryCollection</c>s are not supported as arguments to binary
  8780. predicates or the <c>Relate</c> method.
  8781. </para>
  8782. <para>
  8783. <h3>Overlay Methods:</h3>
  8784. The spatial analysis methods will
  8785. return the most specific class possible to represent the result. If the
  8786. result is homogeneous, a <c>Point</c>, <c>LineString</c>, or
  8787. <c>Polygon</c> will be returned if the result contains a single
  8788. element; otherwise, a <c>MultiPoint</c>, <c>MultiLineString</c>,
  8789. or <c>MultiPolygon</c> will be returned. If the result is
  8790. heterogeneous a <c>GeometryCollection</c> will be returned.
  8791. </para>
  8792. <para>
  8793. Representation of Computed Geometries:
  8794. The SFS states that the result
  8795. of a set-theoretic method is the "point-set" result of the usual
  8796. set-theoretic definition of the operation (SFS 3.2.21.1). However, there are
  8797. sometimes many ways of representing a point set as a <c>Geometry</c>.
  8798. The SFS does not specify an unambiguous representation of a given point set
  8799. returned from a spatial analysis method. One goal of NTS is to make this
  8800. specification precise and unambiguous. NTS uses a canonical form for
  8801. <c>Geometry</c>s returned from overlay methods. The canonical
  8802. form is a <c>Geometry</c> which is simple and noded:
  8803. Simple means that the Geometry returned will be simple according to
  8804. the NTS definition of <c>IsSimple</c>.
  8805. Noded applies only to overlays involving <c>LineString</c>s. It
  8806. means that all intersection points on <c>LineString</c>s will be
  8807. present as endpoints of <c>LineString</c>s in the result.
  8808. This definition implies that non-simple geometries which are arguments to
  8809. spatial analysis methods must be subjected to a line-dissolve process to
  8810. ensure that the results are simple.
  8811. </para>
  8812. <para>
  8813. Constructed Points And The Precision Model:
  8814. The results computed by the set-theoretic methods may
  8815. contain constructed points which are not present in the input <c>Geometry</c>s.
  8816. These new points arise from intersections between line segments in the
  8817. edges of the input <c>Geometry</c>s. In the general case it is not
  8818. possible to represent constructed points exactly. This is due to the fact
  8819. that the coordinates of an intersection point may contain twice as many bits
  8820. of precision as the coordinates of the input line segments. In order to
  8821. represent these constructed points explicitly, NTS must truncate them to fit
  8822. the <c>PrecisionModel</c>.
  8823. Unfortunately, truncating coordinates moves them slightly. Line segments
  8824. which would not be coincident in the exact result may become coincident in
  8825. the truncated representation. This in turn leads to "topology collapses" --
  8826. situations where a computed element has a lower dimension than it would in
  8827. the exact result.
  8828. When NTS detects topology collapses during the computation of spatial
  8829. analysis methods, it will throw an exception. If possible the exception will
  8830. report the location of the collapse.
  8831. </para>
  8832. <para>
  8833. <h3>Geometry Equality</h3>
  8834. There are two ways of comparing geometries for equality:
  8835. <b>structural equality</b> and <b>topological equality</b>.
  8836. <h4>Structural Equality</h4>
  8837. Structural Equality is provided by the
  8838. <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/> method.
  8839. This implements a comparison based on exact, structural pointwise
  8840. equality.
  8841. The <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/> is a synonym for this method,
  8842. to provide structural equality semantics for
  8843. use in collections.
  8844. It is important to note that structural pointwise equality
  8845. is easily affected by things like
  8846. ring order and component order. In many situations
  8847. it will be desirable to normalize geometries before
  8848. comparing them (using the <see cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
  8849. or <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> methods).
  8850. <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsNormalized(NetTopologySuite.Geometries.Geometry)"/> is provided
  8851. as a convenience method to compute equality over
  8852. normalized geometries, but it is expensive to use.
  8853. Finally, <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)"/>
  8854. allows using a tolerance value for point comparison.
  8855. <h4>Topological Equality</h4>
  8856. Topological Equality is provided by the
  8857. <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/> method.
  8858. It implements the SFS definition of point-set equality
  8859. defined in terms of the DE-9IM matrix.
  8860. To support the SFS naming convention, the method
  8861. <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(NetTopologySuite.Geometries.Geometry)"/> is also provided as a synonym.
  8862. However, due to the potential for confusion with <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/>
  8863. its use is discouraged.
  8864. </para>
  8865. <para>
  8866. Since <see cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/> and <see cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/> are overridden,
  8867. Geometries can be used effectively in .Net collections.
  8868. </para>
  8869. </remarks>
  8870. </member>
  8871. <member name="T:NetTopologySuite.Geometries.Geometry.SortIndexValue">
  8872. <summary>
  8873. An enumeration of sort values for geometries
  8874. </summary>
  8875. <remarks>
  8876. NOTE:<br/>
  8877. For JTS v1.17 the values in this enum have been renamed to 'TYPECODE...'
  8878. In order not to break binary compatibility we did not follow.
  8879. </remarks>
  8880. </member>
  8881. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Point">
  8882. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Point"/></summary>
  8883. </member>
  8884. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPoint">
  8885. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPoint"/></summary>
  8886. </member>
  8887. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LineString">
  8888. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LineString"/></summary>
  8889. </member>
  8890. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LinearRing">
  8891. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.LinearRing"/></summary>
  8892. </member>
  8893. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiLineString">
  8894. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiLineString"/></summary>
  8895. </member>
  8896. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Polygon">
  8897. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.Polygon"/></summary>
  8898. </member>
  8899. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPolygon">
  8900. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.MultiPolygon"/></summary>
  8901. </member>
  8902. <member name="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.GeometryCollection">
  8903. <summary>Sort hierarchy value of a <see cref="F:NetTopologySuite.Geometries.Geometry.SortIndexValue.GeometryCollection"/></summary>
  8904. </member>
  8905. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNamePoint">
  8906. <summary>
  8907. The name of point geometries
  8908. </summary>
  8909. </member>
  8910. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiPoint">
  8911. <summary>
  8912. The name of multi-point geometries
  8913. </summary>
  8914. </member>
  8915. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameLineString">
  8916. <summary>
  8917. The name of linestring geometries
  8918. </summary>
  8919. </member>
  8920. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameLinearRing">
  8921. <summary>
  8922. The name of linearring geometries
  8923. </summary>
  8924. </member>
  8925. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiLineString">
  8926. <summary>
  8927. The name of multi-linestring geometries
  8928. </summary>
  8929. </member>
  8930. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNamePolygon">
  8931. <summary>
  8932. The name of polygon geometries
  8933. </summary>
  8934. </member>
  8935. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameMultiPolygon">
  8936. <summary>
  8937. The name of multi-polygon geometries
  8938. </summary>
  8939. </member>
  8940. <member name="F:NetTopologySuite.Geometries.Geometry.TypeNameGeometryCollection">
  8941. <summary>
  8942. The name of geometry collection geometries.
  8943. </summary>
  8944. </member>
  8945. <member name="P:NetTopologySuite.Geometries.Geometry.Factory">
  8946. <summary>
  8947. Gets the factory which contains the context in which this point was created.
  8948. </summary>
  8949. <returns>The factory for this point.</returns>
  8950. </member>
  8951. <member name="P:NetTopologySuite.Geometries.Geometry.UserData">
  8952. <summary>
  8953. Gets/Sets the user data object for this point, if any.
  8954. </summary>
  8955. <remarks>
  8956. A simple scheme for applications to add their own custom data to a Geometry.
  8957. An example use might be to add an object representing a Coordinate Reference System.
  8958. Note that user data objects are not present in geometries created by
  8959. construction methods.
  8960. </remarks>
  8961. </member>
  8962. <member name="F:NetTopologySuite.Geometries.Geometry._envelope">
  8963. <summary>
  8964. The bounding box of this <c>Geometry</c>.
  8965. </summary>
  8966. </member>
  8967. <member name="P:NetTopologySuite.Geometries.Geometry.SRID">
  8968. <summary>
  8969. Sets the ID of the Spatial Reference System used by the <c>Geometry</c>.
  8970. </summary>
  8971. <remarks>
  8972. <para>
  8973. <b>NOTE:</b> This method should only be used for exceptional circumstances or
  8974. for backwards compatibility. Normally the <c>SRID</c> should be set on the
  8975. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> used to <b>create</b> the geometry.
  8976. <c>SRID</c>s set using this method will change the <see cref="P:NetTopologySuite.Geometries.Geometry.Factory"/>.
  8977. </para>
  8978. </remarks>
  8979. <seealso cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  8980. </member>
  8981. <member name="M:NetTopologySuite.Geometries.Geometry.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  8982. <summary>
  8983. Creates a new <c>Geometry</c> via the specified GeometryFactory.
  8984. </summary>
  8985. <param name="factory">The factory</param>
  8986. </member>
  8987. <member name="P:NetTopologySuite.Geometries.Geometry.GeometryType">
  8988. <summary>
  8989. Returns the name of this Geometry's actual class.
  8990. </summary>
  8991. <returns>The name of this <c>Geometry</c>s actual class.</returns>
  8992. </member>
  8993. <member name="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType">
  8994. <summary>
  8995. Gets the OGC geometry type
  8996. </summary>
  8997. </member>
  8998. <member name="M:NetTopologySuite.Geometries.Geometry.HasNonEmptyElements(NetTopologySuite.Geometries.Geometry[])">
  8999. <summary>
  9000. Returns true if the array contains any non-empty <c>Geometry</c>s.
  9001. </summary>
  9002. <param name="geometries"> an array of <c>Geometry</c>s; no elements may be <c>null</c></param>
  9003. <returns>
  9004. <c>true</c> if any of the <c>Geometry</c>s
  9005. <c>IsEmpty</c> methods return <c>false</c>.
  9006. </returns>
  9007. </member>
  9008. <member name="M:NetTopologySuite.Geometries.Geometry.HasNullElements(System.Object[])">
  9009. <summary>
  9010. Returns true if the array contains any <c>null</c> elements.
  9011. </summary>
  9012. <param name="array"> an array to validate.</param>
  9013. <returns><c>true</c> if any of <c>array</c>s elements are <c>null</c>.</returns>
  9014. </member>
  9015. <member name="M:NetTopologySuite.Geometries.Geometry.HasNullElements``1(System.Collections.Generic.IEnumerable{``0})">
  9016. <summary>
  9017. Returns true if the array contains any <c>null</c> elements.
  9018. </summary>
  9019. <param name="array"> an array to validate.</param>
  9020. <returns><c>true</c> if any of <c>array</c>s elements are <c>null</c>.</returns>
  9021. </member>
  9022. <member name="P:NetTopologySuite.Geometries.Geometry.PrecisionModel">
  9023. <summary>
  9024. Returns the <c>PrecisionModel</c> used by the <c>Geometry</c>.
  9025. </summary>
  9026. <returns>
  9027. the specification of the grid of allowable points, for this
  9028. <c>Geometry</c> and all other <c>Geometry</c>s.
  9029. </returns>
  9030. </member>
  9031. <member name="P:NetTopologySuite.Geometries.Geometry.Coordinate">
  9032. <summary>
  9033. Returns a vertex of this geometry
  9034. (usually, but not necessarily, the first one),
  9035. or <c>null</c> if the geometry is empty.
  9036. </summary>
  9037. <remarks>
  9038. The returned coordinate should not be assumed to be an actual <c>Coordinate</c> object used in the internal representation.
  9039. </remarks>
  9040. <returns>A coordinate which is a vertex of this <c>Geometry</c>.</returns>
  9041. <returns><c>null</c> if this Geometry is empty.
  9042. </returns>
  9043. </member>
  9044. <member name="P:NetTopologySuite.Geometries.Geometry.Coordinates">
  9045. <summary>
  9046. Returns an array containing the values of all the vertices for
  9047. this geometry.
  9048. </summary>
  9049. <remarks>
  9050. If the geometry is a composite, the array will contain all the vertices
  9051. for the components, in the order in which the components occur in the geometry.
  9052. <para>
  9053. In general, the array cannot be assumed to be the actual internal
  9054. storage for the vertices. Thus modifying the array
  9055. may not modify the geometry itself.
  9056. Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> or
  9057. <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/> method
  9058. (possibly on the components) to modify the underlying data.
  9059. If the coordinates are modified,
  9060. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
  9061. </para>
  9062. </remarks>
  9063. <returns>The vertices of this <c>Geometry</c>.</returns>
  9064. <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
  9065. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
  9066. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
  9067. </member>
  9068. <member name="M:NetTopologySuite.Geometries.Geometry.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
  9069. <summary>
  9070. Gets an array of <see cref="T:System.Double"/> ordinate values
  9071. </summary>
  9072. <param name="ordinate">The ordinate index</param>
  9073. <returns>An array of ordinate values</returns>
  9074. </member>
  9075. <member name="P:NetTopologySuite.Geometries.Geometry.NumPoints">
  9076. <summary>
  9077. Returns the count of this <c>Geometry</c>s vertices. The <c>Geometry</c>
  9078. s contained by composite <c>Geometry</c>s must be
  9079. Geometry's; that is, they must implement <c>NumPoints</c>.
  9080. </summary>
  9081. <returns>The number of vertices in this <c>Geometry</c>.</returns>
  9082. </member>
  9083. <member name="P:NetTopologySuite.Geometries.Geometry.NumGeometries">
  9084. <summary>
  9085. Returns the number of Geometryes in a GeometryCollection,
  9086. or 1, if the geometry is not a collection.
  9087. </summary>
  9088. </member>
  9089. <member name="M:NetTopologySuite.Geometries.Geometry.GetGeometryN(System.Int32)">
  9090. <summary>
  9091. Returns an element Geometry from a GeometryCollection,
  9092. or <c>this</c>, if the geometry is not a collection.
  9093. </summary>
  9094. <param name="n">The index of the geometry element.</param>
  9095. <returns>The n'th geometry contained in this geometry.</returns>
  9096. </member>
  9097. <member name="P:NetTopologySuite.Geometries.Geometry.IsSimple">
  9098. <summary>
  9099. Tests whether this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is simple.
  9100. <para/>
  9101. The SFS definition of simplicity
  9102. follows the general rule that a Geometry is simple if it has no points of
  9103. self-tangency, self-intersection or other anomalous points.
  9104. <para/>
  9105. Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/> subclass as follows:
  9106. <list type="bullet">
  9107. <item><description>Valid polygonal geometries are simple, since their rings
  9108. must not self-intersect. <c>IsSimple</c>
  9109. tests for this condition and reports <c>false</c> if it is not met.
  9110. (This is a looser test than checking for validity).</description></item>
  9111. <item><description>Linear rings have the same semantics.</description></item>
  9112. <item><description>Linear geometries are simple if they do not self-intersect at points
  9113. other than boundary points.</description></item>
  9114. <item><description>Zero-dimensional geometries (points) are simple if they have no
  9115. repeated points.</description></item>
  9116. <item><description>Empty <c>Geometry</c>s are always simple.</description></item>
  9117. </list>
  9118. </summary>
  9119. <returns><c>true</c> if this <c>Geometry</c> is simple</returns>
  9120. <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
  9121. </member>
  9122. <member name="P:NetTopologySuite.Geometries.Geometry.IsValid">
  9123. <summary>
  9124. Tests whether this <c>Geometry</c> is topologically
  9125. valid, according to the OGC SFS specification.<para/>
  9126. For validity rules see the documentation for the specific geometry subclass.
  9127. </summary>
  9128. <returns><c>true</c> if this <c>Geometry</c> is valid.</returns>
  9129. </member>
  9130. <member name="P:NetTopologySuite.Geometries.Geometry.IsEmpty">
  9131. <summary>
  9132. Tests whether the set of points covered in this <c>Geometry</c> is empty.
  9133. <para/>
  9134. Note this test is for topological emptiness, not structural emptiness.<br/>
  9135. A collection containing only empty elements is reported as empty.<br/>
  9136. To check structural emptiness use <see cref="P:NetTopologySuite.Geometries.Geometry.NumGeometries"/>.
  9137. </summary>
  9138. <returns><c>true</c> if this <c>Geometry</c> does not cover any points.</returns>
  9139. </member>
  9140. <member name="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)">
  9141. <summary>
  9142. Returns the minimum distance between this <c>Geometry</c>
  9143. and another <c>Geometry</c> g.
  9144. </summary>
  9145. <param name="g">The <c>Geometry</c> from which to compute the distance.</param>
  9146. <returns>The distance between the geometries</returns>
  9147. <returns>0 if either input geometry is empty</returns>
  9148. <exception cref="T:System.ArgumentException">if g is null</exception>
  9149. </member>
  9150. <member name="M:NetTopologySuite.Geometries.Geometry.IsWithinDistance(NetTopologySuite.Geometries.Geometry,System.Double)">
  9151. <summary>
  9152. Tests whether the distance from this <c>Geometry</c>
  9153. to another is less than or equal to a specified value.
  9154. </summary>
  9155. <param name="geom">the Geometry to check the distance to.</param>
  9156. <param name="distance">the distance value to compare.</param>
  9157. <returns><c>true</c> if the geometries are less than <c>distance</c> apart.</returns>
  9158. </member>
  9159. <member name="P:NetTopologySuite.Geometries.Geometry.Area">
  9160. <summary>
  9161. Returns the area of this <c>Geometry</c>.
  9162. Areal Geometries have a non-zero area.
  9163. They override this function to compute the area.
  9164. Others return 0.0
  9165. </summary>
  9166. <returns>The area of the Geometry.</returns>
  9167. </member>
  9168. <member name="P:NetTopologySuite.Geometries.Geometry.Length">
  9169. <summary>
  9170. Returns the length of this <c>Geometry</c>.
  9171. Linear geometries return their length.
  9172. Areal geometries return their perimeter.
  9173. They override this function to compute the length.
  9174. Others return 0.0
  9175. </summary>
  9176. <returns>The length of the Geometry.</returns>
  9177. </member>
  9178. <member name="P:NetTopologySuite.Geometries.Geometry.Centroid">
  9179. <summary>
  9180. Computes the centroid of this <c>Geometry</c>.
  9181. The centroid
  9182. is equal to the centroid of the set of component Geometries of highest
  9183. dimension (since the lower-dimension geometries contribute zero
  9184. "weight" to the centroid).
  9185. <para/>
  9186. The centroid of an empty geometry is <c>POINT EMPTY</c>.
  9187. </summary>
  9188. <returns>A Point which is the centroid of this Geometry.</returns>
  9189. </member>
  9190. <member name="P:NetTopologySuite.Geometries.Geometry.InteriorPoint">
  9191. <summary>
  9192. Computes an interior point of this <c>Geometry</c>.
  9193. </summary>
  9194. <remarks>
  9195. An interior point is guaranteed to lie in the interior of the Geometry,
  9196. if it possible to calculate such a point exactly. Otherwise,
  9197. the point may lie on the boundary of the point.
  9198. <para/>
  9199. The interior point of an empty geometry is <c>POINT EMPTY</c>.
  9200. </remarks>
  9201. <returns>A <c>Point</c> which is in the interior of this Geometry.</returns>
  9202. </member>
  9203. <member name="P:NetTopologySuite.Geometries.Geometry.PointOnSurface">
  9204. <summary>
  9205. <see cref="P:NetTopologySuite.Geometries.Geometry.InteriorPoint" />
  9206. </summary>
  9207. </member>
  9208. <member name="P:NetTopologySuite.Geometries.Geometry.Dimension">
  9209. <summary>
  9210. Returns the dimension of this geometry.
  9211. </summary>
  9212. <remarks>
  9213. The dimension of a geometry is is the topological
  9214. dimension of its embedding in the 2-D Euclidean plane.
  9215. In the NTS spatial model, dimension values are in the set {0,1,2}.
  9216. <para>
  9217. Note that this is a different concept to the dimension of
  9218. the vertex <see cref="P:NetTopologySuite.Geometries.Geometry.Coordinate"/>s.
  9219. The geometry dimension can never be greater than the coordinate dimension.
  9220. For example, a 0-dimensional geometry (e.g. a Point)
  9221. may have a coordinate dimension of 3 (X,Y,Z).
  9222. </para>
  9223. </remarks>
  9224. <returns>
  9225. The topological dimensions of this geometry
  9226. </returns>
  9227. <seealso cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
  9228. </member>
  9229. <member name="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)">
  9230. <summary>
  9231. Tests whether an atomic geometry or any element of a collection
  9232. has the specified dimension.<br/>
  9233. In particular, this can be used with mixed-dimension <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s
  9234. to test if they contain an element of the specified dimension.
  9235. </summary>
  9236. <param name="dim">The dimension to test</param>
  9237. <returns><c>true</c> if the geometry has or contains an element with the dimension</returns>
  9238. <seealso cref="P:NetTopologySuite.Geometries.Geometry.Dimension"/>
  9239. </member>
  9240. <member name="P:NetTopologySuite.Geometries.Geometry.Boundary">
  9241. <summary>
  9242. Returns the boundary, or an empty geometry of appropriate dimension
  9243. if this <c>Geometry</c> is empty.
  9244. For a discussion of this function, see the OpenGIS Simple
  9245. Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
  9246. of a Geometry is a set of Geometries of the next lower dimension."
  9247. </summary>
  9248. <returns>The closure of the combinatorial boundary of this <c>Geometry</c>.</returns>
  9249. </member>
  9250. <member name="P:NetTopologySuite.Geometries.Geometry.BoundaryDimension">
  9251. <summary>
  9252. Returns the dimension of this <c>Geometry</c>s inherent boundary.
  9253. </summary>
  9254. <returns>
  9255. The dimension of the boundary of the class implementing this
  9256. interface, whether or not this object is the empty point. Returns
  9257. <c>Dimension.False</c> if the boundary is the empty point.
  9258. </returns>
  9259. </member>
  9260. <member name="P:NetTopologySuite.Geometries.Geometry.Envelope">
  9261. <summary>
  9262. Gets a geometry representing the envelope (bounding box) of this <c>Geometry</c>.
  9263. </summary>
  9264. <remarks>If this <c>Geometry</c> is
  9265. <list type="bullet">
  9266. <item><description>empty, returns an empty <c>Point</c></description></item>
  9267. <item><description>a point, returns a <c>Point</c></description></item>
  9268. <item><description>a line parallel to an axis, a two-vertex <c>LineString</c>,</description></item>
  9269. <item><description>otherwise, returns a
  9270. <c>Polygon</c> whose vertices are (minx, miny), (maxx, miny),
  9271. (maxx, maxy), (minx, maxy), (minx, miny).</description></item>
  9272. </list>
  9273. </remarks>
  9274. <returns>
  9275. A Geometry representing the envelope of this Geometry
  9276. </returns>
  9277. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)"/>
  9278. </member>
  9279. <member name="P:NetTopologySuite.Geometries.Geometry.EnvelopeInternal">
  9280. <summary>
  9281. Gets an <see cref="T:NetTopologySuite.Geometries.Envelope"/> containing
  9282. the minimum and maximum x and y values in this <c>Geometry</c>.
  9283. If the geometry is empty, an empty <c>Envelope</c>
  9284. is returned.
  9285. </summary>
  9286. <remarks>
  9287. The returned object is a copy of the one maintained internally,
  9288. to avoid aliasing issues.
  9289. For best performance, clients which access this
  9290. envelope frequently should cache the return value.</remarks>
  9291. <returns>the envelope of this <c>Geometry</c>.</returns>
  9292. <returns>An empty Envelope if this Geometry is empty</returns>
  9293. </member>
  9294. <member name="M:NetTopologySuite.Geometries.Geometry.GeometryChanged">
  9295. <summary>
  9296. Notifies this geometry that its coordinates have been changed by an external
  9297. party (for example, via a <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/>).
  9298. </summary>
  9299. <remarks>
  9300. When this method is called the geometry will flush
  9301. and/or update any derived information it has cached (such as its <see cref="T:NetTopologySuite.Geometries.Envelope"/> ).
  9302. The operation is applied to all component Geometries.
  9303. </remarks>
  9304. </member>
  9305. <member name="M:NetTopologySuite.Geometries.Geometry.GeometryChangedAction">
  9306. <summary>
  9307. Notifies this Geometry that its Coordinates have been changed by an external
  9308. party. When GeometryChanged is called, this method will be called for
  9309. this Geometry and its component Geometries.
  9310. </summary>
  9311. </member>
  9312. <member name="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
  9313. <summary>
  9314. Tests whether this geometry is disjoint from the argument geometry.
  9315. </summary>
  9316. <remarks>
  9317. The <c>Disjoint</c> predicate has the following equivalent definitions:
  9318. <list type="bullet">
  9319. <item><description>The DE-9IM intersection matrix for the two geometries matches <c>FF*FF****</c>.</description></item>
  9320. <item><description><c>!g.intersects(this) == true</c><br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
  9321. </list>
  9322. </remarks>
  9323. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  9324. <returns><c>true</c> if the two <c>Geometry</c>s are disjoint.</returns>
  9325. <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
  9326. </member>
  9327. <member name="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)">
  9328. <summary>
  9329. Tests whether this geometry touches the argument geometry
  9330. </summary>
  9331. <remarks>
  9332. The <c>Touches</c> predicate has the following equivalent definitions:
  9333. <list type="bullet">
  9334. <item><description>The geometries have at least one point in common,
  9335. but their interiors do not intersect</description></item>
  9336. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  9337. at least one of the following patterns
  9338. <list type="bullet">
  9339. <item><description><c>FT*******</c>,</description></item>
  9340. <item><description><c>F**T*****</c> or</description></item>
  9341. <item><description><c>F***T****</c>.</description></item>
  9342. </list></description></item>
  9343. </list>
  9344. If both geometries have dimension 0, the predicate returns <c>false</c>,
  9345. since points have only interiors.
  9346. This predicate is symmetric.
  9347. </remarks>
  9348. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  9349. <returns>
  9350. <c>true</c> if the two <c>Geometry</c>s touch;
  9351. Returns false if both <c>Geometry</c>s are points.
  9352. </returns>
  9353. </member>
  9354. <member name="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)">
  9355. <summary>
  9356. Tests whether this geometry intersects the argument geometry.
  9357. </summary>
  9358. <remarks>
  9359. The <c>Intersects</c> predicate has the following equivalent definitions:
  9360. <list type="bullet">
  9361. <item><description>The two geometries have at least one point in common</description></item>
  9362. <item><description>The DE-9IM Intersection Matrix for the two geometries matches<br/>
  9363. <c>[T********]</c> or<br/>
  9364. <c>[*T*******]</c> or<br/>
  9365. <c>[***T*****]</c> or<br/>
  9366. <c>[****T****]</c></description></item>
  9367. <item><description><c>!g.disjoint(this)</c><br/>
  9368. (<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item>
  9369. </list></remarks>
  9370. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  9371. <returns><c>true</c> if the two <c>Geometry</c>s intersect.</returns>
  9372. <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
  9373. </member>
  9374. <member name="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)">
  9375. <summary>
  9376. Tests whether this geometry crosses the specified geometry.
  9377. </summary>
  9378. <remarks>
  9379. The <c>Crosses</c> predicate has the following equivalent definitions:
  9380. <list type="bullet">
  9381. <item>The geometries have some but not all interior points in common.</item>
  9382. <item>The DE-9IM Intersection Matrix for the two geometries matches
  9383. one of the following patterns:
  9384. <list type="table">
  9385. <listheader><term>Code</term><description>Description</description></listheader>
  9386. <item><term><c>[T*T******]</c></term><description>for P/L, P/A, and L/A situations</description></item>
  9387. <item><term><c>[T*****T**]</c></term><description>for L/P, A/P, and A/L situations)</description></item>
  9388. <item><term><c>[0********]</c></term><description>for L/L situations</description></item>
  9389. </list>
  9390. </item>
  9391. </list>
  9392. For the A/A and P/P situations this predicate returns <c>false</c>.
  9393. <para>
  9394. The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
  9395. To make the relation symmetric,
  9396. NTS extends the definition to apply to L/P, A/P and A/L situations as well.
  9397. </para>
  9398. </remarks>
  9399. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9400. <returns><c>true</c> if the two <c>Geometry</c>s cross.</returns>
  9401. </member>
  9402. <member name="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)">
  9403. <summary>
  9404. Tests whether this geometry is within the specified geometry.
  9405. </summary>
  9406. <remarks>
  9407. The <c>within</c> predicate has the following equivalent definitions:
  9408. <list type="bullet">
  9409. <item><description>
  9410. Every point of this geometry is a point of the other geometry,
  9411. and the interiors of the two geometries have at least one point in common.
  9412. </description></item>
  9413. <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>[T*F**F***]</c></description></item>
  9414. <item><description><c>g.contains(this) == true</c><br/>(<c>Within</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  9415. </list>
  9416. <para>
  9417. An implication of the definition is that "The boundary of a geometry is not within the Polygon".
  9418. In other words, if a geometry A is a subset of the points in the boundary of a geometry B, <c>A.within(B) == false</c>
  9419. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  9420. For a predicate with similar behaviour but avoiding
  9421. this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>.
  9422. </para>
  9423. </remarks>
  9424. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  9425. <returns><c>true</c> if this <c>Geometry</c> is within <c>other</c>.</returns>
  9426. <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
  9427. <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
  9428. </member>
  9429. <member name="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)">
  9430. <summary>
  9431. Tests whether this geometry contains the argument geometry.
  9432. </summary>
  9433. <remarks>
  9434. The <c>Contains</c> predicate has the following equivalent definitions:
  9435. <list type="bullet">
  9436. <item><description>Every point of the other geometry is a point of this geometry,
  9437. and the interiors of the two geometries have at least one point in common.</description></item>
  9438. <item><description>The DE-9IM Intersection Matrix for the two geometries matches the pattern
  9439. <c>[T*****FF*]</c></description></item>
  9440. <item><description><c>g.within(this)</c><br/>
  9441. (<c>Contains</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  9442. </list>
  9443. <para>
  9444. An implication of the definition is that "Geometries do not
  9445. contain their boundary". In other words, if a geometry A is a subset of
  9446. the points in the boundary of a geometry B, <c>B.Contains(A) == false</c>.
  9447. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  9448. For a predicate with similar behaviour but avoiding
  9449. this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>.
  9450. </para>
  9451. </remarks>
  9452. <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9453. <returns><c>true</c> if this <c>Geometry</c> contains <c>g</c></returns>
  9454. <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
  9455. <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
  9456. </member>
  9457. <member name="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
  9458. <summary>
  9459. Tests whether this geometry overlaps the specified geometry.
  9460. </summary>
  9461. <remarks>
  9462. The <c>Overlaps</c> predicate has the following equivalent definitions:
  9463. <list type="bullet">
  9464. <item><description>The geometries have at least one point each not shared by the other
  9465. (or equivalently neither covers the other),
  9466. they have the same dimension,
  9467. and the intersection of the interiors of the two geometries has
  9468. the same dimension as the geometries themselves.</description></item>
  9469. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  9470. <c>[T*T***T**]</c> (for two points or two surfaces)
  9471. or <c>[1*T***T**]</c> (for two curves)</description></item>
  9472. </list>
  9473. If the geometries are of different dimension this predicate returns <c>false</c>.
  9474. </remarks>
  9475. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  9476. <returns>
  9477. <c>true</c> if the two <c>Geometry</c>s overlap.
  9478. For this function to return <c>true</c>, the <c>Geometry</c>
  9479. s must be two points, two curves or two surfaces.
  9480. </returns>
  9481. </member>
  9482. <member name="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)">
  9483. <summary>
  9484. Tests whether this geometry covers the argument geometry
  9485. </summary>
  9486. <remarks>
  9487. The <c>covers</c> predicate has the following equivalent definitions:
  9488. <list type="bullet">
  9489. <item><description>Every point of the other geometry is a point of this geometry.</description></item>
  9490. <item><description>The DE-9IM Intersection Matrix for the two geometries matches at least
  9491. one of the following patterns:
  9492. <list type="bullet">
  9493. <item><description><c>[T*****FF*]</c> or<br/></description></item>
  9494. <item><description><c>[*T****FF*]</c> or<br/></description></item>
  9495. <item><description><c>[***T**FF*]</c> or<br/></description></item>
  9496. <item><description><c>[****T*FF*]</c></description></item>
  9497. </list>
  9498. </description></item>
  9499. <item><c>g.CoveredBy(this) == true</c><br/>
  9500. (<c>covers</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>)</item>
  9501. </list>
  9502. If either geometry is empty, the value of this predicate is <c>false</c>.
  9503. <para>
  9504. This predicate is similar to <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>,
  9505. but is more inclusive (i.e. returns <c>true</c> for more cases).
  9506. In particular, unlike <c>Contains</c> it does not distinguish between
  9507. points in the boundary and in the interior of geometries.
  9508. For most situations, <c>Covers</c> should be used in preference to <c>Contains</c>.
  9509. As an added benefit, <c>Covers</c> is more amenable to optimization,
  9510. and hence should be more performant.
  9511. </para>
  9512. </remarks>
  9513. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9514. <returns><c>true</c> if this <c>Geometry</c> covers <paramref name="g" /></returns>
  9515. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)" />
  9516. <seealso cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)" />
  9517. </member>
  9518. <member name="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
  9519. <summary>Tests whether this geometry is covered by the specified geometry.</summary>
  9520. <remarks>
  9521. The <c>CoveredBy</c> predicate has the following equivalent definitions:
  9522. <list type="bullet">
  9523. <item><description>Every point of this geometry is a point of the other geometry.</description></item>
  9524. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  9525. at least one of the following patterns:
  9526. <list type="bullet">
  9527. <item><description><c>[T*F**F***]</c></description></item>
  9528. <item><description><c>[*TF**F***]</c></description></item>
  9529. <item><description><c>[**FT*F***]</c></description></item>
  9530. <item><description><c>[**F*TF***]</c></description></item></list></description></item>
  9531. <item><description><c>g.Covers(this) == true</c><br/>
  9532. (<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>)
  9533. </description></item>
  9534. </list>
  9535. If either geometry is empty, the value of this predicate is <c>false</c>.
  9536. <para>
  9537. This predicate is similar to <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>,
  9538. but is more inclusive (i.e. returns <c>true</c> for more cases).
  9539. </para>
  9540. </remarks>
  9541. <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9542. <returns><c>true</c> if this <c>Geometry</c> is covered by <c>g</c></returns>
  9543. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
  9544. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
  9545. </member>
  9546. <member name="M:NetTopologySuite.Geometries.Geometry.Relate(NetTopologySuite.Geometries.Geometry,System.String)">
  9547. <summary>
  9548. Tests whether the elements in the DE-9IM
  9549. <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/> for the two <c>Geometry</c>s match the elements in <c>intersectionPattern</c>.
  9550. </summary>
  9551. <remarks>
  9552. The pattern is a 9-character string, with symbols drawn from the following set:
  9553. <list type="table">
  9554. <item><term>0</term><description>(dimension 0)</description></item>
  9555. <item><term>1</term><description>(dimension 1)</description></item>
  9556. <item><term>2</term><description>(dimension 2)</description></item>
  9557. <item><term>T</term><description>( matches 0, 1 or 2)</description></item>
  9558. <item><term>F</term><description>( matches FALSE)</description></item>
  9559. <item><term>*</term><description>( matches any value)</description></item>
  9560. </list>
  9561. For more information on the DE-9IM, see the <i>OpenGIS Simple Features
  9562. Specification</i>.
  9563. </remarks>
  9564. <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9565. <param name="intersectionPattern">the pattern against which to check the
  9566. intersection matrix for the two <c>Geometry</c>s</param>
  9567. <returns><c>true</c> if the DE-9IM intersection
  9568. matrix for the two <c>Geometry</c>s match <c>intersectionPattern</c></returns>
  9569. <seealso cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>
  9570. </member>
  9571. <member name="M:NetTopologySuite.Geometries.Geometry.Relate(NetTopologySuite.Geometries.Geometry)">
  9572. <summary>
  9573. Returns the DE-9IM intersection matrix for the two <c>Geometry</c>s.
  9574. </summary>
  9575. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9576. <returns>
  9577. A matrix describing the intersections of the interiors,
  9578. boundaries and exteriors of the two <c>Geometry</c>s.
  9579. </returns>
  9580. </member>
  9581. <member name="M:NetTopologySuite.Geometries.Geometry.Equals(NetTopologySuite.Geometries.Geometry)">
  9582. <summary>
  9583. Tests whether this geometry is
  9584. topologically equal to the argument geometry.
  9585. <para/>
  9586. This method is included for backward compatibility reasons.
  9587. It has been superseded by the <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/> method,
  9588. which has been named to clearly denote its functionality.
  9589. <para/>
  9590. This method should <b>NOT</b> be confused with the method
  9591. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)"/>, which implements
  9592. an exact equality comparison.
  9593. </summary>
  9594. <param name="g">The <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9595. <returns><c>true</c> if the two <c>Geometry</c>s are topologically equal.</returns>
  9596. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/>
  9597. </member>
  9598. <member name="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)">
  9599. <summary>
  9600. Tests whether this geometry is topologically equal to the argument geometry
  9601. as defined by the SFS <c>Equals</c> predicate.
  9602. </summary>
  9603. <remarks>
  9604. The SFS <c>equals</c> predicate has the following equivalent definitions:
  9605. <list type="bullet">
  9606. <item><description>The two geometries have at least one point in common,
  9607. and no point of either geometry lies in the exterior of the other geometry.</description></item>
  9608. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  9609. the pattern <tt>T*F**FFF*</tt>
  9610. <pre>
  9611. T*F
  9612. **F
  9613. FF*
  9614. </pre></description></item>
  9615. </list>
  9616. <b>Note</b> that this method computes <b>topologically equality</b>.
  9617. For structural equality, see {@link #equalsExact(Geometry)}.
  9618. </remarks>
  9619. <param name="g">the <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  9620. <returns><c>true</c> if the two <c>Geometry</c>s are topologically equal</returns>
  9621. </member>
  9622. <member name="M:NetTopologySuite.Geometries.Geometry.Equals(System.Object)">
  9623. <summary>
  9624. Tests whether this geometry is structurally and numerically equal
  9625. to a given <tt>Object</tt>.
  9626. </summary>
  9627. <remarks>
  9628. If the argument <tt>Object</tt> is not a <c>Geometry</c>,
  9629. the result is <c>false</c>.
  9630. Otherwise, the result is computed using
  9631. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>.
  9632. <para/>
  9633. This method is provided to fulfill the Java contract
  9634. for value-based object equality.
  9635. In conjunction with <seealso cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/>
  9636. it provides semantics which are most useful
  9637. for using
  9638. <c>Geometry</c>s as keys and values in Java collections.
  9639. <para/>
  9640. Note that to produce the expected result the input geometries
  9641. should be in normal form. It is the caller's
  9642. responsibility to perform this where required
  9643. (using <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
  9644. or <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> as appropriate).
  9645. </remarks>
  9646. <param name="o">The object to compare</param>
  9647. <returns><c>true</c> if this geometry is exactly equal to the argument</returns>
  9648. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
  9649. <seealso cref="M:NetTopologySuite.Geometries.Geometry.GetHashCode"/>
  9650. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
  9651. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
  9652. </member>
  9653. <member name="M:NetTopologySuite.Geometries.Geometry.CompareGeometryCollections(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  9654. <summary>
  9655. </summary>
  9656. <param name="obj1"></param>
  9657. <param name="obj2"></param>
  9658. <returns></returns>
  9659. </member>
  9660. <member name="M:NetTopologySuite.Geometries.Geometry.op_Equality(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  9661. <summary>
  9662. </summary>
  9663. <param name="obj1"></param>
  9664. <param name="obj2"></param>
  9665. <returns></returns>
  9666. </member>
  9667. <member name="M:NetTopologySuite.Geometries.Geometry.op_Inequality(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  9668. <summary>
  9669. </summary>
  9670. <param name="obj1"></param>
  9671. <param name="obj2"></param>
  9672. <returns></returns>
  9673. </member>
  9674. <member name="M:NetTopologySuite.Geometries.Geometry.GetHashCode">
  9675. <summary>
  9676. Gets a hash code for the Geometry.
  9677. </summary>
  9678. <returns>
  9679. An integer value suitable for use as a hashcode
  9680. </returns>
  9681. </member>
  9682. <member name="M:NetTopologySuite.Geometries.Geometry.ToString">
  9683. <summary>
  9684. Returns the Well-known Text representation of this <c>Geometry</c>.
  9685. For a definition of the Well-known Text format, see the OpenGIS Simple
  9686. Features Specification.
  9687. </summary>
  9688. <returns>
  9689. The Well-known Text representation of this <c>Geometry</c>.
  9690. </returns>
  9691. </member>
  9692. <member name="M:NetTopologySuite.Geometries.Geometry.ToText">
  9693. <summary>
  9694. Returns the Well-known Text representation of this <c>Geometry</c>.
  9695. For a definition of the Well-known Text format, see the OpenGIS Simple
  9696. Features Specification.
  9697. </summary>
  9698. <returns>
  9699. The Well-known Text representation of this <c>Geometry</c>.
  9700. </returns>
  9701. </member>
  9702. <member name="M:NetTopologySuite.Geometries.Geometry.AsText">
  9703. <summary>
  9704. <see cref="M:NetTopologySuite.Geometries.Geometry.ToText" />
  9705. </summary>
  9706. <returns></returns>
  9707. </member>
  9708. <member name="M:NetTopologySuite.Geometries.Geometry.ToBinary">
  9709. <summary>
  9710. Returns the Well-known Binary representation of this <c>Geometry</c>.
  9711. For a definition of the Well-known Binary format, see the OpenGIS Simple
  9712. Features Specification.
  9713. </summary>
  9714. <returns>The Well-known Binary representation of this <c>Geometry</c>.</returns>
  9715. </member>
  9716. <member name="M:NetTopologySuite.Geometries.Geometry.AsBinary">
  9717. <summary>
  9718. <see cref="M:NetTopologySuite.Geometries.Geometry.ToBinary" />
  9719. </summary>
  9720. <returns></returns>
  9721. </member>
  9722. <member name="M:NetTopologySuite.Geometries.Geometry.ToGMLFeature">
  9723. <summary>
  9724. Returns the feature representation as GML 2.1.1 XML document.
  9725. This XML document is based on <c>Geometry.xsd</c> schema.
  9726. NO features or XLink are implemented here!
  9727. </summary>
  9728. </member>
  9729. <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)">
  9730. <summary>
  9731. Computes a buffer area around this geometry having the given width. The
  9732. buffer of a Geometry is the Minkowski sum or difference of the geometry
  9733. with a disc of radius <c>Abs(distance)</c>.
  9734. </summary>
  9735. <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
  9736. To represent these arcs using linear geometry they must be approximated with line segments.
  9737. The buffer geometry is constructed using 8 segments per quadrant to approximate
  9738. the circular arcs.</para>
  9739. <para>The end cap style is <c>EndCapStyle.Round</c>.</para>
  9740. <para>
  9741. The buffer operation always returns a polygonal result. The negative or
  9742. zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
  9743. This is also the result for the buffers of degenerate (zero-area) polygons.
  9744. </para>
  9745. </remarks>
  9746. <param name="distance">
  9747. The width of the buffer (may be positive, negative or 0), interpreted according to the
  9748. <c>PrecisionModel</c> of the <c>Geometry</c>.
  9749. </param>
  9750. <returns>
  9751. a polygonal geometry representing the buffer region (which may be empty)
  9752. </returns>
  9753. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
  9754. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9755. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
  9756. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
  9757. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9758. </member>
  9759. <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)">
  9760. <summary>
  9761. Computes a buffer region around this <c>Geometry</c> having the given width.
  9762. The buffer of a Geometry is the Minkowski sum or difference of the geometry
  9763. with a disc of radius <c>Abs(distance)</c>.
  9764. </summary>
  9765. <remarks>
  9766. <para>The end cap style specifies the buffer geometry that will be
  9767. created at the ends of linestrings. The styles provided are:
  9768. <ul>
  9769. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
  9770. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
  9771. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
  9772. </ul></para>
  9773. <para>The buffer operation always returns a polygonal result. The negative or
  9774. zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.</para>
  9775. </remarks>
  9776. <param name="distance">
  9777. The width of the buffer, interpreted according to the
  9778. <c>PrecisionModel</c> of the <c>Geometry</c>.
  9779. </param>
  9780. <param name="endCapStyle">Cap Style to use for compute buffer.</param>
  9781. <returns>
  9782. a polygonal geometry representing the buffer region (which may be empty)
  9783. </returns>
  9784. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
  9785. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
  9786. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
  9787. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
  9788. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9789. </member>
  9790. <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)">
  9791. <summary>
  9792. Computes a buffer region around this <c>Geometry</c> having the given
  9793. width and with a specified accuracy of approximation for circular arcs.
  9794. The buffer of a Geometry is the Minkowski sum of the Geometry with
  9795. a disc of radius <c>distance</c>. Curves in the buffer polygon are
  9796. approximated with line segments. This method allows specifying the
  9797. accuracy of that approximation.
  9798. </summary>
  9799. <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
  9800. To represent these arcs using linear geometry they must be approximated with line segments.
  9801. The <c>quadrantSegments</c> argument allows controlling the accuracy of
  9802. the approximation by specifying the number of line segments used to
  9803. represent a quadrant of a circle</para>
  9804. <para>The buffer operation always returns a polygonal result. The negative or
  9805. zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
  9806. This is also the result for the buffers of degenerate (zero-area) polygons.
  9807. </para>
  9808. </remarks>
  9809. <param name="distance">
  9810. The width of the buffer (may be positive, negative or 0), interpreted according to the
  9811. <c>PrecisionModel</c> of the <c>Geometry</c>.
  9812. </param>
  9813. <param name="quadrantSegments">The number of segments to use to approximate a quadrant of a circle.</param>
  9814. <returns>
  9815. a polygonal geometry representing the buffer region (which may be empty)
  9816. </returns>
  9817. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
  9818. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
  9819. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9820. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
  9821. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9822. </member>
  9823. <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)">
  9824. <summary>
  9825. Computes a buffer region around this <c>Geometry</c> having the given
  9826. width and with a specified number of segments used to approximate curves.
  9827. The buffer of a Geometry is the Minkowski sum of the Geometry with
  9828. a disc of radius <c>distance</c>. Curves in the buffer polygon are
  9829. approximated with line segments. This method allows specifying the
  9830. accuracy of that approximation.
  9831. </summary>
  9832. <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
  9833. To represent these arcs using linear geometry they must be approximated with line segments.
  9834. The <c>quadrantSegments</c> argument allows controlling the accuracy of
  9835. the approximation by specifying the number of line segments used to
  9836. represent a quadrant of a circle</para>
  9837. <para>The end cap style specifies the buffer geometry that will be
  9838. created at the ends of linestrings. The styles provided are:
  9839. <ul>
  9840. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
  9841. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
  9842. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
  9843. </ul></para>
  9844. <para>The buffer operation always returns a polygonal result. The negative or
  9845. zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
  9846. This is also the result for the buffers of degenerate (zero-area) polygons.
  9847. </para>
  9848. </remarks>
  9849. <param name="distance">
  9850. The width of the buffer, interpreted according to the
  9851. <c>PrecisionModel</c> of the <c>Geometry</c>.
  9852. </param>
  9853. <param name="quadrantSegments">The number of segments to use to approximate a quadrant of a circle.</param>
  9854. <param name="endCapStyle">Cap Style to use for compute buffer.</param>
  9855. <returns>
  9856. a polygonal geometry representing the buffer region (which may be empty)
  9857. </returns>
  9858. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
  9859. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
  9860. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9861. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)"/>
  9862. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
  9863. </member>
  9864. <member name="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
  9865. <summary>
  9866. Computes a buffer region around this <c>Geometry</c> having the given
  9867. width and with a specified number of segments used to approximate curves.
  9868. The buffer of a Geometry is the Minkowski sum of the Geometry with
  9869. a disc of radius <c>distance</c>. Curves in the buffer polygon are
  9870. approximated with line segments. This method allows specifying the
  9871. accuracy of that approximation.
  9872. </summary>
  9873. <remarks><para>Mathematically-exact buffer area boundaries can contain circular arcs.
  9874. To represent these arcs using linear geometry they must be approximated with line segments.
  9875. The <c>bufferParameters</c> argument has a property <c>QuadrantSegments</c> controlling the accuracy of
  9876. the approximation by specifying the number of line segments used to
  9877. represent a quadrant of a circle</para>
  9878. <para>The <c>EndCapStyle</c> property of the <c>bufferParameters</c> argument specifies the buffer geometry that will be
  9879. created at the ends of linestrings. The styles provided are:
  9880. <ul>
  9881. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - (default) a semi-circle</li>
  9882. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - a straight line perpendicular to the end segment</li>
  9883. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - a half-square</li>
  9884. </ul></para>
  9885. <para>The buffer operation always returns a polygonal result. The negative or
  9886. zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.IPolygonal"/>.
  9887. This is also the result for the buffers of degenerate (zero-area) polygons.
  9888. </para>
  9889. </remarks>
  9890. <param name="distance">
  9891. The width of the buffer, interpreted according to the
  9892. <c>PrecisionModel</c> of the <c>Geometry</c>.
  9893. </param>
  9894. <param name="bufferParameters">This argument type has a number of properties that control the construction of the
  9895. buffer, including <c>QuadrantSegments</c>, <c>EndCapStyle</c>, <c>JoinStyle</c>, and <c>MitreLimit</c></param>
  9896. <returns>
  9897. a polygonal geometry representing the buffer region (which may be empty)
  9898. </returns>
  9899. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a robustness error occurs</exception>
  9900. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double)"/>
  9901. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9902. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32)"/>
  9903. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Buffer(System.Double,System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)"/>
  9904. </member>
  9905. <member name="M:NetTopologySuite.Geometries.Geometry.ConvexHull">
  9906. <summary>
  9907. Returns the smallest convex <c>Polygon</c> that contains all the
  9908. points in the <c>Geometry</c>. This obviously applies only to <c>Geometry</c>
  9909. s which contain 3 or more points.
  9910. </summary>
  9911. <returns>the minimum-area convex polygon containing this <c>Geometry</c>'s points.</returns>
  9912. </member>
  9913. <member name="M:NetTopologySuite.Geometries.Geometry.Reverse">
  9914. <summary>
  9915. Computes a new geometry which has all component coordinate sequences
  9916. in reverse order (opposite orientation) to this one.
  9917. </summary>
  9918. <returns>A reversed geometry</returns>
  9919. <remarks>Don't override this function, implement <see cref="M:NetTopologySuite.Geometries.Geometry.ReverseInternal"/>.</remarks>
  9920. </member>
  9921. <member name="M:NetTopologySuite.Geometries.Geometry.ReverseInternal">
  9922. <summary>
  9923. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function
  9924. </summary>
  9925. <returns>A reversed geometry</returns>
  9926. <remarks>In JTS this function is abstract, but that would break binary compatibility of current version.</remarks>
  9927. </member>
  9928. <member name="M:NetTopologySuite.Geometries.Geometry.Intersection(NetTopologySuite.Geometries.Geometry)">
  9929. <summary>
  9930. Computes a <c>Geometry</c> representing the point-set which is
  9931. common to both this <c>Geometry</c> and the <c>other</c> Geometry.
  9932. <para/>
  9933. The intersection of two geometries of different dimension produces a result
  9934. geometry of dimension less than or equal to the minimum dimension of the input
  9935. geometries.
  9936. The result geometry may be a heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
  9937. If the result is empty, it is an atomic geometry
  9938. with the dimension of the lowest input dimension.
  9939. <para/>
  9940. Intersection of <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s is supported
  9941. only for homogeneous collection types.
  9942. <para/>
  9943. Non-empty heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
  9944. </summary>
  9945. <param name="other">The <c>Geometry</c> with which to compute the intersection.</param>
  9946. <returns>A geometry representing the point-set common to the two <c>Geometry</c>s.</returns>
  9947. <exception cref="T:NetTopologySuite.Geometries.TopologyException">if a robustness error occurs.</exception>
  9948. <exception cref="T:System.ArgumentException">if the argument is a non-empty heterogeneous <c>GeometryCollection</c></exception>
  9949. <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
  9950. </member>
  9951. <member name="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)">
  9952. <summary>
  9953. Computes a <c>Geometry</c> representing the point-set
  9954. which is contained in both this
  9955. <c>Geometry</c> and the <c>other</c> Geometry.
  9956. </summary>
  9957. <remarks>
  9958. The method may be used on arguments of different dimension, but it does not
  9959. support <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments.
  9960. <para/>
  9961. The union of two geometries of different dimension produces a result
  9962. geometry of dimension equal to the maximum dimension of the input
  9963. geometries.
  9964. The result geometry may be a heterogeneous
  9965. <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
  9966. If the result is empty, it is an atomic geometry
  9967. with the dimension of the highest input dimension.
  9968. <para/>
  9969. Unioning <see cref="T:NetTopologySuite.Geometries.LineString"/>s has the effect of
  9970. <b>noding</b> and <b>dissolving</b> the input linework. In this context
  9971. "noding" means that there will be a node or endpoint in the result for
  9972. every endpoint or line segment crossing in the input. "Dissolving" means
  9973. that any duplicate (i.e. coincident) line segments or portions of line
  9974. segments will be reduced to a single line segment in the result.
  9975. If <b>merged</b> linework is required, the <see cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/>
  9976. class can be used.
  9977. <para/>
  9978. Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.</remarks>
  9979. <param name="other">the <c>Geometry</c> with which to compute the union</param>
  9980. <returns>A point-set combining the points of this <c>Geometry</c> and the
  9981. points of <c>other</c></returns>
  9982. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness error occurs</exception>
  9983. <exception cref="T:System.ArgumentException">Thrown if either input is a non-empty GeometryCollection</exception>
  9984. <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
  9985. <seealso cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/>
  9986. </member>
  9987. <member name="M:NetTopologySuite.Geometries.Geometry.Difference(NetTopologySuite.Geometries.Geometry)">
  9988. <summary>
  9989. Computes a <c>Geometry</c> representing the closure of the point-set
  9990. of the points contained in this <c>Geometry</c> that are not contained in
  9991. the <c>other</c> Geometry.
  9992. <para/>
  9993. If the result is empty, it is an atomic geometry
  9994. with the dimension of the left-hand input.
  9995. <para/>
  9996. Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
  9997. </summary>
  9998. <param name="other">The <c>Geometry</c> with which to compute the difference.</param>
  9999. <returns>A Geometry representing the point-set difference of this <c>Geometry</c> with <c>other</c>.</returns>
  10000. <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
  10001. </member>
  10002. <member name="M:NetTopologySuite.Geometries.Geometry.SymmetricDifference(NetTopologySuite.Geometries.Geometry)">
  10003. <summary>
  10004. Computes a <c>Geometry </c> representing the closure of the point-set
  10005. which is the union of the points in this <c>Geometry</c> which are not
  10006. contained in the <c>other</c> Geometry,
  10007. with the points in the <c>other</c> Geometry not contained in this
  10008. <c>Geometry</c>.
  10009. If the result is empty, it is an atomic geometry
  10010. with the dimension of the highest input dimension.
  10011. <para/>
  10012. Non-empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> arguments are not supported.
  10013. </summary>
  10014. <param name="other">The <c>Geometry</c> with which to compute the symmetric difference.</param>
  10015. <returns>a Geometry representing the point-set symmetric difference of this <c>Geometry</c> with <c>other</c>.</returns>
  10016. <exception cref="T:System.ArgumentException">if the argument has a factory with a different <c>GeometryOverlay</c> object assigned</exception>
  10017. </member>
  10018. <member name="M:NetTopologySuite.Geometries.Geometry.Union">
  10019. <summary>
  10020. Computes the union of all the elements of this geometry.
  10021. </summary>
  10022. <remarks>
  10023. This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s (which the other overlay operations currently do not).</remarks>
  10024. <remarks>
  10025. The result obeys the following contract:
  10026. <list type="bullet">
  10027. <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.LineString"/>s has the effect of fully noding and dissolving the linework.</description></item>
  10028. <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.Polygon"/>s always returns a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry
  10029. (unlike <see cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/>), which may return geometries of lower dimension if a topology
  10030. collapse occurred).</description></item>
  10031. </list>
  10032. </remarks>
  10033. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness error occurs</exception>
  10034. </member>
  10035. <member name="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  10036. <summary>
  10037. Returns true if the two <c>Geometry</c>s are exactly equal,
  10038. up to a specified tolerance.
  10039. Two Geometries are exactly within a tolerance equal if:
  10040. <list type="bullet">
  10041. <item><description>they have the same class,</description></item>
  10042. <item><description>they have the same values of Coordinates,
  10043. within the given tolerance distance, in their internal
  10044. Coordinate lists, in exactly the same order.</description></item>
  10045. </list>
  10046. This method does <i>not</i>
  10047. test the values of the <c>GeometryFactory</c>, the <c>SRID</c>,
  10048. or the <c>UserData</c> fields.
  10049. <para/>
  10050. To properly test equality between different geometries,
  10051. it is usually necessary to <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> them first.
  10052. </summary>
  10053. <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c>
  10054. have identical structure and point values, up to the distance tolerance.</param>
  10055. <param name="tolerance">Distance at or below which two Coordinates will be considered equal.</param>
  10056. <returns>
  10057. <c>true</c> if this and the other <c>Geometry</c>
  10058. are of the same class and have equal internal data.
  10059. </returns>
  10060. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
  10061. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
  10062. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalized"/>
  10063. </member>
  10064. <member name="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)">
  10065. <summary>
  10066. Returns true if the two <c>Geometry</c>s are exactly equal.
  10067. Two Geometries are exactly equal if:
  10068. <list type="bullet">
  10069. <item><description>they have the same class,</description></item>
  10070. <item><description>they have the same values of Coordinates in their internal
  10071. Coordinate lists, in exactly the same order.</description></item>
  10072. </list>
  10073. This provides a stricter test of equality than
  10074. <see cref="M:NetTopologySuite.Geometries.Geometry.EqualsTopologically(NetTopologySuite.Geometries.Geometry)"/>, which is more useful
  10075. in certain situations
  10076. (such as using geometries as keys in collections).
  10077. <para/>
  10078. This method does <i>not</i>
  10079. test the values of the <c>GeometryFactory</c>, the <c>SRID</c>,
  10080. or the <c>UserData</c> fields.
  10081. <para/>
  10082. To properly test equality between different geometries,
  10083. it is usually necessary to <see cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/> them first.
  10084. </summary>
  10085. <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c>.</param>
  10086. <returns>
  10087. <c>true</c> if this and the other <c>Geometry</c> have identical structure and point values.
  10088. </returns>
  10089. </member>
  10090. <member name="M:NetTopologySuite.Geometries.Geometry.EqualsNormalized(NetTopologySuite.Geometries.Geometry)">
  10091. <summary>
  10092. Tests whether two geometries are exactly equal
  10093. in their normalized forms.
  10094. <remarks>
  10095. This is a convenience method which creates normalized
  10096. versions of both geometries before computing
  10097. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>.<para/>
  10098. This method is relatively expensive to compute.
  10099. For maximum performance, the client
  10100. should instead perform normalization on the individual geometries
  10101. at an appropriate point during processing.
  10102. </remarks>
  10103. </summary>
  10104. <param name="g">A geometry</param>
  10105. <returns>true if the input geometries are exactly equal in their normalized form</returns>
  10106. <seealso cref="M:NetTopologySuite.Geometries.Geometry.EqualsExact(NetTopologySuite.Geometries.Geometry)"/>
  10107. </member>
  10108. <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
  10109. <summary>
  10110. Performs an operation with or on this <c>Geometry</c>'s coordinates.
  10111. </summary>
  10112. <remarks>
  10113. If this method modifies any coordinate values,
  10114. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called to update the geometry state.
  10115. Note that you cannot use this method to
  10116. modify this Geometry if its underlying CoordinateSequence's #get method
  10117. returns a copy of the Coordinate, rather than the actual Coordinate stored
  10118. (if it even stores Coordinate objects at all).
  10119. </remarks>
  10120. <param name="filter">The filter to apply to this <c>Geometry</c>'s coordinates</param>
  10121. </member>
  10122. <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
  10123. <summary>
  10124. Performs an operation on the coordinates in this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
  10125. </summary>
  10126. <remarks>
  10127. If the filter reports that a coordinate value has been changed,
  10128. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
  10129. </remarks>
  10130. <param name="filter">The filter to apply</param>
  10131. </member>
  10132. <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
  10133. <summary>
  10134. Performs an operation on this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
  10135. </summary>
  10136. <remarks>
  10137. If the filter reports that a coordinate value has been changed,
  10138. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
  10139. </remarks>
  10140. <param name="filter">The filter to apply</param>
  10141. </member>
  10142. <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
  10143. <summary>
  10144. Performs an operation with or on this <c>Geometry</c> and its
  10145. subelement <c>Geometry</c>s (if any).
  10146. Only GeometryCollections and subclasses
  10147. have subelement Geometry's.
  10148. </summary>
  10149. <param name="filter">
  10150. The filter to apply to this <c>Geometry</c> (and
  10151. its children, if it is a <c>GeometryCollection</c>).
  10152. </param>
  10153. </member>
  10154. <member name="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
  10155. <summary>
  10156. Performs an operation with or on this Geometry and its
  10157. component Geometry's. Only GeometryCollections and
  10158. Polygons have component Geometry's; for Polygons they are the LinearRings
  10159. of the shell and holes.
  10160. </summary>
  10161. <param name="filter">The filter to apply to this <c>Geometry</c>.</param>
  10162. </member>
  10163. <member name="M:NetTopologySuite.Geometries.Geometry.Copy">
  10164. <summary>
  10165. Creates a deep copy of this <see cref="T:NetTopologySuite.Geometries.Geometry"/> object.
  10166. Coordinate sequences contained in it are copied.
  10167. All instance fields are copied
  10168. (i.e. the <c>SRID</c>, <c>EnvelopeInternal</c> and <c>UserData</c>).
  10169. </summary>
  10170. <remarks>
  10171. <b>NOTE:</b> The UserData object reference (if present) is copied,
  10172. but the value itself is not copied.
  10173. If a deep copy is required this must be performed by the caller.
  10174. </remarks>
  10175. <returns>A deep copy of this geometry</returns>
  10176. </member>
  10177. <member name="M:NetTopologySuite.Geometries.Geometry.CopyInternal">
  10178. <summary>
  10179. An internal method to copy subclass-specific geometry data.
  10180. </summary>
  10181. <returns>A copy of the target geometry object.</returns>
  10182. </member>
  10183. <member name="M:NetTopologySuite.Geometries.Geometry.Normalize">
  10184. <summary>
  10185. Converts this <c>Geometry</c> to normal form (or canonical form ).
  10186. </summary>
  10187. <remarks>
  10188. <para>
  10189. Normal form is a unique representation for <c>Geometry</c>s.
  10190. It can be used to test whether two <c>Geometry</c>s are equal
  10191. in a way that is independent of the ordering of the coordinates within
  10192. them. Normal form equality is a stronger condition than topological
  10193. equality, but weaker than pointwise equality.</para>
  10194. <para>
  10195. The definitions for normal
  10196. form use the standard lexicographical ordering for coordinates. "Sorted in
  10197. order of coordinates" means the obvious extension of this ordering to
  10198. sequences of coordinates.
  10199. </para>
  10200. <para>
  10201. <b>NOTE</b> that this method mutates the value of this geometry in-place.
  10202. If this is not safe and/or wanted, the geometry should be
  10203. cloned prior to normalization.
  10204. </para>
  10205. </remarks>
  10206. </member>
  10207. <member name="M:NetTopologySuite.Geometries.Geometry.Normalized">
  10208. <summary>
  10209. Creates a new Geometry which is a normalized copy of this Geometry.
  10210. </summary>
  10211. <returns>A normalized copy of this geometry.</returns>
  10212. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Normalize"/>
  10213. </member>
  10214. <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(System.Object)">
  10215. <summary>
  10216. Returns whether this <c>Geometry</c> is greater than, equal to,
  10217. or less than another <c>Geometry</c>.</summary>
  10218. <remarks>
  10219. If their classes are different, they are compared using the following
  10220. ordering:
  10221. <list type="bullet">
  10222. <item><description>Point (lowest),</description></item>
  10223. <item><description>MultiPoint,</description></item>
  10224. <item><description>LineString,</description></item>
  10225. <item><description>LinearRing,</description></item>
  10226. <item><description>MultiLineString,</description></item>
  10227. <item><description>Polygon,</description></item>
  10228. <item><description>MultiPolygon,</description></item>
  10229. <item><description>GeometryCollection (highest).</description></item>
  10230. </list>
  10231. If the two <c>Geometry</c>s have the same class, their first
  10232. elements are compared. If those are the same, the second elements are
  10233. compared, etc.
  10234. </remarks>
  10235. <param name="o">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  10236. <returns>
  10237. A positive number, 0, or a negative number, depending on whether
  10238. this object is greater than, equal to, or less than <c>o</c>, as
  10239. defined in "Normal Form For Geometry" in the NTS Technical
  10240. Specifications.
  10241. </returns>
  10242. </member>
  10243. <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(NetTopologySuite.Geometries.Geometry)">
  10244. <summary>
  10245. Returns whether this <c>Geometry</c> is greater than, equal to,
  10246. or less than another <c>Geometry</c>.</summary>
  10247. <remarks>
  10248. If their classes are different, they are compared using the following
  10249. ordering:
  10250. <list type="bullet">
  10251. <item><description>Point (lowest),</description></item>
  10252. <item><description>MultiPoint,</description></item>
  10253. <item><description>LineString,</description></item>
  10254. <item><description>LinearRing,</description></item>
  10255. <item><description>MultiLineString,</description></item>
  10256. <item><description>Polygon,</description></item>
  10257. <item><description>MultiPolygon,</description></item>
  10258. <item><description>GeometryCollection (highest).</description></item>
  10259. /// </list>
  10260. If the two <c>Geometry</c>s have the same class, their first
  10261. elements are compared. If those are the same, the second elements are
  10262. compared, etc.
  10263. </remarks>
  10264. <param name="geom">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  10265. <returns>
  10266. A positive number, 0, or a negative number, depending on whether
  10267. this object is greater than, equal to, or less than <c>o</c>, as
  10268. defined in "Normal Form For Geometry" in the NTS Technical
  10269. Specifications.
  10270. </returns>
  10271. </member>
  10272. <member name="M:NetTopologySuite.Geometries.Geometry.CompareTo(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  10273. <summary>
  10274. Returns whether this <c>Geometry</c> is greater than, equal to,
  10275. or less than another <c>Geometry</c>, using the given <see paramref="IComparer{CoordinateSequence}"/>.</summary>
  10276. <remarks>
  10277. If their classes are different, they are compared using the following
  10278. ordering:
  10279. <list type="bullet">
  10280. <item><description>Point (lowest),</description></item>
  10281. <item><description>MultiPoint,</description></item>
  10282. <item><description>LineString,</description></item>
  10283. <item><description>LinearRing,</description></item>
  10284. <item><description>MultiLineString,</description></item>
  10285. <item><description>Polygon,</description></item>
  10286. <item><description>MultiPolygon,</description></item>
  10287. <item><description>GeometryCollection (highest).</description></item>
  10288. </list>
  10289. If the two <c>Geometry</c>s have the same class, their first
  10290. elements are compared. If those are the same, the second elements are
  10291. compared, etc.
  10292. </remarks>
  10293. <param name="o">A <c>Geometry</c> with which to compare this <c>Geometry</c></param>
  10294. <param name="comp">A <c>IComparer&lt;CoordinateSequence&gt;</c></param>
  10295. <returns>
  10296. A positive number, 0, or a negative number, depending on whether
  10297. this object is greater than, equal to, or less than <c>o</c>, as
  10298. defined in "Normal Form For Geometry" in the NTS Technical
  10299. Specifications.
  10300. </returns>
  10301. </member>
  10302. <member name="M:NetTopologySuite.Geometries.Geometry.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)">
  10303. <summary>
  10304. Returns whether the two <c>Geometry</c>s are equal, from the point
  10305. of view of the <c>EqualsExact</c> method. Called by <c>EqualsExact</c>
  10306. . In general, two <c>Geometry</c> classes are considered to be
  10307. "equivalent" only if they are the same class. An exception is <c>LineString</c>
  10308. , which is considered to be equivalent to its subclasses.
  10309. </summary>
  10310. <param name="other">The <c>Geometry</c> with which to compare this <c>Geometry</c> for equality.</param>
  10311. <returns>
  10312. <c>true</c> if the classes of the two <c>Geometry</c>
  10313. s are considered to be equal by the <c>equalsExact</c> method.
  10314. </returns>
  10315. </member>
  10316. <member name="M:NetTopologySuite.Geometries.Geometry.CheckNotGeometryCollection(NetTopologySuite.Geometries.Geometry)">
  10317. <summary>
  10318. Throws an exception if <c>g</c>'s type is a <c>GeometryCollection</c>.
  10319. (Its subclasses do not trigger an exception).
  10320. </summary>
  10321. <param name="g">The <c>Geometry</c> to check.</param>
  10322. <exception cref="T:System.ArgumentException">
  10323. if <c>g</c> is a <c>GeometryCollection</c>, but not one of its subclasses.
  10324. </exception>
  10325. </member>
  10326. <member name="P:NetTopologySuite.Geometries.Geometry.IsGeometryCollection">
  10327. <summary>
  10328. Tests whether this is an instance of a general {@link GeometryCollection},
  10329. rather than a homogeneous subclass.
  10330. </summary>
  10331. <returns><c>true</c> if this is a heterogeneous GeometryCollection</returns>
  10332. </member>
  10333. <member name="M:NetTopologySuite.Geometries.Geometry.ComputeEnvelopeInternal">
  10334. <summary>
  10335. Returns the minimum and maximum x and y values in this <c>Geometry</c>,
  10336. or a null <c>Envelope</c> if this <c>Geometry</c> is empty.
  10337. Unlike <c>EnvelopeInternal</c>, this method calculates the <c>Envelope</c>
  10338. each time it is called; <c>EnvelopeInternal</c> caches the result
  10339. of this method.
  10340. </summary>
  10341. <returns>
  10342. This <c>Geometry</c>s bounding box; if the <c>Geometry</c>
  10343. is empty, <c>Envelope.IsNull</c> will return <c>true</c>.
  10344. </returns>
  10345. </member>
  10346. <member name="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)">
  10347. <summary>
  10348. Returns whether this <c>Geometry</c> is greater than, equal to,
  10349. or less than another <c>Geometry</c> having the same class.
  10350. </summary>
  10351. <param name="o">A <c>Geometry</c> having the same class as this <c>Geometry</c>.</param>
  10352. <returns>
  10353. A positive number, 0, or a negative number, depending on whether
  10354. this object is greater than, equal to, or less than <c>o</c>, as
  10355. defined in "Normal Form For Geometry" in the NTS Technical
  10356. Specifications.
  10357. </returns>
  10358. </member>
  10359. <member name="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  10360. <summary>
  10361. Returns whether this <c>Geometry</c> is greater than, equal to,
  10362. or less than another <c>Geometry</c> of the same class.
  10363. using the given <see cref="T:System.Collections.Generic.IComparer`1"/>.
  10364. </summary>
  10365. <param name="o">A <c>Geometry</c> having the same class as this <c>Geometry</c></param>
  10366. <param name="comp">The comparer</param>
  10367. <returns>
  10368. A positive number, 0, or a negative number, depending on whether
  10369. this object is greater than, equal to, or less than <c>o</c>, as
  10370. defined in "Normal Form For Geometry" in the JTS Technical
  10371. Specifications
  10372. </returns>
  10373. </member>
  10374. <member name="M:NetTopologySuite.Geometries.Geometry.Compare(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry},System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
  10375. <summary>
  10376. Returns the first non-zero result of <c>CompareTo</c> encountered as
  10377. the two <c>Collection</c>s are iterated over. If, by the time one of
  10378. the iterations is complete, no non-zero result has been encountered,
  10379. returns 0 if the other iteration is also complete. If <c>b</c>
  10380. completes before <c>a</c>, a positive number is returned; if a
  10381. before b, a negative number.
  10382. </summary>
  10383. <param name="a">A <c>Collection</c> of <c>IComparable</c>s.</param>
  10384. <param name="b">A <c>Collection</c> of <c>IComparable</c>s.</param>
  10385. <returns>The first non-zero <c>compareTo</c> result, if any; otherwise, zero.</returns>
  10386. </member>
  10387. <member name="M:NetTopologySuite.Geometries.Geometry.Equal(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  10388. <summary>
  10389. </summary>
  10390. <param name="a"></param>
  10391. <param name="b"></param>
  10392. <param name="tolerance"></param>
  10393. <returns></returns>
  10394. </member>
  10395. <member name="P:NetTopologySuite.Geometries.Geometry.SortIndex">
  10396. <summary>
  10397. Gets a value to sort the geometry
  10398. </summary>
  10399. <remarks>
  10400. NOTE:<br/>
  10401. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  10402. In order not to break binary compatibility we did not follow.
  10403. </remarks>
  10404. </member>
  10405. <member name="M:NetTopologySuite.Geometries.Geometry.CreatePointFromInternalCoord(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  10406. <summary>
  10407. </summary>
  10408. <param name="coord"></param>
  10409. <param name="exemplar"></param>
  10410. <returns></returns>
  10411. </member>
  10412. <member name="P:NetTopologySuite.Geometries.Geometry.IsRectangle">
  10413. <summary>
  10414. Tests whether this is a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
  10415. </summary>
  10416. <returns><c>true</c> if the geometry is a rectangle.</returns>
  10417. <remarks>Polygon overrides to check for actual rectangle.</remarks>
  10418. </member>
  10419. <member name="F:NetTopologySuite.Geometries.Geometry.DefaultFactory">
  10420. <summary>
  10421. A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.Geometry.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed" />.
  10422. </summary>
  10423. <seealso cref="F:NetTopologySuite.Geometries.GeometryFactory.Default" />
  10424. <seealso cref="F:NetTopologySuite.Geometries.GeometryFactory.Fixed"/>
  10425. </member>
  10426. <member name="T:NetTopologySuite.Geometries.GeometryCollection">
  10427. <summary>
  10428. Basic implementation of <c>GeometryCollection</c>.
  10429. </summary>
  10430. </member>
  10431. <member name="F:NetTopologySuite.Geometries.GeometryCollection.Empty">
  10432. <summary>
  10433. Represents an empty <c>GeometryCollection</c>.
  10434. </summary>
  10435. </member>
  10436. <member name="F:NetTopologySuite.Geometries.GeometryCollection._geometries">
  10437. <summary>
  10438. Internal representation of this <c>GeometryCollection</c>.
  10439. </summary>
  10440. </member>
  10441. <member name="M:NetTopologySuite.Geometries.GeometryCollection.#ctor(NetTopologySuite.Geometries.Geometry[])">
  10442. <summary>
  10443. </summary>
  10444. <param name="geometries">
  10445. The <c>Geometry</c>s for this <c>GeometryCollection</c>,
  10446. or <c>null</c> or an empty array to create the empty
  10447. point. Elements may be empty <c>Geometry</c>s,
  10448. but not <c>null</c>s.
  10449. </param>
  10450. <remarks>
  10451. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  10452. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  10453. </remarks>
  10454. </member>
  10455. <member name="M:NetTopologySuite.Geometries.GeometryCollection.#ctor(NetTopologySuite.Geometries.Geometry[],NetTopologySuite.Geometries.GeometryFactory)">
  10456. <summary>
  10457. </summary>
  10458. <param name="geometries">
  10459. The <c>Geometry</c>s for this <c>GeometryCollection</c>,
  10460. or <c>null</c> or an empty array to create the empty
  10461. point. Elements may be empty <c>Geometry</c>s,
  10462. but not <c>null</c>s.
  10463. </param>
  10464. <param name="factory"></param>
  10465. </member>
  10466. <member name="P:NetTopologySuite.Geometries.GeometryCollection.SortIndex">
  10467. <summary>
  10468. Gets a value to sort the geometry
  10469. </summary>
  10470. <remarks>
  10471. NOTE:<br/>
  10472. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  10473. In order not to break binary compatibility we did not follow.
  10474. </remarks>
  10475. </member>
  10476. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Coordinate">
  10477. <inheritdoc/>
  10478. </member>
  10479. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Coordinates">
  10480. <summary>
  10481. Collects all coordinates of all subgeometries into an Array.
  10482. Note that while changes to the coordinate objects themselves
  10483. may modify the Geometries in place, the returned Array as such
  10484. is only a temporary container which is not synchronized back.
  10485. </summary>
  10486. <returns>The collected coordinates.</returns>
  10487. </member>
  10488. <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
  10489. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.GetOrdinates(NetTopologySuite.Geometries.Ordinate)"/>
  10490. </member>
  10491. <member name="P:NetTopologySuite.Geometries.GeometryCollection.IsEmpty">
  10492. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.IsEmpty"/>
  10493. </member>
  10494. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Dimension">
  10495. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.Dimension"/>
  10496. </member>
  10497. <member name="M:NetTopologySuite.Geometries.GeometryCollection.HasDimension(NetTopologySuite.Geometries.Dimension)">
  10498. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
  10499. </member>
  10500. <member name="P:NetTopologySuite.Geometries.GeometryCollection.BoundaryDimension">
  10501. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.BoundaryDimension"/>
  10502. </member>
  10503. <member name="P:NetTopologySuite.Geometries.GeometryCollection.NumGeometries">
  10504. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.NumGeometries"/>
  10505. </member>
  10506. <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetGeometryN(System.Int32)">
  10507. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.GetGeometryN(System.Int32)"/>
  10508. </member>
  10509. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Geometries">
  10510. <summary>
  10511. </summary>
  10512. </member>
  10513. <member name="P:NetTopologySuite.Geometries.GeometryCollection.NumPoints">
  10514. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.NumPoints"/>
  10515. </member>
  10516. <member name="P:NetTopologySuite.Geometries.GeometryCollection.GeometryType">
  10517. <summary>
  10518. Returns the name of this object's interface.
  10519. </summary>
  10520. <returns>"GeometryCollection"</returns>
  10521. </member>
  10522. <member name="P:NetTopologySuite.Geometries.GeometryCollection.OgcGeometryType">
  10523. <summary>
  10524. Gets the OGC geometry type
  10525. </summary>
  10526. </member>
  10527. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Boundary">
  10528. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.Boundary"/>
  10529. </member>
  10530. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Area">
  10531. <summary>
  10532. Returns the area of this <c>GeometryCollection</c>.
  10533. </summary>
  10534. </member>
  10535. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Length">
  10536. <summary>
  10537. Returns the length of this <c>GeometryCollection</c>.
  10538. </summary>
  10539. </member>
  10540. <member name="M:NetTopologySuite.Geometries.GeometryCollection.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  10541. <summary>
  10542. </summary>
  10543. <param name="other"></param>
  10544. <param name="tolerance"></param>
  10545. <returns></returns>
  10546. </member>
  10547. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
  10548. <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
  10549. </member>
  10550. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
  10551. <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
  10552. </member>
  10553. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
  10554. <inheritdoc />
  10555. </member>
  10556. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
  10557. <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryFilter)"/>
  10558. </member>
  10559. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
  10560. <inheritdoc cref="M:NetTopologySuite.Geometries.GeometryCollection.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)"/>
  10561. </member>
  10562. <member name="M:NetTopologySuite.Geometries.GeometryCollection.CopyInternal">
  10563. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  10564. </member>
  10565. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Normalize">
  10566. <summary>
  10567. </summary>
  10568. </member>
  10569. <member name="M:NetTopologySuite.Geometries.GeometryCollection.ComputeEnvelopeInternal">
  10570. <summary>
  10571. </summary>
  10572. <returns></returns>
  10573. </member>
  10574. <member name="M:NetTopologySuite.Geometries.GeometryCollection.CompareToSameClass(System.Object)">
  10575. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)"/>
  10576. </member>
  10577. <member name="M:NetTopologySuite.Geometries.GeometryCollection.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  10578. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})"/>
  10579. </member>
  10580. <member name="P:NetTopologySuite.Geometries.GeometryCollection.IsHomogeneous">
  10581. <summary>
  10582. Return <c>true</c> if all features in collection are of the same type.
  10583. </summary>
  10584. </member>
  10585. <member name="M:NetTopologySuite.Geometries.GeometryCollection.GetEnumerator">
  10586. <inheritdoc />
  10587. </member>
  10588. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Item(System.Int32)">
  10589. <summary>
  10590. Returns the iTh element in the collection.
  10591. </summary>
  10592. <param name="i"></param>
  10593. <returns></returns>
  10594. </member>
  10595. <member name="M:NetTopologySuite.Geometries.GeometryCollection.Reverse">
  10596. <summary>
  10597. Creates a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> with
  10598. every component reversed.
  10599. The order of the components in the collection are not reversed.
  10600. </summary>
  10601. <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></returns> in the reverse order
  10602. </member>
  10603. <member name="M:NetTopologySuite.Geometries.GeometryCollection.ReverseInternal">
  10604. <summary>
  10605. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>GeometryCollection</c>s.
  10606. </summary>
  10607. <returns>A reversed geometry</returns>
  10608. </member>
  10609. <member name="P:NetTopologySuite.Geometries.GeometryCollection.Count">
  10610. <summary>
  10611. Returns the number of geometries contained by this <see cref="T:NetTopologySuite.Geometries.GeometryCollection" />.
  10612. </summary>
  10613. </member>
  10614. <member name="T:NetTopologySuite.Geometries.GeometryCollectionEnumerator">
  10615. <summary>
  10616. Iterates over all <c>Geometry</c>'s in a <c>GeometryCollection</c>.
  10617. Implements a pre-order depth-first traversal of the <c>GeometryCollection</c>
  10618. (which may be nested). The original <c>GeometryCollection</c> is
  10619. returned as well (as the first object), as are all sub-collections. It is
  10620. simple to ignore the <c>GeometryCollection</c> objects if they are not
  10621. needed.
  10622. </summary>
  10623. </member>
  10624. <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._parent">
  10625. <summary>
  10626. The <c>GeometryCollection</c> being iterated over.
  10627. </summary>
  10628. </member>
  10629. <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._atStart">
  10630. <summary>
  10631. Indicates whether or not the first element (the <c>GeometryCollection</c>)
  10632. has been returned.
  10633. </summary>
  10634. </member>
  10635. <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._max">
  10636. <summary>
  10637. The number of <c>Geometry</c>s in the the <c>GeometryCollection</c>.
  10638. </summary>
  10639. </member>
  10640. <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._index">
  10641. <summary>
  10642. The index of the <c>Geometry</c> that will be returned when <c>next</c>
  10643. is called.
  10644. </summary>
  10645. </member>
  10646. <member name="F:NetTopologySuite.Geometries.GeometryCollectionEnumerator._subcollectionEnumerator">
  10647. <summary>
  10648. The iterator over a nested <c>GeometryCollection</c>, or <c>null</c>
  10649. if this <c>GeometryCollectionIterator</c> is not currently iterating
  10650. over a nested <c>GeometryCollection</c>.
  10651. </summary>
  10652. </member>
  10653. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.#ctor(NetTopologySuite.Geometries.Geometry)">
  10654. <summary>
  10655. Constructs an iterator over the given <c>GeometryCollection</c>.
  10656. </summary>
  10657. <param name="parent">
  10658. The collection over which to iterate; also, the first
  10659. element returned by the iterator.
  10660. </param>
  10661. </member>
  10662. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.MoveNext">
  10663. <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>>
  10664. </member>
  10665. <member name="P:NetTopologySuite.Geometries.GeometryCollectionEnumerator.System#Collections#IEnumerator#Current">
  10666. <inheritdoc cref="P:System.Collections.IEnumerator.Current"/>>
  10667. <remarks> The parent GeometryCollection is the first object returned!</remarks>
  10668. </member>
  10669. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Reset">
  10670. <inheritdoc cref="M:System.Collections.IEnumerator.Reset"/>
  10671. </member>
  10672. <member name="P:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Current">
  10673. <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
  10674. </member>
  10675. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.Dispose">
  10676. <inheritdoc cref="M:System.IDisposable.Dispose"/>
  10677. </member>
  10678. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.GetEnumerator">
  10679. <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
  10680. </member>
  10681. <member name="M:NetTopologySuite.Geometries.GeometryCollectionEnumerator.System#Collections#IEnumerable#GetEnumerator">
  10682. <inheritdoc cref="M:System.Collections.IEnumerable.GetEnumerator"/>
  10683. </member>
  10684. <member name="T:NetTopologySuite.Geometries.FilterMethod">
  10685. <summary>
  10686. Delegate function declaration to handle filter operation
  10687. </summary>
  10688. <param name="geom">The geometry to filter</param>
  10689. </member>
  10690. <member name="T:NetTopologySuite.Geometries.GeometryComponentFilter">
  10691. <summary>
  10692. An <see cref="T:NetTopologySuite.Geometries.IGeometryComponentFilter"/> implementation that applies filtering with the provided <see cref="T:NetTopologySuite.Geometries.FilterMethod"/>
  10693. </summary>
  10694. </member>
  10695. <member name="M:NetTopologySuite.Geometries.GeometryComponentFilter.#ctor(NetTopologySuite.Geometries.FilterMethod)">
  10696. <summary>
  10697. Creates an instance of this class
  10698. </summary>
  10699. <param name="filterMethod">The filter method to be used</param>
  10700. </member>
  10701. <member name="T:NetTopologySuite.Geometries.GeometryFactory">
  10702. <summary>
  10703. Supplies a set of utility methods for building Geometry objects
  10704. from lists of Coordinates.
  10705. </summary>
  10706. <remarks>
  10707. Note that the factory constructor methods do <b>not</b> change the input coordinates in any way.
  10708. In particular, they are not rounded to the supplied <c>PrecisionModel</c>.
  10709. It is assumed that input Coordinates meet the given precision.
  10710. <para/>
  10711. Instances of this class are thread-safe.
  10712. </remarks>
  10713. </member>
  10714. <member name="F:NetTopologySuite.Geometries.GeometryFactory.Default">
  10715. <summary>
  10716. A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />c
  10717. <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" />.
  10718. </summary>
  10719. </member>
  10720. <member name="F:NetTopologySuite.Geometries.GeometryFactory.Floating">
  10721. <summary>
  10722. A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
  10723. <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" />.
  10724. </summary>
  10725. <remarks>A shortcut for <see cref="F:NetTopologySuite.Geometries.GeometryFactory.Default" />.</remarks>
  10726. </member>
  10727. <member name="F:NetTopologySuite.Geometries.GeometryFactory.FloatingSingle">
  10728. <summary>
  10729. A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
  10730. <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle" />.
  10731. </summary>
  10732. </member>
  10733. <member name="F:NetTopologySuite.Geometries.GeometryFactory.Fixed">
  10734. <summary>
  10735. A predefined <see cref="T:NetTopologySuite.Geometries.GeometryFactory" /> with <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel" />
  10736. <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed" />.
  10737. </summary>
  10738. </member>
  10739. <member name="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel">
  10740. <summary>
  10741. Returns the PrecisionModel that Geometries created by this factory
  10742. will be associated with.
  10743. </summary>
  10744. </member>
  10745. <member name="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory">
  10746. <summary>
  10747. Gets a value indicating the factory to use for creating <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
  10748. </summary>
  10749. </member>
  10750. <member name="P:NetTopologySuite.Geometries.GeometryFactory.SRID">
  10751. <summary>
  10752. The SRID value defined for this factory.
  10753. </summary>
  10754. </member>
  10755. <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryOverlay">
  10756. <summary>
  10757. Gets a value indicating the geometry overlay function set to use
  10758. </summary>
  10759. <returns>A geometry overlay function set.</returns>
  10760. </member>
  10761. <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryRelate">
  10762. <summary>
  10763. Gets a value indicating the geometry relation function set to use
  10764. </summary>
  10765. <returns>A geometry relation function set.</returns>
  10766. </member>
  10767. <member name="P:NetTopologySuite.Geometries.GeometryFactory.ElevationModel">
  10768. <summary>
  10769. Gets a value indicating the elevation model that is attached to this geometry factory
  10770. </summary>
  10771. </member>
  10772. <member name="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateEqualityComparer">
  10773. <summary>
  10774. Gets a value indicating the geometry overlay function set to use
  10775. </summary>
  10776. <returns>A geometry overlay function set.</returns>
  10777. </member>
  10778. <member name="P:NetTopologySuite.Geometries.GeometryFactory.GeometryServices">
  10779. <summary>
  10780. Gets a value indicating the <see cref="T:NetTopologySuite.NtsGeometryServices"/> object that created this factory.
  10781. </summary>
  10782. </member>
  10783. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePointFromInternalCoord(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  10784. <summary>
  10785. </summary>
  10786. <param name="coord"></param>
  10787. <param name="exemplar"></param>
  10788. <returns></returns>
  10789. </member>
  10790. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
  10791. <summary>
  10792. Constructs a <c>GeometryFactory</c> that generates Geometries having the given
  10793. <paramref name="precisionModel">precision model</paramref>, <paramref name="srid">spatial-reference ID</paramref>,
  10794. <paramref name="coordinateSequenceFactory">CoordinateSequence</paramref> and
  10795. <paramref name="services"><c>NtsGeometryServices</c></paramref>.
  10796. </summary>
  10797. <param name="precisionModel">A precision model</param>
  10798. <param name="srid">A spatial reference id</param>
  10799. <param name="coordinateSequenceFactory">A coordinate sequence factory</param>
  10800. <param name="services"><c>NtsGeometryServices</c> object creating this factory</param>
  10801. </member>
  10802. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
  10803. <summary>
  10804. Constructs a <c>GeometryFactory</c> that generates Geometries having the given
  10805. <paramref name="precisionModel">precision model</paramref>, <paramref name="elevationModel"/>,
  10806. <paramref name="srid">spatial-reference ID</paramref>, <paramref name="coordinateSequenceFactory">CoordinateSequence</paramref> and
  10807. <paramref name="services"><c>NtsGeometryServices</c></paramref>.
  10808. </summary>
  10809. <param name="precisionModel">A precision model</param>
  10810. <param name="elevationModel">An elevation model. May be <c>null</c></param>
  10811. <param name="srid">A spatial reference id</param>
  10812. <param name="coordinateSequenceFactory">A coordinate sequence factory</param>
  10813. <param name="services"><c>NtsGeometryServices</c> object creating this factory</param>
  10814. </member>
  10815. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  10816. <summary>
  10817. Constructs a GeometryFactory that generates Geometries having the given
  10818. PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
  10819. </summary>
  10820. </member>
  10821. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  10822. <summary>
  10823. Constructs a GeometryFactory that generates Geometries having the given
  10824. CoordinateSequence implementation, a double-precision floating PrecisionModel and a
  10825. spatial-reference ID of 0.
  10826. </summary>
  10827. </member>
  10828. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  10829. <summary>
  10830. Constructs a GeometryFactory that generates Geometries having the given
  10831. {PrecisionModel} and the default CoordinateSequence
  10832. implementation.
  10833. </summary>
  10834. <param name="precisionModel">The PrecisionModel to use.</param>
  10835. </member>
  10836. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
  10837. <summary>
  10838. Constructs a GeometryFactory that generates Geometries having the given
  10839. <c>PrecisionModel</c> and spatial-reference ID, and the default CoordinateSequence
  10840. implementation.
  10841. </summary>
  10842. <param name="precisionModel">The PrecisionModel to use.</param>
  10843. <param name="srid">The SRID to use.</param>
  10844. </member>
  10845. <member name="M:NetTopologySuite.Geometries.GeometryFactory.#ctor">
  10846. <summary>
  10847. Constructs a GeometryFactory that generates Geometries having a floating
  10848. PrecisionModel and a spatial-reference ID of 0.
  10849. </summary>
  10850. </member>
  10851. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToPointArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10852. <summary>
  10853. Converts the <c>IEnumerable</c> to an array.
  10854. </summary>
  10855. <param name="points">The <c>IEnumerable</c> of Points to convert.</param>
  10856. <returns>The <c>IEnumerable</c> in array format.</returns>
  10857. </member>
  10858. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometryArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10859. <summary>
  10860. Converts the <c>IEnumerable</c> to an array.
  10861. </summary>
  10862. <param name="geometries">The <c>IEnumerable</c> of <c>Geometry</c>'s to convert.</param>
  10863. <returns>The <c>IEnumerable</c> in array format.</returns>
  10864. </member>
  10865. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToLineStringArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10866. <summary>
  10867. Converts the <c>IEnumerable</c> to an array.
  10868. </summary>
  10869. <param name="lineStrings">The <c>IEnumerable</c> of LineStrings to convert.</param>
  10870. <returns>The <c>IEnumerable</c> in array format.</returns>
  10871. </member>
  10872. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToLinearRingArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10873. <summary>
  10874. Converts the <c>IEnumerable</c> to an array.
  10875. </summary>
  10876. <param name="linearRings">The <c>IEnumerable</c> of LinearRings to convert.</param>
  10877. <returns>The <c>IEnumerable</c> in array format.</returns>
  10878. </member>
  10879. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToPolygonArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10880. <summary>
  10881. Converts the <c>IEnumerable</c> to an array.
  10882. </summary>
  10883. <param name="polygons">The <c>IEnumerable</c> of Polygons to convert.</param>
  10884. <returns>The <c>IEnumerable</c> in array format.</returns>
  10885. </member>
  10886. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiPointArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10887. <summary>
  10888. Converts the <c>IEnumerable</c> to an array.
  10889. </summary>
  10890. <param name="multiPoints">The <c>IEnumerable</c> of MultiPoints to convert.</param>
  10891. <returns>The <c>IEnumerable</c> in array format.</returns>
  10892. </member>
  10893. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiLineStringArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10894. <summary>
  10895. Converts the <c>IEnumerable</c> to an array.
  10896. </summary>
  10897. <param name="multiLineStrings">The <c>IEnumerable</c> of MultiLineStrings to convert.</param>
  10898. <returns>The <c>IEnumerable</c> in array format.</returns>
  10899. </member>
  10900. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToMultiPolygonArray(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  10901. <summary>
  10902. Converts the <c>IEnumerable</c> to an array.
  10903. </summary>
  10904. <param name="multiPolygons">The <c>IEnumerable</c> of MultiPolygons to convert.</param>
  10905. <returns>The <c>IEnumerable</c> in array format.</returns>
  10906. </member>
  10907. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)">
  10908. <summary>
  10909. Creates a <see cref="T:NetTopologySuite.Geometries.Geometry"/> with the same extent as the given envelope.
  10910. </summary>
  10911. <remarks>
  10912. <para>
  10913. The Geometry returned is guaranteed to be valid.
  10914. To provide this behavior, the following cases occur:
  10915. </para>
  10916. <para>
  10917. If the <c>Envelope</c> is:
  10918. <ul>
  10919. <li>null returns an empty <see cref="T:NetTopologySuite.Geometries.Point"/></li>
  10920. <li>a point returns a non-empty <see cref="T:NetTopologySuite.Geometries.Point"/></li>
  10921. <li>a line returns a two-point <see cref="T:NetTopologySuite.Geometries.LineString"/></li>
  10922. <li>a rectangle returns a <see cref="T:NetTopologySuite.Geometries.Polygon"/> whose points are (minx, maxy), (minx, maxy), (maxx, maxy), (maxx, miny).</li>
  10923. </ul>
  10924. </para>
  10925. </remarks>
  10926. <param name="envelope">The <c>Envelope</c></param>
  10927. <returns>
  10928. An empty <c>Point</c> (for null <c>Envelope</c>s), a <c>Point</c> (when min x = max x and min y = max y) or a <c>Polygon</c> (in all other cases)
  10929. </returns>
  10930. </member>
  10931. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint">
  10932. <summary>
  10933. Creates an empty Point
  10934. </summary>
  10935. <returns>
  10936. An empty Point
  10937. </returns>
  10938. </member>
  10939. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint(NetTopologySuite.Geometries.Coordinate)">
  10940. <summary>
  10941. Creates a Point using the given Coordinate.
  10942. A <c>null</c> coordinate creates an empty Geometry.
  10943. </summary>
  10944. <param name="coordinate">a Coordinate, or null</param>
  10945. <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> object</returns>
  10946. </member>
  10947. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePoint(NetTopologySuite.Geometries.CoordinateSequence)">
  10948. <summary>
  10949. Creates a <c>Point</c> using the given <c>CoordinateSequence</c>; a null or empty
  10950. CoordinateSequence will create an empty Point.
  10951. </summary>
  10952. <param name="coordinates">a CoordinateSequence (possibly empty), or null</param>
  10953. <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> object</returns>
  10954. </member>
  10955. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString">
  10956. <summary>
  10957. Creates an empty LineString
  10958. </summary>
  10959. <returns>An empty LineString</returns>
  10960. </member>
  10961. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString(NetTopologySuite.Geometries.Coordinate[])">
  10962. <summary>
  10963. Creates a LineString using the given Coordinates.
  10964. A null or empty array creates an empty LineString.
  10965. </summary>
  10966. <param name="coordinates">An array without null elements, or an empty array, or null.</param>
  10967. <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> object</returns>
  10968. </member>
  10969. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLineString(NetTopologySuite.Geometries.CoordinateSequence)">
  10970. <summary>
  10971. Creates a LineString using the given CoordinateSequence.
  10972. A null or empty CoordinateSequence creates an empty LineString.
  10973. </summary>
  10974. <param name="coordinates">A CoordinateSequence (possibly empty), or null.</param>
  10975. <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> object</returns>
  10976. </member>
  10977. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing">
  10978. <summary>Creates an empty LinearRing</summary>
  10979. <returns>An empty LinearRing</returns>
  10980. </member>
  10981. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing(NetTopologySuite.Geometries.Coordinate[])">
  10982. <summary>
  10983. Creates a <c>LinearRing</c> using the given <c>Coordinates</c>; a null or empty array
  10984. creates an empty LinearRing. The points must form a closed and simple
  10985. linestring. Consecutive points must not be equal.
  10986. </summary>
  10987. <param name="coordinates">An array without null elements, or an empty array, or null.</param>
  10988. <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> object</returns>
  10989. <exception cref="T:System.ArgumentException"> If the ring is not closed, or has too few points</exception>
  10990. </member>
  10991. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateLinearRing(NetTopologySuite.Geometries.CoordinateSequence)">
  10992. <summary>
  10993. Creates a <c>LinearRing</c> using the given <c>CoordinateSequence</c>; a null or empty CoordinateSequence
  10994. creates an empty LinearRing. The points must form a closed and simple
  10995. linestring. Consecutive points must not be equal.
  10996. </summary>
  10997. <param name="coordinates">A CoordinateSequence (possibly empty), or null.</param>
  10998. <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> object</returns>
  10999. <exception cref="T:System.ArgumentException"> If the ring is not closed, or has too few points</exception>
  11000. </member>
  11001. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon">
  11002. <summary>Creates an empty Polygon</summary>
  11003. <returns>An empty Polygon</returns>
  11004. </member>
  11005. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
  11006. <summary>
  11007. Constructs a <c>Polygon</c> with the given exterior boundary and
  11008. interior boundaries.
  11009. </summary>
  11010. <param name="shell">
  11011. The outer boundary of the new <c>Polygon</c>, or
  11012. <c>null</c> or an empty <c>LinearRing</c> if
  11013. the empty point is to be created.
  11014. </param>
  11015. <param name="holes">
  11016. The inner boundaries of the new <c>Polygon</c>, or
  11017. <c>null</c> or empty <c>LinearRing</c> s if
  11018. the empty point is to be created.
  11019. </param>
  11020. <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
  11021. </member>
  11022. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)">
  11023. <summary>
  11024. Constructs a <c>Polygon</c> with the given exterior boundary.
  11025. </summary>
  11026. <param name="coordinates">the outer boundary of the new <c>Polygon</c>, or
  11027. <c>null</c> or an empty <c>LinearRing</c> if
  11028. the empty geometry is to be created.</param>
  11029. <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
  11030. <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
  11031. </member>
  11032. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])">
  11033. <summary>
  11034. Constructs a <c>Polygon</c> with the given exterior boundary.
  11035. </summary>
  11036. <param name="coordinates">the outer boundary of the new <c>Polygon</c>, or
  11037. <c>null</c> or an empty <c>LinearRing</c> if
  11038. the empty geometry is to be created.</param>
  11039. <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
  11040. <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
  11041. </member>
  11042. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)">
  11043. <summary>
  11044. Constructs a <c>Polygon</c> with the given exterior boundary.
  11045. </summary>
  11046. <param name="shell">the outer boundary of the new <c>Polygon</c>, or
  11047. <c>null</c> or an empty <c>LinearRing</c> if
  11048. the empty geometry is to be created.</param>
  11049. <returns>the created Polygon</returns>
  11050. <exception cref="T:System.ArgumentException">If the boundary ring is invalid</exception>
  11051. </member>
  11052. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint">
  11053. <summary>Creates an empty MultiPoint</summary>
  11054. <returns>An empty MultiPoint</returns>
  11055. </member>
  11056. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint(NetTopologySuite.Geometries.Point[])">
  11057. <summary>
  11058. Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given Points.
  11059. A null or empty array will create an empty MultiPoint.
  11060. </summary>
  11061. <param name="point">An array (without null elements), or an empty array, or <c>null</c>.</param>
  11062. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
  11063. </member>
  11064. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPointFromCoords(NetTopologySuite.Geometries.Coordinate[])">
  11065. <summary>
  11066. Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given Coordinates.
  11067. A null or empty array will create an empty MultiPoint.
  11068. </summary>
  11069. <param name="coordinates">An array (without null elements), or an empty array, or <c>null</c></param>
  11070. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
  11071. </member>
  11072. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPoint(NetTopologySuite.Geometries.CoordinateSequence)">
  11073. <summary>
  11074. Creates a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> using the given CoordinateSequence.
  11075. A null or empty CoordinateSequence will create an empty MultiPoint.
  11076. </summary>
  11077. <param name="coordinates">A CoordinateSequence (possibly empty), or <c>null</c>.</param>
  11078. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> object</returns>
  11079. </member>
  11080. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiLineString">
  11081. <summary>Creates an empty MultiLineString</summary>
  11082. <returns>An empty MultiLineString</returns>
  11083. </member>
  11084. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiLineString(NetTopologySuite.Geometries.LineString[])">
  11085. <summary>
  11086. Creates a <c>MultiLineString</c> using the given <c>LineStrings</c>; a null or empty
  11087. array will create an empty MultiLineString.
  11088. </summary>
  11089. <param name="lineStrings">LineStrings, each of which may be empty but not null-</param>
  11090. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> object</returns>
  11091. </member>
  11092. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon">
  11093. <summary>Creates an empty MultiPolygon</summary>
  11094. <returns>An empty MultiPolygon</returns>
  11095. </member>
  11096. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])">
  11097. <summary>
  11098. Creates a <c>MultiPolygon</c> using the given <c>Polygons</c>; a null or empty array
  11099. will create an empty Polygon. The polygons must conform to the
  11100. assertions specified in the <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
  11101. Specification for SQL.
  11102. </summary>
  11103. <param name="polygons">Polygons, each of which may be empty but not null.</param>
  11104. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> object</returns>
  11105. </member>
  11106. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometryCollection">
  11107. <summary>Creates an empty GeometryCollection</summary>
  11108. <returns>An empty GeometryCollection</returns>
  11109. </member>
  11110. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometryCollection(NetTopologySuite.Geometries.Geometry[])">
  11111. <summary>
  11112. Creates a <c>GeometryCollection</c> using the given <c>Geometries</c>; a null or empty
  11113. array will create an empty GeometryCollection.
  11114. </summary>
  11115. <param name="geometries">an array of Geometries, each of which may be empty but not null, or null</param>
  11116. <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> object</returns>
  11117. </member>
  11118. <member name="M:NetTopologySuite.Geometries.GeometryFactory.BuildGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  11119. <summary>
  11120. Build an appropriate <c>Geometry</c>, <c>MultiGeometry</c>, or
  11121. <c>GeometryCollection</c> to contain the <c>Geometry</c>s in
  11122. it.
  11123. </summary>
  11124. <remarks>
  11125. If <c>geomList</c> contains a single <c>Polygon</c>,
  11126. the <c>Polygon</c> is returned.<br/>
  11127. If <c>geomList</c> contains several <c>Polygon</c>s, a
  11128. <c>MultiPolygon</c> is returned.<br/>
  11129. If <c>geomList</c> contains some <c>Polygon</c>s and
  11130. some <c>LineString</c>s, a <c>GeometryCollection</c> is
  11131. returned.<br/>
  11132. If <c>geomList</c> is empty, an empty <c>GeometryCollection</c>
  11133. is returned.
  11134. Note that this method does not "flatten" Geometries in the input, and hence if
  11135. any MultiGeometries are contained in the input a GeometryCollection containing
  11136. them will be returned.
  11137. </remarks>
  11138. <param name="geomList">The <c>Geometry</c> to combine.</param>
  11139. <returns>
  11140. A <see cref="T:NetTopologySuite.Geometries.Geometry"/> of the "smallest", "most type-specific"
  11141. class that can contain the elements of <c>geomList</c>.
  11142. </returns>
  11143. </member>
  11144. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateEmpty(NetTopologySuite.Geometries.Dimension)">
  11145. <summary>
  11146. Creates an empty atomic geometry of the given dimension.
  11147. If passed a dimension of <see cref="F:NetTopologySuite.Geometries.Dimension.False"/>
  11148. will create an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
  11149. </summary>
  11150. <param name="dimension">The required dimension (<see cref="F:NetTopologySuite.Geometries.Dimension.False"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Point"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/> or <see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/>)</param>
  11151. <returns>An empty atomic geometry of given dimension</returns>
  11152. </member>
  11153. <member name="M:NetTopologySuite.Geometries.GeometryFactory.CreateGeometry(NetTopologySuite.Geometries.Geometry)">
  11154. <summary>
  11155. Creates a deep copy of the input <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  11156. The <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/> defined for this factory
  11157. is used to copy the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s
  11158. of the input geometry.
  11159. <para/>
  11160. This is a convenient way to change the <tt>CoordinateSequence</tt>
  11161. used to represent a geometry, or to change the
  11162. factory used for a geometry.
  11163. <para/>
  11164. <see cref="M:NetTopologySuite.Geometries.Geometry.Copy"/> can also be used to make a deep copy,
  11165. but it does not allow changing the CoordinateSequence type.
  11166. </summary>
  11167. <param name="g">The geometry</param>
  11168. <returns>A deep copy of the input geometry, using the CoordinateSequence type of this factory</returns>
  11169. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Copy"/>
  11170. </member>
  11171. <member name="M:NetTopologySuite.Geometries.GeometryFactory.WithSRID(System.Int32)">
  11172. <summary>
  11173. Returns a new <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> whose <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/> is
  11174. the given value and whose other values and behavior are, as near as we possibly can make
  11175. it, the same as our own.
  11176. </summary>
  11177. <param name="srid">
  11178. The <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/> for the result.
  11179. </param>
  11180. <returns>
  11181. The cloned instance.
  11182. </returns>
  11183. </member>
  11184. <member name="M:NetTopologySuite.Geometries.GeometryFactory.ToString">
  11185. <inheritdoc cref="M:System.Object.ToString"/>
  11186. </member>
  11187. <member name="T:NetTopologySuite.Geometries.GeometryFactoryEx">
  11188. <summary>
  11189. An extended <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that is capable of enforcing a ring orientation for polygons.
  11190. </summary>
  11191. </member>
  11192. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultShellRingOrientation">
  11193. <summary>
  11194. Gets or sets the default polygon shell ring orientation that is used when nothing else has been set.
  11195. </summary>
  11196. </member>
  11197. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultPrecisionModel">
  11198. <summary>
  11199. Gets or sets the default precision model to use with these geometry factories
  11200. </summary>
  11201. </member>
  11202. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultCoordinateSequenceFactory">
  11203. <summary>
  11204. Gets or sets the default coordinate sequence factory to use with these geometry factories
  11205. </summary>
  11206. </member>
  11207. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.DefaultSRID">
  11208. <summary>
  11209. Gets or sets the default spatial reference id.
  11210. </summary>
  11211. </member>
  11212. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.NtsGeometryServices)">
  11213. <summary>
  11214. Constructs a GeometryFactory that generates Geometries having the given
  11215. PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
  11216. </summary>
  11217. </member>
  11218. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  11219. <summary>
  11220. Constructs a GeometryFactory that generates Geometries having the given
  11221. PrecisionModel, spatial-reference ID, and CoordinateSequence implementation.
  11222. </summary>
  11223. </member>
  11224. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  11225. <summary>
  11226. Constructs a GeometryFactory that generates Geometries having the given
  11227. CoordinateSequence implementation, a double-precision floating PrecisionModel and a
  11228. spatial-reference ID of 0.
  11229. </summary>
  11230. </member>
  11231. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  11232. <summary>
  11233. Constructs a GeometryFactory that generates Geometries having the given
  11234. {PrecisionModel} and the default CoordinateSequence
  11235. implementation.
  11236. </summary>
  11237. <param name="precisionModel">The PrecisionModel to use.</param>
  11238. </member>
  11239. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
  11240. <summary>
  11241. Constructs a GeometryFactory that generates Geometries having the given
  11242. <c>PrecisionModel</c> and spatial-reference ID, and the default CoordinateSequence
  11243. implementation.
  11244. </summary>
  11245. <param name="precisionModel">The PrecisionModel to use.</param>
  11246. <param name="srid">The SRID to use.</param>
  11247. </member>
  11248. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.#ctor">
  11249. <summary>
  11250. Constructs a GeometryFactory that generates Geometries having a floating
  11251. PrecisionModel and a spatial-reference ID of 0.
  11252. </summary>
  11253. </member>
  11254. <member name="F:NetTopologySuite.Geometries.GeometryFactoryEx._polygonShellRingOrientation">
  11255. <summary>
  11256. The polygon shell ring orientation enforced by this factory
  11257. </summary>
  11258. </member>
  11259. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing">
  11260. <summary>
  11261. Gets or sets a value indicating the ring orientation of the
  11262. <c>Polygon</c>'s exterior rings.<para>
  11263. If its value is <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare"/>, this
  11264. factory behaves just like the base <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  11265. </para>
  11266. </summary>
  11267. <remarks>
  11268. The setter of this property has to be used prior to any call
  11269. to <c>CreatePolygon</c>, <c>CreateMultiPolygon</c>, or
  11270. <c>ReplaceSRID</c></remarks>
  11271. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])"/>
  11272. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)"/>
  11273. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)"/>
  11274. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])"/>
  11275. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])"/>
  11276. </member>
  11277. <member name="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfInteriorRings">
  11278. <summary>
  11279. Gets a value indicating the ring orientation for the interior rings
  11280. </summary>
  11281. <remarks>
  11282. This value is always opposite of <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/>,
  11283. except when its value is <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare"/>.
  11284. </remarks>
  11285. </member>
  11286. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
  11287. <summary>
  11288. Constructs a <c>Polygon</c> with the given exterior boundary and
  11289. interior boundaries.
  11290. <para/>
  11291. The <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/> is enforced on the constructed polygon.
  11292. </summary>
  11293. <param name="shell">
  11294. The outer boundary of the new <c>Polygon</c>, or
  11295. <c>null</c> or an empty <c>LinearRing</c> if
  11296. the empty point is to be created.
  11297. </param>
  11298. <param name="holes">
  11299. The inner boundaries of the new <c>Polygon</c>, or
  11300. <c>null</c> or empty <c>LinearRing</c> s if
  11301. the empty point is to be created.
  11302. </param>
  11303. <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> object</returns>
  11304. </member>
  11305. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.CreateMultiPolygon(NetTopologySuite.Geometries.Polygon[])">
  11306. <summary>
  11307. Creates a <c>MultiPolygon</c> using the given <c>Polygons</c>; a null or empty array
  11308. will create an empty Polygon. The polygons must conform to the
  11309. assertions specified in the <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
  11310. Specification for SQL.<para/>
  11311. The <see cref="P:NetTopologySuite.Geometries.GeometryFactoryEx.OrientationOfExteriorRing"/> is enforced on each polygon.
  11312. </summary>
  11313. <param name="polygons">Polygons, each of which may be empty but not null.</param>
  11314. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> object</returns>
  11315. </member>
  11316. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.WithSRID(System.Int32)">
  11317. <inheritdoc />
  11318. </member>
  11319. <member name="M:NetTopologySuite.Geometries.GeometryFactoryEx.EnsureOrientation(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRingOrientation)">
  11320. <summary>
  11321. Utility function to enforce a specific ring orientation on a linear ring
  11322. </summary>
  11323. <param name="ring">The ring</param>
  11324. <param name="ringOrientation">The required orientation</param>
  11325. <returns>A ring</returns>
  11326. </member>
  11327. <member name="T:NetTopologySuite.Geometries.GeometryOverlay">
  11328. <summary>
  11329. A class that encapsulates geometry overlay functionality
  11330. </summary>
  11331. </member>
  11332. <member name="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy">
  11333. <summary>
  11334. Gets a value indicating a geometry overlay operation class that uses old NTS overlay operation set.
  11335. </summary>
  11336. </member>
  11337. <member name="P:NetTopologySuite.Geometries.GeometryOverlay.NG">
  11338. <summary>
  11339. Gets a value indicating a geometry overlay operation class that uses next-generation NTS overlay operation set.
  11340. </summary>
  11341. </member>
  11342. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  11343. <summary>
  11344. Computes a <c>Geometry</c> representing the overlay of geometries <c>a</c> and <c>b</c>
  11345. using the spatial function defined by <c>opCode</c>.
  11346. </summary>
  11347. <param name="a">The 1st geometry</param>
  11348. <param name="b">The 2nd geometry</param>
  11349. <param name="opCode">The spatial function for the overlay operation</param>
  11350. <returns>The computed geometry</returns>
  11351. </member>
  11352. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11353. <summary>
  11354. Computes a <c>Geometry</c> representing the point-set which is
  11355. common to both <c>a</c> and <c>b</c> Geometry.
  11356. </summary>
  11357. <param name="a">The 1st <c>Geometry</c></param>
  11358. <param name="b">The 2nd <c>Geometry</c></param>
  11359. <returns>A geometry representing the point-set common to the two <c>Geometry</c>s.</returns>
  11360. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Intersection(NetTopologySuite.Geometries.Geometry)"/>
  11361. </member>
  11362. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11363. <summary>
  11364. Computes a <c>Geometry</c> representing the point-set
  11365. which is contained in both input <c>Geometry</c>s .
  11366. </summary>
  11367. <param name="a">The 1st <c>Geometry</c></param>
  11368. <param name="b">The 2nd <c>Geometry</c></param>
  11369. <returns>A point-set combining the points of
  11370. <c>Geometry</c>'s <c>a</c> and <c>b</c>.
  11371. </returns>
  11372. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/>
  11373. </member>
  11374. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11375. <summary>
  11376. Computes a <c>Geometry</c> representing the closure of the point-set
  11377. of the points contained in this <c>Geometry</c> that are not contained in
  11378. the <c>other</c> Geometry.
  11379. </summary>
  11380. <param name="a">The 1st <c>Geometry</c></param>
  11381. <param name="b">The 2nd <c>Geometry</c></param>
  11382. <returns>
  11383. A Geometry representing the point-set difference
  11384. of <c>Geometry</c>'s <c>a</c> and <c>b</c>.
  11385. </returns>
  11386. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Difference(NetTopologySuite.Geometries.Geometry)"/>
  11387. </member>
  11388. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.SymmetricDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11389. <summary>
  11390. Computes a <c>Geometry</c> representing the closure of the point-set
  11391. which is the union of the points in <c>Geometry</c> <c>a</c> which are not
  11392. contained in the Geometry <c>b</c>,
  11393. with the points in the <c>b</c> Geometry not contained in the <c>Geometry</c> <c>a</c>.
  11394. </summary>
  11395. <param name="a">The 1st <c>Geometry</c></param>
  11396. <param name="b">The 2nd <c>Geometry</c></param>
  11397. <returns>
  11398. A Geometry representing the point-set symmetric difference
  11399. of <c>Geometry</c>'s <c>a</c> and <c>b</c>.
  11400. </returns>
  11401. <seealso cref="M:NetTopologySuite.Geometries.Geometry.SymmetricDifference(NetTopologySuite.Geometries.Geometry)"/>
  11402. </member>
  11403. <member name="M:NetTopologySuite.Geometries.GeometryOverlay.Union(NetTopologySuite.Geometries.Geometry)">
  11404. <summary>
  11405. Computes the union of all the elements in the <c>Geometry</c> <c>a</c>.
  11406. </summary>
  11407. <param name="a">The <c>Geometry</c></param>
  11408. <returns>The union of <c>a</c></returns>
  11409. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Union"/>
  11410. </member>
  11411. <member name="T:NetTopologySuite.Geometries.GeometryRelate">
  11412. <summary>
  11413. Class which provides the available Relate operations for <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
  11414. </summary>
  11415. <author>Felix Obermaier</author>
  11416. </member>
  11417. <member name="P:NetTopologySuite.Geometries.GeometryRelate.Legacy">
  11418. <summary>
  11419. Gets a value indicating a geometry relation predicate computation class that uses old NTS relate function set.
  11420. </summary>
  11421. </member>
  11422. <member name="P:NetTopologySuite.Geometries.GeometryRelate.NG">
  11423. <summary>
  11424. Gets a value indicating a geometry relation predicate computation class that uses next-generation NTS relate function set.
  11425. </summary>
  11426. </member>
  11427. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Intersects(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11428. <summary>
  11429. Tests if the input geometries <paramref name="a"/> and <paramref name="b"/> intersect.
  11430. <para/>
  11431. The <c>Intersects</c> predicate has the following equivalent definitions:
  11432. <list type="bullet">
  11433. <item><description>The two geometries have at least one point in common</description></item>
  11434. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11435. at least one of the patterns
  11436. <list type="bullet">
  11437. <item><description><c>[T********]</c></description></item>
  11438. <item><description><c>[*T*******]</c></description></item>
  11439. <item><description><c>[***T*****]</c></description></item>
  11440. <item><description><c>[****T****]</c></description></item>
  11441. </list>
  11442. <item><description><c>Disjoint() = false</c>
  11443. <br/>(<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item></description></item>
  11444. </list>
  11445. </summary>
  11446. <param name="a">The A input geometry</param>
  11447. <param name="b">The B input geometry</param>
  11448. <returns><c>true</c> if geometries <paramref name="a"/> and <paramref name="b"/> intersect.</returns>
  11449. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Disjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11450. </member>
  11451. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11452. <summary>
  11453. Tests if the input geometry <paramref name="a"/> contains the input geometry <paramref name="b"/>.
  11454. <para/>
  11455. The <c>Contains</c> predicate has the following equivalent definitions:
  11456. <list type="bullet">
  11457. <item><description>Every point of the other geometry is a point of this geometry,
  11458. and the interiors of the two geometries have at least one point in common.</description></item>
  11459. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11460. the pattern <c>[T*****FF*]</c></description></item>
  11461. <item><description><c>within(B, A) = true </c>
  11462. <br/>(<c> contains </c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  11463. </list>
  11464. An implication of the definition is that "Geometries do not
  11465. contain their boundary". In other words, if a geometry A is a subset of
  11466. the points in the boundary of a geometry B, <c>B.contains(A) = false</c>.
  11467. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  11468. For a predicate with similar behavior but avoiding
  11469. this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>.
  11470. </summary>
  11471. <param name="a">The A input geometry</param>
  11472. <param name="b">The B input geometry</param>
  11473. <returns><c>true</c> if the geometry <paramref name="a"/> contains <paramref name="b"/>.</returns>
  11474. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11475. </member>
  11476. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11477. <summary>
  11478. Tests if the input geometry <paramref name="a"/> covers the input geometry <paramref name="b"/>
  11479. <para/>
  11480. The <c>Covers</c> predicate has the following equivalent definitions:
  11481. <list type="bullet">
  11482. <item><description>Every point of the other geometry is a point of this geometry.</description></item>
  11483. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11484. at least one of the following patterns:
  11485. <list type="bullet">
  11486. <item><c><description>[T*****FF*]</description></c></item>
  11487. <item><c><description>[*T****FF*]</description></c></item>
  11488. <item><c><description>[***T**FF*]</description></c></item>
  11489. <item><c><description>[****T*FF*]</description></c></item>
  11490. </list></description></item>
  11491. <item><description><c>CoveredBy(b, a) = true</c>
  11492. <br/>(<c>Covers</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  11493. </list>
  11494. If either geometry is empty, the value of this predicate is <c>false</c>.
  11495. <para/>
  11496. This predicate is similar to <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>,
  11497. but is more inclusive (i.e. returns <c>true</c> for more cases).
  11498. In particular, unlike <c>Contains</c> it does not distinguish between
  11499. points in the boundary and in the interior of geometries.
  11500. For most cases, <c>Covers</c> should be used in preference to <c>Contains</c>.
  11501. As an added benefit, <c>Covers</c> is more amenable to optimization,
  11502. and hence should be more performant.
  11503. </summary>
  11504. <param name="a">The A input geometry</param>
  11505. <param name="b">The B input geometry</param>
  11506. <returns><c>true</c> if the geometry <paramref name="a"/> covers <paramref name="b"/>.</returns>
  11507. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11508. </member>
  11509. <member name="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11510. <summary>
  11511. Tests if the input geometry <paramref name="a"/> is covered by the input geometry <paramref name="b"/>
  11512. <para/>
  11513. The <c>CoveredBy</c> predicate has the following equivalent definitions:
  11514. <list type="bullet">
  11515. <item><description>Every point of this geometry is a point of the other geometry.</description></item>
  11516. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11517. at least one of the following patterns:
  11518. <list type="bullet">
  11519. <item><description><c>[T*F**F***]</c></description></item>
  11520. <item><description><c>[*TF**F***]</c></description></item>
  11521. <item><description><c>[**FT*F***]</c></description></item>
  11522. <item><description><c>[**F*TF***]</c></description></item>
  11523. </list></description></item>
  11524. <item><description><c>Covers(B, A) = true</c>
  11525. <br/>(<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  11526. </list>
  11527. If either geometry is empty, the value of this predicate is <c>false</c>.
  11528. <para/>
  11529. This predicate is similar to {@link #within},
  11530. but is more inclusive (i.e. returns <c>true</c> for more cases).
  11531. </summary>
  11532. <param name="a">The A input geometry</param>
  11533. <param name="b">The B input geometry</param>
  11534. <returns><c>true</c>if the geometry <paramref name="a"/> is covered by <paramref name="b"/></returns>
  11535. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Covers(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11536. </member>
  11537. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Crosses(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11538. <summary>
  11539. Tests if the input geometry <paramref name="a"/> crosses the input geometry <paramref name="b"/>
  11540. <para/>
  11541. The <c>Crosses</c> predicate has the following equivalent definitions:
  11542. <list type="bullet">
  11543. <item><description>The geometries have some but not all interior points in common.</description></item>
  11544. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11545. one of the following patterns:
  11546. <list type="bullet">
  11547. <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A cases)</description></item>
  11548. <item><description><c>[T*****T**]</c> (for L/P, A/P, and A/L cases)</description></item>
  11549. <item><description><c>[0********]</c> (for L/L cases)</description></item>
  11550. </list></description></item>
  11551. </list>
  11552. For the A/A and P/P cases this predicate returns <c>false</c>.
  11553. <para/>
  11554. The SFS defined this predicate only for P/L, P/A, L/L, and L/A cases.
  11555. To make the relation symmetric
  11556. NTS extends the definition to apply to L/P, A/P and A/L cases as well.
  11557. </summary>
  11558. <param name="a">The A input geometry</param>
  11559. <param name="b">The B input geometry</param>
  11560. <returns><c>true</c> if the geometry <paramref name="a"/> crosses <paramref name="b"/></returns>
  11561. </member>
  11562. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Disjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11563. <summary>
  11564. Tests if the input geometry <paramref name="a"/> and <paramref name="b"/> are disjoint.
  11565. <para/>
  11566. The <c>Disjoint</c> predicate has the following equivalent definitions:
  11567. <list type="bullet">
  11568. <item><description>The two geometries have no point in common</description></item>
  11569. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11570. <c>[FF*FF****]</c></description></item>
  11571. <item><description><c>Intersects() = false</c>
  11572. <br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
  11573. </list>
  11574. </summary>
  11575. <param name="a">The A input geometry</param>
  11576. <param name="b">The B input geometry</param>
  11577. <returns><c>true</c>> if geometries <paramref name="a"/> and <paramref name="b"/> are disjoint.</returns>
  11578. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Intersects(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11579. </member>
  11580. <member name="M:NetTopologySuite.Geometries.GeometryRelate.EqualsTopologically(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11581. <summary>
  11582. Tests if the input geometry <paramref name="a"/> and <paramref name="b"/> are topologically equal.
  11583. <para/>
  11584. The <c>Equals</c> predicate has the following equivalent definitions:
  11585. <list type="bullet">
  11586. <item><description> The two geometries have at least one point in common,
  11587. and no point of either geometry lies in the exterior of the other geometry.</description></item>
  11588. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11589. the pattern <c>T*F**FFF*</c></description></item></list>
  11590. </summary>
  11591. <param name="a">The A input geometry</param>
  11592. <param name="b">The B input geometry</param>
  11593. <returns><c>true</c> if the geometries <paramref name="a"/> and <paramref name="b"/> are topologically equal</returns>
  11594. </member>
  11595. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Overlaps(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11596. <summary>
  11597. Test if the input geometry <paramref name="a"/> overlaps the input geometry <paramref name="b"/>.
  11598. <para/>
  11599. The <c>Overlaps</c> predicate has the following equivalent definitions:
  11600. <list type="bullet">
  11601. <item><description>The geometries have at least one point each not shared by the other
  11602. (or equivalently neither covers the other),
  11603. they have the same dimension,
  11604. and the intersection of the interiors of the two geometries has
  11605. the same dimension as the geometries themselves.</description></item>
  11606. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11607. <c>[T*T***T**]</c> (for P/P and A/A cases)
  11608. or <c>[1*T***T**]</c> (for L/L cases)</description></item>
  11609. </list>
  11610. If the geometries are of different dimension this predicate returns <c>false</c>.
  11611. This predicate is symmetric.
  11612. </summary>
  11613. <param name="a">The A input geometry</param>
  11614. <param name="b">The B input geometry</param>
  11615. <returns><c>true</c> if the geometry <paramref name="a"/> overlaps <paramref name="b"/></returns>
  11616. </member>
  11617. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Touches(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11618. <summary>
  11619. Tests if the input geometry <paramref name="a"/> touches the <paramref name="b"/>.
  11620. <para/>
  11621. The <c>Touches</c> predicate has the following equivalent definitions:
  11622. <list type="bullet">
  11623. <item><description>The geometries have at least one point in common,
  11624. but their interiors do not intersect.</description></item>
  11625. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11626. at least one of the following patterns
  11627. <list type="bullet">
  11628. <item><description><c>[FT*******]</c></description></item>
  11629. <item><description><c>[F**T*****]</c></description></item>
  11630. <item><description><c>[F***T****]</c></description></item>
  11631. </list></description></item>
  11632. </list>
  11633. If both geometries have dimension 0, the predicate returns <c>false</c>,
  11634. since points have only interiors.
  11635. This predicate is symmetric.
  11636. </summary>
  11637. <param name="a">The A input geometry</param>
  11638. <param name="b">The B input geometry</param>
  11639. <returns><c>true</c> if geometry <paramref name="a"/> touches <paramref name="b"/></returns>
  11640. </member>
  11641. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Within(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11642. <summary>
  11643. Tests if the the input geometry <paramref name="a"/> is within the input geometry <paramref name="b"/>.
  11644. <para/>
  11645. The <c>Within</c> predicate has the following equivalent definitions:
  11646. <list type="bullet">
  11647. <item><description>Every point of this geometry is a point of the other geometry,
  11648. and the interiors of the two geometries have at least one point in common.</description></item>
  11649. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  11650. <c>[T*F**F***]</c></description></item>
  11651. <item><description><c>contains(B, A) = true</c>
  11652. <br/>(<c>Within</c> is the converse of <see cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>)</description></item>
  11653. </list>
  11654. An implication of the definition is that
  11655. "The boundary of a Geometry is not within the Geometry".
  11656. In other words, if a geometry A is a subset of
  11657. the points in the boundary of a geometry B, <c>within(B, A) = false</c>
  11658. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  11659. For a predicate with similar behavior but avoiding
  11660. this subtle limitation, see <see cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>.
  11661. </summary>
  11662. <param name="a">The A input geometry</param>
  11663. <param name="b">The B input geometry</param>
  11664. <returns><c>true</c> if the geometry <paramref name="a"/> is within <paramref name="b"/>.</returns>
  11665. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.Contains(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11666. <seealso cref="M:NetTopologySuite.Geometries.GeometryRelate.CoveredBy(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)"/>
  11667. </member>
  11668. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  11669. <summary>
  11670. Computes the DE-9IM matrix
  11671. for the topological relationship between two geometries.
  11672. </summary>
  11673. <param name="a">The A input geometry</param>
  11674. <param name="b">The B input geometry</param>
  11675. <returns>The DE-9IM matrix for the topological relationship</returns>
  11676. </member>
  11677. <member name="M:NetTopologySuite.Geometries.GeometryRelate.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)">
  11678. <summary>
  11679. Tests if the input geometry <paramref name="b"/> relates to
  11680. <paramref name="a"/> in the way defined by <paramref name="intersectionPattern"/>
  11681. </summary>
  11682. <param name="a">The A input geometry</param>
  11683. <param name="b">The B input geometry</param>
  11684. <param name="intersectionPattern">The encoded DE-9IM pattern describing the topological relation to test</param>
  11685. <returns><c>true</c> if the geometry <paramref name="b"/> relates to <paramref name="a"/> in the way defined by <paramref name="intersectionPattern"/>.</returns>
  11686. </member>
  11687. <member name="T:NetTopologySuite.Geometries.IBoundable`2">
  11688. <summary>
  11689. A spatial object in an AbstractSTRtree.
  11690. </summary>
  11691. </member>
  11692. <member name="P:NetTopologySuite.Geometries.IBoundable`2.Bounds">
  11693. <summary>
  11694. Returns a representation of space that encloses this Boundable, preferably
  11695. not much bigger than this Boundable's boundary yet fast to test for intersection
  11696. with the bounds of other Boundables. The class of object returned depends
  11697. on the subclass of AbstractSTRtree.
  11698. </summary>
  11699. <returns>
  11700. An Envelope (for STRtrees), an Interval (for SIRtrees), or other object
  11701. (for other subclasses of AbstractSTRtree).
  11702. </returns>
  11703. </member>
  11704. <member name="P:NetTopologySuite.Geometries.IBoundable`2.Item">
  11705. <summary>
  11706. Gets the item that is bounded
  11707. </summary>
  11708. </member>
  11709. <member name="T:NetTopologySuite.Geometries.ICoordinateFilter">
  11710. <summary>
  11711. An interface for classes which use the values of the coordinates in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  11712. Coordinate filters can be used to implement centroid and
  11713. envelope computation, and many other functions.<para/>
  11714. <para/>
  11715. <c>ICoordinateFilter</c> is
  11716. an example of the Gang-of-Four Visitor pattern.
  11717. <para/>
  11718. <b>Note</b>: it is not recommended to use these filters to mutate the coordinates.
  11719. There is no guarantee that the coordinate is the actual object stored in the source geometry.
  11720. In particular, modified values may not be preserved if the source Geometry uses a non-default <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11721. If in-place mutation is required, use <see cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>.
  11722. </summary>
  11723. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
  11724. <seealso cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>
  11725. </member>
  11726. <member name="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  11727. <summary>
  11728. Performs an operation with the provided <c>coord</c>.
  11729. Note that there is no guarantee that the input coordinate
  11730. is the actual object stored in the source geometry,
  11731. so changes to the coordinate object may not be persistent.
  11732. </summary>
  11733. <param name="coord">A <c>Coordinate</c> to which the filter is applied.</param>
  11734. </member>
  11735. <member name="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter">
  11736. <summary>
  11737. An interface for classes which process the coordinates in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11738. A filter can either record information about each coordinate,
  11739. or change the value of the coordinate.
  11740. Filters can be
  11741. used to implement operations such as coordinate transformations, centroid and
  11742. envelope computation, and many other functions.
  11743. <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes support the concept of applying a
  11744. <c>CoordinateSequenceFilter</c> to each
  11745. <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s they contain.
  11746. <para/>
  11747. For maximum efficiency, the execution of filters can be short-circuited by using the <see cref="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done"/> property.
  11748. </summary>
  11749. <see cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
  11750. <remarks>
  11751. <c>CoordinateSequenceFilter</c> is an example of the Gang-of-Four Visitor pattern.
  11752. <para><b>Note</b>: In general, it is preferable to treat Geometrys as immutable.
  11753. Mutation should be performed by creating a new Geometry object (see <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor"/>
  11754. and <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/> for convenient ways to do this).
  11755. An exception to this rule is when a new Geometry has been created via <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>.
  11756. In this case mutating the Geometry will not cause aliasing issues,
  11757. and a filter is a convenient way to implement coordinate transformation.
  11758. </para>
  11759. </remarks>
  11760. <author>Martin Davis</author>
  11761. <seealso cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
  11762. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>
  11763. <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor"/>
  11764. </member>
  11765. <member name="M:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  11766. <summary>
  11767. Performs an operation on a coordinate in a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11768. </summary>
  11769. <param name="seq">the <c>CoordinateSequence</c> to which the filter is applied</param>
  11770. <param name="i">i the index of the coordinate to apply the filter to</param>
  11771. </member>
  11772. <member name="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.Done">
  11773. <summary>
  11774. Reports whether the application of this filter can be terminated.
  11775. </summary>
  11776. <remarks>
  11777. Once this method returns <c>true</c>, it must
  11778. continue to return <c>true</c> on every subsequent call.
  11779. </remarks>
  11780. </member>
  11781. <member name="P:NetTopologySuite.Geometries.ICoordinateSequenceFilter.GeometryChanged">
  11782. <summary>
  11783. Reports whether the execution of this filter has modified the coordinates of the geometry.
  11784. If so, <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be executed
  11785. after this filter has finished being executed.
  11786. </summary>
  11787. <remarks>Most filters can simply return a constant value reflecting whether they are able to change the coordinates.</remarks>
  11788. </member>
  11789. <member name="T:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter">
  11790. <summary>
  11791. A variant of <see cref="T:NetTopologySuite.Geometries.ICoordinateSequenceFilter"/>, except it receives each
  11792. <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> just once, instead of once for each of its coordinates.
  11793. </summary>
  11794. </member>
  11795. <member name="P:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.Done">
  11796. <summary>
  11797. Reports whether the application of this filter can be terminated.
  11798. </summary>
  11799. <remarks>
  11800. Once this method returns <see langword="true"/> it must continue to return
  11801. <see langword="true"/> on every subsequent call.
  11802. </remarks>
  11803. </member>
  11804. <member name="P:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.GeometryChanged">
  11805. <summary>
  11806. Reports whether the execution of this filter has modified the coordinates of the geometry.
  11807. If so, <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be executed
  11808. after this filter has finished being executed.
  11809. </summary>
  11810. <remarks>
  11811. Most filters can simply return a constant value reflecting whether they are able to
  11812. change the coordinates.
  11813. </remarks>
  11814. </member>
  11815. <member name="M:NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence)">
  11816. <summary>
  11817. Performs an operation on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11818. </summary>
  11819. <param name="seq">
  11820. The <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11821. </param>
  11822. </member>
  11823. <member name="T:NetTopologySuite.Geometries.IExpandable`1">
  11824. <summary>
  11825. Interface describing objects that can expand themselves by objects of type <typeparamref name="T"/>.
  11826. </summary>
  11827. <typeparam name="T">The type of objects that can expand clients</typeparam>
  11828. </member>
  11829. <member name="M:NetTopologySuite.Geometries.IExpandable`1.ExpandToInclude(`0)">
  11830. <summary>
  11831. Method to expand this object by <paramref name="other"/>
  11832. </summary>
  11833. <param name="other">The object to expand with</param>
  11834. </member>
  11835. <member name="M:NetTopologySuite.Geometries.IExpandable`1.ExpandedBy(`0)">
  11836. <summary>
  11837. Function to expand compute a new object that is this object by expanded by <paramref name="other"/>.
  11838. </summary>
  11839. <param name="other">The object to expand with</param>
  11840. <returns>The expanded object</returns>
  11841. </member>
  11842. <member name="T:NetTopologySuite.Geometries.IGeometryComponentFilter">
  11843. <summary>
  11844. <c>Geometry</c> classes support the concept of applying
  11845. an <c>IGeometryComponentFilter</c> filter to a geometry.
  11846. </summary>
  11847. <remarks>
  11848. The filter is applied to every component of a geometry
  11849. as well as to the geometry itself.
  11850. For instance, in a <see cref="T:NetTopologySuite.Geometries.Polygon"/>,
  11851. all the <see cref="T:NetTopologySuite.Geometries.LinearRing"/>
  11852. components for the shell and holes are visited,
  11853. as well as the polygon itself.
  11854. In order to process only atomic components,
  11855. the <see cref="M:NetTopologySuite.Geometries.IGeometryComponentFilter.Filter(NetTopologySuite.Geometries.Geometry)"/> method code must
  11856. explicitly handle only <see cref="T:NetTopologySuite.Geometries.LineString"/>s, <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s and <see cref="T:NetTopologySuite.Geometries.Point"/>s.
  11857. <para/>
  11858. An <c>IGeometryComponentFilter</c> filter can either
  11859. record information about the <c>Geometry</c>
  11860. or change the <c>Geometry</c> in some way.
  11861. <para/>
  11862. <c>IGeometryComponentFilter</c> is an example of the Gang-of-Four Visitor pattern.
  11863. </remarks>
  11864. </member>
  11865. <member name="M:NetTopologySuite.Geometries.IGeometryComponentFilter.Filter(NetTopologySuite.Geometries.Geometry)">
  11866. <summary>
  11867. Performs an operation with or on a geometry component.
  11868. </summary>
  11869. <param name="geom">A component of the geometry to which the filter is applied.</param>
  11870. </member>
  11871. <member name="T:NetTopologySuite.Geometries.IGeometryFilter">
  11872. <summary>
  11873. <c>GeometryCollection</c> classes support the concept of
  11874. applying a <c>IGeometryFilter</c> to the <c>Geometry</c>.
  11875. The filter is applied to every element <c>Geometry</c>.
  11876. A <c>IGeometryFilter</c> can either record information about the <c>Geometry</c>
  11877. or change the <c>Geometry</c> in some way.
  11878. <c>IGeometryFilter</c> is an example of the Gang-of-Four Visitor pattern.
  11879. </summary>
  11880. </member>
  11881. <member name="M:NetTopologySuite.Geometries.IGeometryFilter.Filter(NetTopologySuite.Geometries.Geometry)">
  11882. <summary>
  11883. Performs an operation with or on <c>geom</c>.
  11884. </summary>
  11885. <param name="geom">A <c>Geometry</c> to which the filter is applied.</param>
  11886. </member>
  11887. <member name="T:NetTopologySuite.Geometries.IIntersectable`1">
  11888. <summary>
  11889. Interface describing objects that can perform an intersects predicate with <typeparamref name="T"/> objects.
  11890. </summary>
  11891. <typeparam name="T">The type of the component that can intersect</typeparam>
  11892. </member>
  11893. <member name="M:NetTopologySuite.Geometries.IIntersectable`1.Intersects(`0)">
  11894. <summary>
  11895. Predicate function to test if <paramref name="other"/> intersects with this object.
  11896. </summary>
  11897. <param name="other">The object to test</param>
  11898. <returns><c>true</c> if this objects intersects with <paramref name="other"/></returns>
  11899. </member>
  11900. <member name="T:NetTopologySuite.Geometries.ILineal">
  11901. <summary>
  11902. Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/>
  11903. and have components which are <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
  11904. </summary>
  11905. <author>Martin Davis</author>
  11906. <seealso cref="T:NetTopologySuite.Geometries.IPuntal"/>
  11907. <seealso cref="T:NetTopologySuite.Geometries.IPolygonal"/>
  11908. </member>
  11909. <member name="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence">
  11910. <summary>
  11911. A <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> backed by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  11912. This is the implementation that <see cref="T:NetTopologySuite.Geometries.Geometry"/>s use by default.
  11913. <para/>
  11914. Coordinates returned by <see cref="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ToCoordinateArray"/>, <see cref="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32)"/> and <see cref="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)"/> are live --
  11915. modifications to them are actually changing the
  11916. CoordinateSequence's underlying data.
  11917. A dimension may be specified for the coordinates in the sequence,
  11918. which may be 2 or 3.
  11919. The actual coordinates will always have 3 ordinates,
  11920. but the dimension is useful as metadata in some situations.
  11921. </summary>
  11922. </member>
  11923. <member name="F:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Coordinates">
  11924. <summary>
  11925. Array of coordinates in sequence
  11926. </summary>
  11927. </member>
  11928. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  11929. <summary>
  11930. Constructs a sequence based on the given array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  11931. The coordinate dimension defaults to 2
  11932. </summary>
  11933. <remarks>
  11934. The array is not copied.
  11935. </remarks>
  11936. <param name="coordinates">The coordinate array that will be referenced.</param>
  11937. </member>
  11938. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  11939. <summary>
  11940. Constructs a sequence based on the given array
  11941. of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  11942. </summary>
  11943. <remarks>The Array is not copied</remarks>
  11944. <param name="coordinates">The coordinate array that will be referenced.</param>
  11945. <param name="dimension">The dimension of the coordinates</param>
  11946. </member>
  11947. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  11948. <summary>
  11949. Constructs a sequence based on the given array
  11950. of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  11951. <para/>
  11952. The Array is <b>not</b> copied
  11953. <para/>
  11954. It is your responsibility to ensure the array contains Coordinates of the
  11955. indicated dimension and measures (See <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.EnforceConsistency(NetTopologySuite.Geometries.Coordinate[])"/>).
  11956. </summary>
  11957. <param name="coordinates">The coordinate array that will be referenced.</param>
  11958. <param name="dimension">The dimension of the coordinates</param>
  11959. <param name="measures">The number of measure ordinate values.</param>
  11960. </member>
  11961. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32)">
  11962. <summary>
  11963. Constructs a sequence of a given size, populated with new Coordinates.
  11964. </summary>
  11965. <param name="size">The size of the sequence to create.</param>
  11966. </member>
  11967. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32,System.Int32)">
  11968. <summary>
  11969. Constructs a sequence of a given <paramref name="size"/>, populated
  11970. with new <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the given <paramref name="dimension"/>.
  11971. </summary>
  11972. <param name="size">The size of the sequence to create.</param>
  11973. <param name="dimension">the dimension of the coordinates</param>
  11974. </member>
  11975. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(System.Int32,System.Int32,System.Int32)">
  11976. <summary>
  11977. Constructs a sequence of a given <paramref name="size"/>, populated
  11978. with new <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the given <paramref name="dimension"/>
  11979. with the given number of <paramref name="measures"/>
  11980. </summary>
  11981. <param name="size">The size of the sequence to create.</param>
  11982. <param name="dimension">the dimension of the coordinates</param>
  11983. <param name="measures">the number of measures of the coordinates</param>
  11984. </member>
  11985. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence)">
  11986. <summary>
  11987. Creates a new sequence based on a deep copy of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  11988. </summary>
  11989. <param name="coordSeq">The coordinate sequence that will be copied</param>
  11990. </member>
  11991. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.EnforceArrayConsistency(NetTopologySuite.Geometries.Coordinate[])">
  11992. <summary>
  11993. Ensure array contents of the same type, making use of <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.CreateCoordinate"/> as needed.
  11994. <para>
  11995. A new array will be created if needed to return a consistent result.
  11996. </para>
  11997. </summary>
  11998. <param name="array">array containing consistent coordinate instances</param>
  11999. </member>
  12000. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32)">
  12001. <summary>
  12002. Get the Coordinate with index i.
  12003. </summary>
  12004. <param name="i">The index of the coordinate.</param>
  12005. <returns>The requested Coordinate instance.</returns>
  12006. </member>
  12007. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinateCopy(System.Int32)">
  12008. <summary>
  12009. Get a copy of the Coordinate with index i.
  12010. </summary>
  12011. <param name="i">The index of the coordinate.</param>
  12012. <returns>A copy of the requested Coordinate.</returns>
  12013. </member>
  12014. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  12015. <summary>
  12016. Copies the i'th coordinate in the sequence to the supplied Coordinate.
  12017. </summary>
  12018. <param name="index">The index of the coordinate to copy.</param>
  12019. <param name="coord">A Coordinate to receive the value.</param>
  12020. </member>
  12021. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetX(System.Int32)">
  12022. <summary>
  12023. Returns ordinate X (0) of the specified coordinate.
  12024. </summary>
  12025. <param name="index"></param>
  12026. <returns>
  12027. The value of the X ordinate in the index'th coordinate.
  12028. </returns>
  12029. </member>
  12030. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetY(System.Int32)">
  12031. <summary>
  12032. Returns ordinate Y (1) of the specified coordinate.
  12033. </summary>
  12034. <param name="index"></param>
  12035. <returns>
  12036. The value of the Y ordinate in the index'th coordinate.
  12037. </returns>
  12038. </member>
  12039. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetZ(System.Int32)">
  12040. <summary>
  12041. Returns ordinate Z of the specified coordinate if available.
  12042. </summary>
  12043. <param name="index"></param>
  12044. <returns>
  12045. The value of the Z ordinate in the index'th coordinate, or Double.NaN if not defined.
  12046. </returns>
  12047. </member>
  12048. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetM(System.Int32)">
  12049. <summary>
  12050. Returns ordinate M of the specified coordinate if available.
  12051. </summary>
  12052. <param name="index"></param>
  12053. <returns>
  12054. The value of the M ordinate in the index'th coordinate, or Double.NaN if not defined.
  12055. </returns>
  12056. </member>
  12057. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetOrdinate(System.Int32,System.Int32)">
  12058. <summary>
  12059. Returns the ordinate of a coordinate in this sequence.
  12060. Ordinate indices 0 and 1 are assumed to be X and Y.
  12061. Ordinate indices greater than 1 have user-defined semantics
  12062. (for instance, they may contain other dimensions or measure values).
  12063. </summary>
  12064. <param name="index">The coordinate index in the sequence.</param>
  12065. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  12066. <returns></returns>
  12067. </member>
  12068. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Copy">
  12069. <summary>
  12070. Creates a deep copy of the <c>CoordinateArraySequence</c>.
  12071. </summary>
  12072. <returns>The deep copy.</returns>
  12073. </member>
  12074. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.GetClonedCoordinates">
  12075. <summary>
  12076. </summary>
  12077. <returns></returns>
  12078. </member>
  12079. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  12080. <summary>
  12081. Sets the value for a given ordinate of a coordinate in this sequence.
  12082. </summary>
  12083. <param name="index">The coordinate index in the sequence.</param>
  12084. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  12085. <param name="value">The new ordinate value.</param>
  12086. </member>
  12087. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ToCoordinateArray">
  12088. <summary>
  12089. This method exposes the internal Array of Coordinate Objects.
  12090. </summary>
  12091. <returns></returns>
  12092. </member>
  12093. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  12094. <summary>
  12095. Expands the given Envelope to include the coordinates in the sequence.
  12096. Allows implementing classes to optimize access to coordinate values.
  12097. </summary>
  12098. <param name="env">The envelope to expand.</param>
  12099. <returns>A reference to the expanded envelope.</returns>
  12100. </member>
  12101. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.Reversed">
  12102. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Reversed"/>
  12103. </member>
  12104. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequence.ToString">
  12105. <summary>
  12106. Returns the string representation of the coordinate array.
  12107. </summary>
  12108. <returns></returns>
  12109. </member>
  12110. <member name="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory">
  12111. <summary>
  12112. Creates CoordinateSequences represented as an array of Coordinates.
  12113. </summary>
  12114. </member>
  12115. <member name="P:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Instance">
  12116. <summary>
  12117. Returns the singleton instance of CoordinateArraySequenceFactory.
  12118. </summary>
  12119. </member>
  12120. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
  12121. <summary>
  12122. Returns a CoordinateArraySequence based on the given array (the array is not copied).
  12123. </summary>
  12124. <param name="coordinates">the coordinates, which may not be null nor contain null elements.</param>
  12125. <returns></returns>
  12126. </member>
  12127. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
  12128. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)"/>
  12129. </member>
  12130. <member name="M:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
  12131. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)"/>
  12132. </member>
  12133. <member name="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence">
  12134. <summary>
  12135. A coordinate sequence that follows the dotspatial shape range
  12136. </summary>
  12137. </member>
  12138. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Collections.Generic.IReadOnlyCollection{NetTopologySuite.Geometries.Coordinate},NetTopologySuite.Geometries.Ordinates)">
  12139. <summary>
  12140. Creates an instance of this class
  12141. </summary>
  12142. <param name="coordinates">The coordinates</param>
  12143. <param name="ordinates"></param>
  12144. </member>
  12145. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
  12146. <summary>
  12147. Constructs a sequence of a given size, populated with new Coordinates.
  12148. </summary>
  12149. <param name="size">The size of the sequence to create.</param>
  12150. <param name="dimension">The number of dimensions.</param>
  12151. <param name="measures">The number of measures.</param>
  12152. </member>
  12153. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Int32,NetTopologySuite.Geometries.Ordinates)">
  12154. <summary>
  12155. Constructs a sequence of a given size, populated with new Coordinates.
  12156. </summary>
  12157. <param name="size">The size of the sequence to create.</param>
  12158. <param name="ordinates">The kind of ordinates.</param>
  12159. </member>
  12160. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Ordinates)">
  12161. <summary>
  12162. Creates a sequence based on the given coordinate sequence.
  12163. </summary>
  12164. <param name="coordSeq">The coordinate sequence.</param>
  12165. <param name="ordinates">The ordinates to copy</param>
  12166. </member>
  12167. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.#ctor(System.Double[],System.Double[],System.Double[])">
  12168. <summary>
  12169. </summary>
  12170. <param name="xy"></param>
  12171. <param name="z"></param>
  12172. <param name="m"></param>
  12173. </member>
  12174. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Copy">
  12175. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
  12176. </member>
  12177. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetCoordinateCopy(System.Int32)">
  12178. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinateCopy(System.Int32)"/>
  12179. </member>
  12180. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  12181. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetCoordinate(System.Int32,NetTopologySuite.Geometries.Coordinate)"/>
  12182. </member>
  12183. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetX(System.Int32)">
  12184. <inheritdoc />
  12185. </member>
  12186. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetY(System.Int32)">
  12187. <inheritdoc />
  12188. </member>
  12189. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetZ(System.Int32)">
  12190. <inheritdoc />
  12191. </member>
  12192. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetM(System.Int32)">
  12193. <inheritdoc />
  12194. </member>
  12195. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetX(System.Int32,System.Double)">
  12196. <inheritdoc />
  12197. </member>
  12198. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetY(System.Int32,System.Double)">
  12199. <inheritdoc />
  12200. </member>
  12201. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetZ(System.Int32,System.Double)">
  12202. <inheritdoc />
  12203. </member>
  12204. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetM(System.Int32,System.Double)">
  12205. <inheritdoc />
  12206. </member>
  12207. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
  12208. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.GetOrdinate(System.Int32,System.Int32)"/>
  12209. </member>
  12210. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  12211. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
  12212. </member>
  12213. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ToCoordinateArray">
  12214. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.ToCoordinateArray"/>
  12215. </member>
  12216. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  12217. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)"/>
  12218. </member>
  12219. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Reversed">
  12220. <summary>
  12221. Creates a reversed version of this coordinate sequence with cloned <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
  12222. </summary>
  12223. <returns>A reversed version of this sequence</returns>
  12224. </member>
  12225. <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.XY">
  12226. <summary>
  12227. Gets the vector with x- and y-ordinate values;
  12228. </summary>
  12229. <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
  12230. </member>
  12231. <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Z">
  12232. <summary>
  12233. Gets the vector with z-ordinate values
  12234. </summary>
  12235. <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
  12236. </member>
  12237. <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.M">
  12238. <summary>
  12239. Gets the vector with measure values
  12240. </summary>
  12241. <remarks>If you modify the values of this vector externally, you need to call <see cref="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray"/>!</remarks>
  12242. </member>
  12243. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.ReleaseCoordinateArray">
  12244. <summary>
  12245. Releases the weak reference to the weak referenced coordinate array
  12246. </summary>
  12247. <remarks>This is necessary if you modify the values of the <see cref="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.XY"/>, <see cref="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.Z"/>, <see cref="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence.M"/> arrays externally.</remarks>
  12248. </member>
  12249. <member name="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory">
  12250. <summary>
  12251. A coordinate sequence factory class that creates DotSpatial's Shape/ShapeRange like coordinate sequences.
  12252. </summary>
  12253. </member>
  12254. <member name="P:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Instance">
  12255. <summary>
  12256. Returns the singleton instance of DotSpatialAffineCoordinateSequenceFactory.
  12257. </summary>
  12258. <returns></returns>
  12259. </member>
  12260. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
  12261. <summary>
  12262. Returns a CoordinateArraySequence based on the given array (the array is not copied).
  12263. </summary>
  12264. <param name="coordinates">the coordinates, which may not be null nor contain null elements.</param>
  12265. <returns></returns>
  12266. </member>
  12267. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
  12268. <summary>
  12269. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> which is a copy
  12270. of the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" />.
  12271. This method must handle null arguments by creating an empty sequence.
  12272. </summary>
  12273. <param name="coordSeq"></param>
  12274. <returns>A coordinate sequence</returns>
  12275. </member>
  12276. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
  12277. <inheritdoc />
  12278. </member>
  12279. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Int32,NetTopologySuite.Geometries.Ordinates)">
  12280. <summary>
  12281. Creates a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> of the specified size and ordinates.
  12282. For this to be useful, the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> implementation must be mutable.
  12283. </summary>
  12284. <param name="size">The number of coordinates.</param>
  12285. <param name="ordinates">
  12286. The ordinates each coordinate has. <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> is fix,
  12287. <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> can be set.
  12288. </param>
  12289. <returns>A coordinate sequence.</returns>
  12290. </member>
  12291. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[])">
  12292. <summary>
  12293. Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates
  12294. </summary>
  12295. <param name="xy">The x- and y-ordinates</param>
  12296. <returns>A coordinate sequence</returns>
  12297. </member>
  12298. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[],System.Double[],System.Boolean)">
  12299. <summary>
  12300. Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates,
  12301. the <paramref name="zm"/> array for either z-ordinates or measure values. This is indicated by <paramref name="isMeasure"/>.
  12302. </summary>
  12303. <param name="xy">The x- and y-ordinates</param>
  12304. <param name="zm">An array of z- or measure values</param>
  12305. <param name="isMeasure">A value indicating if <paramref name="zm"/> contains z-ordinates or measure values.</param>
  12306. <returns>A coordinate sequence</returns>
  12307. </member>
  12308. <member name="M:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequenceFactory.Create(System.Double[],System.Double[],System.Double[])">
  12309. <summary>
  12310. Creates an instance of this class using the provided <paramref name="xy"/> array for x- and y ordinates,
  12311. the <paramref name="z"/> array for z ordinates and <paramref name="m"/> for measure values.
  12312. </summary>
  12313. <param name="xy">The x- and y-ordinates</param>
  12314. <param name="z">An array of z- or measure values</param>
  12315. <param name="m">An array of measure values.</param>
  12316. <returns>A coordinate sequence</returns>
  12317. </member>
  12318. <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence">
  12319. <summary>
  12320. A <c>CoordinateSequence</c> implementation based on a packed arrays.
  12321. </summary>
  12322. </member>
  12323. <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.CoordRef">
  12324. <summary>
  12325. A soft reference to the Coordinate[] representation of this sequence.
  12326. Makes repeated coordinate array accesses more efficient.
  12327. </summary>
  12328. </member>
  12329. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
  12330. <summary>
  12331. Creates an instance of this class
  12332. </summary>
  12333. <param name="count">The number of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in the sequence.</param>
  12334. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12335. <param name="measures">the number of measure-ordinates each {<see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12336. </member>
  12337. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.GetCoordinate(System.Int32)">
  12338. <summary>
  12339. Returns (possibly a copy of) the ith Coordinate in this collection.
  12340. Whether or not the Coordinate returned is the actual underlying
  12341. Coordinate or merely a copy depends on the implementation.
  12342. Note that in the future the semantics of this method may change
  12343. to guarantee that the Coordinate returned is always a copy. Callers are
  12344. advised not to assume that they can modify a CoordinateSequence by
  12345. modifying the Coordinate returned by this method.
  12346. </summary>
  12347. <param name="i"></param>
  12348. <returns></returns>
  12349. </member>
  12350. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ToCoordinateArray">
  12351. <summary>
  12352. Returns (possibly copies of) the Coordinates in this collection.
  12353. Whether or not the Coordinates returned are the actual underlying
  12354. Coordinates or merely copies depends on the implementation.
  12355. Note that if this implementation does not store its data as an array of Coordinates,
  12356. this method will incur a performance penalty because the array needs to
  12357. be built from scratch.
  12358. </summary>
  12359. <returns></returns>
  12360. </member>
  12361. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ReleaseCoordinateArray">
  12362. <summary>
  12363. Releases the weak reference to the coordinate array.
  12364. </summary>
  12365. <remarks>
  12366. This is necessary if you directly modify the array from <c>GetRawCoordinates</c>.
  12367. </remarks>
  12368. </member>
  12369. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.ToString">
  12370. <inheritdoc cref="M:System.Object.ToString"/>
  12371. </member>
  12372. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequence.GetCoordinateInternal(System.Int32)">
  12373. <summary>
  12374. Returns a Coordinate representation of the specified coordinate, by always
  12375. building a new Coordinate object.
  12376. </summary>
  12377. <param name="index">The coordinate index</param>
  12378. <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate"/> at the given index</returns>
  12379. </member>
  12380. <member name="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence">
  12381. <summary>
  12382. Packed coordinate sequence implementation based on doubles.
  12383. </summary>
  12384. </member>
  12385. <member name="F:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence._coords">
  12386. <summary>
  12387. The packed coordinate array
  12388. </summary>
  12389. </member>
  12390. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Double[],System.Int32,System.Int32)">
  12391. <summary>
  12392. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12393. </summary>
  12394. <param name="coords">An array of <c>double</c> values that contains the ordinate values of the sequence.</param>
  12395. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12396. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12397. </member>
  12398. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Single[],System.Int32,System.Int32)">
  12399. <summary>
  12400. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12401. </summary>
  12402. <param name="coords">An array of <c>float</c> values that contains the ordinate values of the sequence.</param>
  12403. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12404. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12405. </member>
  12406. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  12407. <summary>
  12408. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12409. </summary>
  12410. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12411. </member>
  12412. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  12413. <summary>
  12414. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12415. </summary>
  12416. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12417. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12418. </member>
  12419. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  12420. <summary>
  12421. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12422. </summary>
  12423. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12424. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12425. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12426. </member>
  12427. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
  12428. <summary>
  12429. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12430. </summary>
  12431. <param name="size">The number of coordinates in this sequence</param>
  12432. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12433. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12434. </member>
  12435. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.GetRawCoordinates">
  12436. <summary>
  12437. Gets the underlying array containing the coordinate values.
  12438. </summary>
  12439. <returns>The array of coordinate values</returns>
  12440. </member>
  12441. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.Copy">
  12442. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
  12443. </member>
  12444. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
  12445. <summary>
  12446. Returns the ordinate of a coordinate in this sequence.
  12447. Ordinate indices 0 and 1 are assumed to be X and Y.
  12448. Ordinate indices greater than 1 have user-defined semantics
  12449. (for instance, they may contain other dimensions or measure values).
  12450. </summary>
  12451. <remarks>
  12452. Beware, for performance reasons the ordinate index is not checked, if
  12453. it's over dimensions you may not get an exception but a meaningless
  12454. value.
  12455. </remarks>
  12456. <param name="index">The coordinate index in the sequence.</param>
  12457. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  12458. <returns></returns>
  12459. </member>
  12460. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  12461. <summary>
  12462. Sets the ordinate of a coordinate in this sequence.
  12463. </summary>
  12464. <param name="index">The coordinate index.</param>
  12465. <param name="ordinateIndex">The ordinate index in the coordinate, 0 based,
  12466. smaller than the number of dimensions.</param>
  12467. <param name="value">The new ordinate value.</param>
  12468. <remarks>
  12469. Warning: for performance reasons the ordinate index is not checked.
  12470. If it is larger than the dimension a meaningless value may be returned.
  12471. </remarks>
  12472. </member>
  12473. <member name="M:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  12474. <summary>
  12475. Expands the given Envelope to include the coordinates in the sequence.
  12476. Allows implementing classes to optimize access to coordinate values.
  12477. </summary>
  12478. <param name="env">The envelope to expand.</param>
  12479. <returns>A reference to the expanded envelope.</returns>
  12480. </member>
  12481. <member name="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence">
  12482. <summary>
  12483. Packed coordinate sequence implementation based on floats.
  12484. </summary>
  12485. </member>
  12486. <member name="F:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence._coords">
  12487. <summary>
  12488. The packed coordinate array
  12489. </summary>
  12490. </member>
  12491. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Single[],System.Int32,System.Int32)">
  12492. <summary>
  12493. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
  12494. </summary>
  12495. <param name="coords">An array of <c>float</c> values that contains the ordinate values of the sequence.</param>
  12496. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12497. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12498. </member>
  12499. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Double[],System.Int32,System.Int32)">
  12500. <summary>
  12501. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
  12502. </summary>
  12503. <param name="coords">An array of <c>double</c> values that contains the ordinate values of the sequence.</param>
  12504. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12505. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12506. </member>
  12507. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  12508. <summary>
  12509. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/> class.
  12510. </summary>
  12511. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12512. </member>
  12513. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  12514. <summary>
  12515. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
  12516. </summary>
  12517. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12518. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12519. </member>
  12520. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32)">
  12521. <summary>
  12522. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
  12523. </summary>
  12524. <param name="coords">An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.</param>
  12525. <param name="dimension">The total number of ordinates that make up a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence.</param>
  12526. <param name="measures">The number of measure-ordinates each <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this sequence has.</param>
  12527. </member>
  12528. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.#ctor(System.Int32,System.Int32,System.Int32)">
  12529. <summary>
  12530. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence"/> class.
  12531. </summary>
  12532. <param name="size"></param>
  12533. <param name="dimension"></param>
  12534. <param name="measures"></param>
  12535. </member>
  12536. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.GetRawCoordinates">
  12537. <summary>
  12538. Gets the underlying array containing the coordinate values.
  12539. </summary>
  12540. <returns>The array of coordinate values</returns>
  12541. </member>
  12542. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.Copy">
  12543. <inheritdoc cref="M:NetTopologySuite.Geometries.CoordinateSequence.Copy"/>
  12544. </member>
  12545. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
  12546. <summary>
  12547. Returns the ordinate of a coordinate in this sequence.
  12548. Ordinate indices 0 and 1 are assumed to be X and Y.
  12549. Ordinate indices greater than 1 have user-defined semantics
  12550. (for instance, they may contain other dimensions or measure values).
  12551. </summary>
  12552. <remarks>
  12553. Beware, for performance reasons the ordinate index is not checked, if
  12554. it's over dimensions you may not get an exception but a meaningless
  12555. value.
  12556. </remarks>
  12557. <param name="index">The coordinate index in the sequence.</param>
  12558. <param name="ordinateIndex">The ordinate index in the coordinate (in range [0, dimension-1]).</param>
  12559. <returns></returns>
  12560. </member>
  12561. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  12562. <summary>
  12563. Sets the ordinate of a coordinate in this sequence.
  12564. </summary>
  12565. <param name="index">The coordinate index.</param>
  12566. <param name="ordinateIndex">The ordinate index in the coordinate, 0 based,
  12567. smaller than the number of dimensions.</param>
  12568. <param name="value">The new ordinate value.</param>
  12569. <remarks>
  12570. Warning: for performance reasons the ordinate index is not checked:
  12571. if it is over dimensions you may not get an exception but a meaningless value.
  12572. </remarks>
  12573. </member>
  12574. <member name="M:NetTopologySuite.Geometries.Implementation.PackedFloatCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  12575. <summary>
  12576. Expands the given Envelope to include the coordinates in the sequence.
  12577. Allows implementing classes to optimize access to coordinate values.
  12578. </summary>
  12579. <param name="env">The envelope to expand.</param>
  12580. <returns>A reference to the expanded envelope.</returns>
  12581. </member>
  12582. <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory">
  12583. <summary>
  12584. Builds packed array coordinate sequences.
  12585. The array data type can be either
  12586. <c>double</c> or <c>float</c>,
  12587. and defaults to <c>double</c>.
  12588. </summary>
  12589. </member>
  12590. <member name="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType">
  12591. <summary>
  12592. An enumeration of valid type codes
  12593. </summary>
  12594. </member>
  12595. <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double">
  12596. <summary>
  12597. Type code for arrays of type <c>double</c>.
  12598. </summary>
  12599. </member>
  12600. <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float">
  12601. <summary>
  12602. Type code for arrays of type <c>float</c>.
  12603. </summary>
  12604. </member>
  12605. <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.DoubleFactory">
  12606. <summary>
  12607. A factory creating <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double"/> coordinate sequences
  12608. </summary>
  12609. </member>
  12610. <member name="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.FloatFactory">
  12611. <summary>
  12612. A factory creating <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float"/> coordinate sequences
  12613. </summary>
  12614. </member>
  12615. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.#ctor">
  12616. <summary>
  12617. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/> class,
  12618. using double values.
  12619. </summary>
  12620. </member>
  12621. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.#ctor(NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType)">
  12622. <summary>
  12623. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory"/> class.
  12624. </summary>
  12625. <param name="type">The type.</param>
  12626. </member>
  12627. <member name="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type">
  12628. <summary>
  12629. Gets the type of packed coordinate sequence this factory builds, either
  12630. <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Float"/> or <see cref="F:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.PackedType.Double"/>
  12631. </summary>
  12632. <value>The type of packed array built.</value>
  12633. </member>
  12634. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.Coordinate[])">
  12635. <summary>
  12636. Returns a CoordinateSequence based on the given array; whether or not the
  12637. array is copied is implementation-dependent.
  12638. </summary>
  12639. <param name="coordinates">Coordinates array, which may not be null nor contain null elements</param>
  12640. <returns></returns>
  12641. </member>
  12642. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(NetTopologySuite.Geometries.CoordinateSequence)">
  12643. <summary>
  12644. Returns a CoordinateSequence based on the given coordinate sequence; whether or not the
  12645. array is copied is implementation-dependent.
  12646. </summary>
  12647. <param name="coordSeq"></param>
  12648. <returns></returns>
  12649. </member>
  12650. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Double[],System.Int32)">
  12651. <summary>
  12652. Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>double</c> array
  12653. using the provided dimension and a measure of <c>0</c>.
  12654. </summary>
  12655. <param name="packedCoordinates">The array containing coordinate values</param>
  12656. <param name="dimension">The coordinate dimension</param>
  12657. <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
  12658. </member>
  12659. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Double[],System.Int32,System.Int32)">
  12660. <summary>
  12661. Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>double</c> array
  12662. using the provided dimension and a measure of <c>0</c>.
  12663. </summary>
  12664. <param name="packedCoordinates">The array containing coordinate values</param>
  12665. <param name="dimension">The coordinate dimension</param>
  12666. <param name="measures">The coordinate measure count</param>
  12667. <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
  12668. </member>
  12669. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Single[],System.Int32)">
  12670. <summary>
  12671. Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>float</c> array
  12672. using the provided dimension and a measure of <c>0</c>.
  12673. </summary>
  12674. <param name="packedCoordinates">The array containing coordinate values</param>
  12675. <param name="dimension">The coordinate dimension</param>
  12676. <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
  12677. </member>
  12678. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Single[],System.Int32,System.Int32)">
  12679. <summary>
  12680. Creates a packed coordinate sequence of type <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/> from the provided <c>float</c> array
  12681. using the provided dimension and a measure of <c>0</c>.
  12682. </summary>
  12683. <param name="packedCoordinates">The array containing coordinate values</param>
  12684. <param name="dimension">The coordinate dimension</param>
  12685. <param name="measures">The coordinate measure count</param>
  12686. <returns>A packed coordinate sequence of <see cref="P:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Type"/></returns>
  12687. </member>
  12688. <member name="M:NetTopologySuite.Geometries.Implementation.PackedCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
  12689. <inheritdoc />
  12690. </member>
  12691. <member name="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence">
  12692. <summary>
  12693. An implementation of <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> that packs its contents in a way that
  12694. can be customized by the creator.
  12695. </summary>
  12696. </member>
  12697. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.#ctor(System.Memory{System.Double}[],System.ValueTuple{System.Int32,System.Int32}[],System.Int32)">
  12698. <summary>
  12699. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> class.
  12700. </summary>
  12701. <param name="rawData">
  12702. Contains the raw data for this sequence.
  12703. </param>
  12704. <param name="dimensionMap">
  12705. Contains a pair of indexes to tell us, for each dimension, where to find its data in
  12706. <paramref name="rawData"/>.
  12707. </param>
  12708. <param name="measures">
  12709. The value for <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Measures"/>.
  12710. </param>
  12711. </member>
  12712. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.GetRawCoordinatesAndStride(System.Int32)">
  12713. <summary>
  12714. Gets the underlying <see cref="T:System.Memory`1"/> for the ordinates at the given index, along
  12715. with a "stride" value that represents how many slots there are between elements.
  12716. </summary>
  12717. <param name="ordinateIndex">
  12718. The index of the ordinate whose values to get, from
  12719. <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.TryGetOrdinateIndex(NetTopologySuite.Geometries.Ordinate,System.Int32@)"/>.
  12720. </param>
  12721. <returns>
  12722. The underlying <see cref="T:System.Memory`1"/> and stride.
  12723. </returns>
  12724. <remarks>
  12725. Assuming <see cref="P:NetTopologySuite.Geometries.CoordinateSequence.Count"/> is nonzero, the first element of the
  12726. returned array holds the first coordinate's value for the requested ordinate, and the
  12727. last element of the returned array holds the last coordinate's value for the requested
  12728. ordinate.
  12729. </remarks>
  12730. </member>
  12731. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.GetOrdinate(System.Int32,System.Int32)">
  12732. <inheritdoc />
  12733. </member>
  12734. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)">
  12735. <inheritdoc />
  12736. </member>
  12737. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.Copy">
  12738. <inheritdoc />
  12739. </member>
  12740. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.Reversed">
  12741. <inheritdoc />
  12742. </member>
  12743. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.ExpandEnvelope(NetTopologySuite.Geometries.Envelope)">
  12744. <inheritdoc />
  12745. </member>
  12746. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence.ToCoordinateArray">
  12747. <inheritdoc />
  12748. </member>
  12749. <member name="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory">
  12750. <summary>
  12751. Factory for creating <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instances.
  12752. </summary>
  12753. </member>
  12754. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Ordinates})">
  12755. <summary>
  12756. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory"/> class.
  12757. </summary>
  12758. <param name="ordinateGroups">
  12759. A sequence of zero or more <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags representing ordinate values
  12760. that should be allocated together.
  12761. </param>
  12762. <exception cref="T:System.ArgumentNullException">
  12763. Thrown when <paramref name="ordinateGroups"/> is <see langword="null"/>.
  12764. </exception>
  12765. <exception cref="T:System.ArgumentException">
  12766. Thrown when a given flag appears in more than one element of
  12767. <paramref name="ordinateGroups"/>.
  12768. </exception>
  12769. <remarks>
  12770. Any flags not represented in <paramref name="ordinateGroups"/>, and any spatial or
  12771. measure dimensions beyond the 16th, will be allocated together, SoA-style.
  12772. <para/>
  12773. Elements without any bits set will be silently ignored.
  12774. </remarks>
  12775. </member>
  12776. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXY(System.Memory{System.Double},System.Memory{System.Double})">
  12777. <summary>
  12778. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
  12779. and writing X and Y data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12780. into the constructor for this factory instance.
  12781. </summary>
  12782. <param name="x">
  12783. An array of X values, laid out as
  12784. <c>[x0, x1, x2, ..., xn]</c>.
  12785. </param>
  12786. <param name="y">
  12787. An array of Y values, laid out as
  12788. <c>[y0, y1, y2, ..., yn]</c>.
  12789. </param>
  12790. <returns>
  12791. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
  12792. </returns>
  12793. <exception cref="T:System.ArgumentException">
  12794. Thrown when the input arrays do not contain data for the same number of coordinates.
  12795. </exception>
  12796. </member>
  12797. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXY(System.Memory{System.Double})">
  12798. <summary>
  12799. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12800. and writing X and Y data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12801. into the constructor for this factory instance.
  12802. </summary>
  12803. <param name="xy">
  12804. An array of X and Y values, laid out as
  12805. <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
  12806. </param>
  12807. <returns>
  12808. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  12809. </returns>
  12810. <remarks>
  12811. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
  12812. with slightly more overhead, so the main reason to prefer this over that one would be if
  12813. you <b>really</b> need to avoid copying the data to fit it into that format.
  12814. </remarks>
  12815. <exception cref="T:System.ArgumentException">
  12816. Thrown when the length of <paramref name="xy"/> is not a multiple of 2.
  12817. </exception>
  12818. </member>
  12819. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
  12820. <summary>
  12821. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
  12822. and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12823. into the constructor for this factory instance.
  12824. </summary>
  12825. <param name="x">
  12826. An array of X values, laid out as
  12827. <c>[x0, x1, x2, ..., xn]</c>.
  12828. </param>
  12829. <param name="y">
  12830. An array of Y values, laid out as
  12831. <c>[y0, y1, y2, ..., yn]</c>.
  12832. </param>
  12833. <param name="z">
  12834. An array of Z values, laid out as
  12835. <c>[z0, z1, z2, ..., zn]</c>.
  12836. </param>
  12837. <returns>
  12838. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
  12839. </returns>
  12840. <exception cref="T:System.ArgumentException">
  12841. Thrown when the input arrays do not contain data for the same number of coordinates.
  12842. </exception>
  12843. </member>
  12844. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double},System.Memory{System.Double})">
  12845. <summary>
  12846. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12847. and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12848. into the constructor for this factory instance.
  12849. </summary>
  12850. <param name="xy">
  12851. An array of X and Y values, laid out as
  12852. <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
  12853. </param>
  12854. <param name="z">
  12855. An array of Z values, laid out as
  12856. <c>[z0, z1, z2, ..., zn]</c>.
  12857. </param>
  12858. <returns>
  12859. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  12860. </returns>
  12861. <remarks>
  12862. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
  12863. with slightly more overhead, so the main reason to prefer this over that one would be if
  12864. you <b>really</b> need to avoid copying the data to fit it into that format.
  12865. </remarks>
  12866. <exception cref="T:System.ArgumentException">
  12867. Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
  12868. input arrays do not contain data for the same number of coordinates.
  12869. </exception>
  12870. </member>
  12871. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZ(System.Memory{System.Double})">
  12872. <summary>
  12873. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12874. and writing X, Y, and Z data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12875. into the constructor for this factory instance.
  12876. </summary>
  12877. <param name="xyz">
  12878. An array of X, Y, and Z values, laid out as
  12879. <c>[x0, y0, z0, x1, y1, z1, x2, y2, z2, ..., xn, yn, zn]</c>.
  12880. </param>
  12881. <returns>
  12882. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  12883. </returns>
  12884. <remarks>
  12885. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
  12886. with slightly more overhead, so the main reason to prefer this over that one would be if
  12887. you <b>really</b> need to avoid copying the data to fit it into that format.
  12888. </remarks>
  12889. <exception cref="T:System.ArgumentException">
  12890. Thrown when the length of <paramref name="xyz"/> is not a multiple of 3.
  12891. </exception>
  12892. </member>
  12893. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
  12894. <summary>
  12895. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
  12896. and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12897. into the constructor for this factory instance.
  12898. </summary>
  12899. <param name="x">
  12900. An array of X values, laid out as
  12901. <c>[x0, x1, x2, ..., xn]</c>.
  12902. </param>
  12903. <param name="y">
  12904. An array of Y values, laid out as
  12905. <c>[y0, y1, y2, ..., yn]</c>.
  12906. </param>
  12907. <param name="m">
  12908. An array of M values, laid out as
  12909. <c>[m0, m1, m2, ..., mn]</c>.
  12910. </param>
  12911. <returns>
  12912. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
  12913. </returns>
  12914. <exception cref="T:System.ArgumentException">
  12915. Thrown when the input arrays do not contain data for the same number of coordinates.
  12916. </exception>
  12917. </member>
  12918. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double},System.Memory{System.Double})">
  12919. <summary>
  12920. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12921. and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12922. into the constructor for this factory instance.
  12923. </summary>
  12924. <param name="xy">
  12925. An array of X and Y values, laid out as
  12926. <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
  12927. </param>
  12928. <param name="m">
  12929. An array of M values, laid out as
  12930. <c>[m0, m1, m2, ..., mn]</c>.
  12931. </param>
  12932. <returns>
  12933. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  12934. </returns>
  12935. <remarks>
  12936. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
  12937. with slightly more overhead, so the main reason to prefer this over that one would be if
  12938. you <b>really</b> need to avoid copying the data to fit it into that format.
  12939. </remarks>
  12940. <exception cref="T:System.ArgumentException">
  12941. Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
  12942. input arrays do not contain data for the same number of coordinates.
  12943. </exception>
  12944. </member>
  12945. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYM(System.Memory{System.Double})">
  12946. <summary>
  12947. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12948. and writing X, Y, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12949. into the constructor for this factory instance.
  12950. </summary>
  12951. <param name="xym">
  12952. An array of X, Y, and M values, laid out as
  12953. <c>[x0, y0, m0, x1, y1, m1, x2, y2, m2, ..., xn, yn, mn]</c>.
  12954. </param>
  12955. <returns>
  12956. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  12957. </returns>
  12958. <remarks>
  12959. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
  12960. with slightly more overhead, so the main reason to prefer this over that one would be if
  12961. you <b>really</b> need to avoid copying the data to fit it into that format.
  12962. </remarks>
  12963. <exception cref="T:System.ArgumentException">
  12964. Thrown when the length of <paramref name="xym"/> is not a multiple of 3.
  12965. </exception>
  12966. </member>
  12967. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
  12968. <summary>
  12969. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given arrays for reading
  12970. and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  12971. into the constructor for this factory instance.
  12972. </summary>
  12973. <param name="x">
  12974. An array of X values, laid out as
  12975. <c>[x0, x1, x2, ..., xn]</c>.
  12976. </param>
  12977. <param name="y">
  12978. An array of Y values, laid out as
  12979. <c>[y0, y1, y2, ..., yn]</c>.
  12980. </param>
  12981. <param name="z">
  12982. An array of Z values, laid out as
  12983. <c>[z0, z1, z2, ..., zn]</c>.
  12984. </param>
  12985. <param name="m">
  12986. An array of M values, laid out as
  12987. <c>[m0, m1, m2, ..., mn]</c>.
  12988. </param>
  12989. <returns>
  12990. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given arrays.
  12991. </returns>
  12992. <exception cref="T:System.ArgumentException">
  12993. Thrown when the input arrays do not contain data for the same number of coordinates.
  12994. </exception>
  12995. </member>
  12996. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double},System.Memory{System.Double},System.Memory{System.Double})">
  12997. <summary>
  12998. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  12999. and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  13000. into the constructor for this factory instance.
  13001. </summary>
  13002. <param name="xy">
  13003. An array of X and Y values, laid out as
  13004. <c>[x0, y0, x1, y1, x2, y2, ..., xn, yn]</c>.
  13005. </param>
  13006. <param name="z">
  13007. An array of Z values, laid out as
  13008. <c>[z0, z1, z2, ..., zn]</c>.
  13009. </param>
  13010. <param name="m">
  13011. An array of M values, laid out as
  13012. <c>[m0, m1, m2, ..., mn]</c>.
  13013. </param>
  13014. <returns>
  13015. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  13016. </returns>
  13017. <remarks>
  13018. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.DotSpatialAffineCoordinateSequence"/>
  13019. with slightly more overhead, so the main reason to prefer this over that one would be if
  13020. you <b>really</b> need to avoid copying the data to fit it into that format.
  13021. </remarks>
  13022. <exception cref="T:System.ArgumentException">
  13023. Thrown when the length of <paramref name="xy"/> is not a multiple of 2, or when the
  13024. input arrays do not contain data for the same number of coordinates.
  13025. </exception>
  13026. </member>
  13027. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.CreateXYZM(System.Memory{System.Double})">
  13028. <summary>
  13029. Creates a new <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> that uses the given array for reading
  13030. and writing X, Y, Z, and M data ignoring the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> flags that were passed
  13031. into the constructor for this factory instance.
  13032. </summary>
  13033. <param name="xyzm">
  13034. An array of X, Y, Z, and M values, laid out as
  13035. <c>[x0, y0, z0, m0, x1, y1, z1, m1, x2, y2, z2, m2, ..., xn, yn, zn, mn]</c>.
  13036. </param>
  13037. <returns>
  13038. A <see cref="T:NetTopologySuite.Geometries.Implementation.RawCoordinateSequence"/> instance that's backed by the given array.
  13039. </returns>
  13040. <remarks>
  13041. The resulting instance is essentially a <see cref="T:NetTopologySuite.Geometries.Implementation.PackedDoubleCoordinateSequence"/>
  13042. with slightly more overhead, so the main reason to prefer this over that one would be if
  13043. you <b>really</b> need to avoid copying the data to fit it into that format.
  13044. </remarks>
  13045. <exception cref="T:System.ArgumentException">
  13046. Thrown when the length of <paramref name="xyzm"/> is not a multiple of 4.
  13047. </exception>
  13048. </member>
  13049. <member name="M:NetTopologySuite.Geometries.Implementation.RawCoordinateSequenceFactory.Create(System.Int32,System.Int32,System.Int32)">
  13050. <inheritdoc />
  13051. </member>
  13052. <member name="T:NetTopologySuite.Geometries.IntersectionMatrix">
  13053. <summary>
  13054. Models a <b>Dimensionally Extended Nine-Intersection Model (DE-9IM)</b> matrix.
  13055. </summary>
  13056. <remarks>
  13057. DE-9IM matrix values (such as "212FF1FF2")
  13058. specify the topological relationship between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  13059. This class can also represent matrix patterns (such as "T*T******")
  13060. which are used for matching instances of DE-9IM matrices.
  13061. <para/>
  13062. DE-9IM matrices are 3x3 matrices with integer entries.
  13063. The matrix indices {0,1,2}
  13064. represent the topological locations
  13065. that occur in a geometry(Interior, Boundary, Exterior).
  13066. These are provided by the constants
  13067. <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>, <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>, and <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>.
  13068. <para/>
  13069. When used to specify the topological relationship between two geometries,
  13070. the matrix entries represent the possible dimensions of each intersection:
  13071. <see cref="F:NetTopologySuite.Geometries.Dimension.A"/> = 2, <see cref="F:NetTopologySuite.Geometries.Dimension.L"/> = 1, <see cref="F:NetTopologySuite.Geometries.Dimension.P"/> = 0 and <see cref="F:NetTopologySuite.Geometries.Dimension.False"/> = -1.<br/>
  13072. When used to represent a matrix pattern entries can have the additional values
  13073. <see cref="F:NetTopologySuite.Geometries.Dimension.True"/> ("T") and <see cref="F:NetTopologySuite.Geometries.Dimension.Dontcare"/> ("*").
  13074. <para/>
  13075. For a description of the DE-9IM and the spatial predicates derived from it, see the following references:
  13076. <list type="bullet">
  13077. <item><description><i><see href="http://portal.opengeospatial.org/files/?artifact_id=829">OGC 99-049 OpenGIS Simple Features Specification for SQL.</see></i></description></item>
  13078. <item><description>
  13079. <i><a href="http://portal.opengeospatial.org/files/?artifact_id=25355">OGC 06-103r4 OpenGIS Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture</a></i>,
  13080. Section 6.1.15 (which provides some further details on certain predicate specifications).</description></item>
  13081. <item><description>Wikipedia article on <a href="https://en.wikipedia.org/wiki/DE-9IM">DE-9IM</a></description></item>
  13082. </list>
  13083. <para/>
  13084. Methods are provided to:
  13085. <list type="bullet">
  13086. <item><description>set and query the elements of the matrix in a convenient fashion</description></item>
  13087. <item><description>convert to and from the standard string representation(specified in SFS Section 2.1.13.2).</description></item>
  13088. <item><description>test if a matrix matches a given pattern string.</description></item>
  13089. <item><description>test if a matrix(possibly with geometry dimensions) matches a standard named spatial predicate</description></item>
  13090. </list>
  13091. </remarks>
  13092. </member>
  13093. <member name="F:NetTopologySuite.Geometries.IntersectionMatrix._matrix">
  13094. <summary>
  13095. Internal representation of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
  13096. </summary>
  13097. </member>
  13098. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor">
  13099. <summary>
  13100. Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with <c>null</c> location values.
  13101. </summary>
  13102. </member>
  13103. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor(System.String)">
  13104. <summary>
  13105. Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with the given dimension
  13106. symbols.
  13107. </summary>
  13108. <param name="elements">A string of nine dimension symbols in row major order.</param>
  13109. </member>
  13110. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.#ctor(NetTopologySuite.Geometries.IntersectionMatrix)">
  13111. <summary>
  13112. Creates an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> with the same elements as
  13113. <c>other</c>.
  13114. </summary>
  13115. <param name="other">An <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to copy.</param>
  13116. </member>
  13117. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Add(NetTopologySuite.Geometries.IntersectionMatrix)">
  13118. <summary>
  13119. Adds one matrix to another.
  13120. Addition is defined by taking the maximum dimension value of each position
  13121. in the summand matrices.
  13122. </summary>
  13123. <param name="im">The matrix to add.</param>
  13124. </member>
  13125. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTrue(NetTopologySuite.Geometries.Dimension)">
  13126. <summary>
  13127. Tests if the dimension value matches <tt>TRUE</tt>
  13128. (i.e. has value 0, 1, 2 or TRUE).
  13129. </summary>
  13130. <param name="actualDimensionValue">A number that can be stored in the <c>IntersectionMatrix</c>.
  13131. Possible values are <c>{<see cref="F:NetTopologySuite.Geometries.Dimension.True"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.False"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Dontcare"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Point"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/>, <see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/>}</c></param>
  13132. <returns><c>true</c> if the dimension value matches <see cref="F:NetTopologySuite.Geometries.Dimension.True"/></returns>
  13133. </member>
  13134. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(NetTopologySuite.Geometries.Dimension,System.Char)">
  13135. <summary>
  13136. Tests if the dimension value satisfies the dimension symbol.
  13137. </summary>
  13138. <param name="actualDimensionValue">
  13139. a number that can be stored in the <c>IntersectionMatrix</c>.
  13140. Possible values are <c>{True, False, Dontcare, 0, 1, 2}</c>.
  13141. </param>
  13142. <param name="requiredDimensionSymbol">
  13143. A character used in the string
  13144. representation of an <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
  13145. Possible values are <c>T, F, * , 0, 1, 2</c>.
  13146. </param>
  13147. <returns>
  13148. <c>true</c> if the dimension symbol encompasses the dimension value.
  13149. </returns>
  13150. </member>
  13151. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(System.String,System.String)">
  13152. <summary>
  13153. Tests if each of the actual dimension symbols in a matrix string satisfies the
  13154. corresponding required dimension symbol in a pattern string.
  13155. </summary>
  13156. <param name="actualDimensionSymbols">
  13157. Nine dimension symbols to validate.
  13158. Possible values are <c>T, F, * , 0, 1, 2</c>.
  13159. </param>
  13160. <param name="requiredDimensionSymbols">
  13161. Nine dimension symbols to validate
  13162. against. Possible values are <c>T, F, * , 0, 1, 2</c>.
  13163. </param>
  13164. <returns>
  13165. <c>true</c> if each of the required dimension
  13166. symbols encompass the corresponding actual dimension symbol.
  13167. </returns>
  13168. </member>
  13169. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Set(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
  13170. <summary>
  13171. Changes the value of one of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> elements.
  13172. </summary>
  13173. <param name="row">
  13174. The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
  13175. indicating the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  13176. </param>
  13177. <param name="column">
  13178. The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
  13179. indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  13180. </param>
  13181. <param name="dimensionValue">The new value of the element</param>
  13182. </member>
  13183. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Set(System.String)">
  13184. <summary>
  13185. Changes the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to the
  13186. dimension symbols in <c>dimensionSymbols</c>.
  13187. </summary>
  13188. <param name="dimensionSymbols">
  13189. Nine dimension symbols to which to set this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
  13190. s elements. Possible values are <c>{T, F, * , 0, 1, 2}</c>
  13191. </param>
  13192. </member>
  13193. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeast(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
  13194. <summary>
  13195. Changes the specified element to <c>minimumDimensionValue</c> if the element is less.
  13196. </summary>
  13197. <param name="row">
  13198. The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
  13199. indicating the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  13200. </param>
  13201. <param name="column">
  13202. The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
  13203. indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  13204. </param>
  13205. <param name="minimumDimensionValue">
  13206. The dimension value with which to compare the
  13207. element. The order of dimension values from least to greatest is
  13208. <c>True, False, Dontcare, 0, 1, 2</c>.
  13209. </param>
  13210. </member>
  13211. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeastIfValid(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
  13212. <summary>
  13213. If row >= 0 and column >= 0, changes the specified element to <c>minimumDimensionValue</c>
  13214. if the element is less. Does nothing if row is smaller to 0 or column is smaller to 0.
  13215. </summary>
  13216. <param name="row"></param>
  13217. <param name="column"></param>
  13218. <param name="minimumDimensionValue"></param>
  13219. </member>
  13220. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAtLeast(System.String)">
  13221. <summary>
  13222. For each element in this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />, changes the
  13223. element to the corresponding minimum dimension symbol if the element is
  13224. less.
  13225. </summary>
  13226. <param name="minimumDimensionSymbols">
  13227. Nine dimension symbols with which to
  13228. compare the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />. The
  13229. order of dimension values from least to greatest is <c>Dontcare, True, False, 0, 1, 2</c>.
  13230. </param>
  13231. </member>
  13232. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.SetAll(NetTopologySuite.Geometries.Dimension)">
  13233. <summary>
  13234. Changes the elements of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> to <c>dimensionValue</c>.
  13235. </summary>
  13236. <param name="dimensionValue">
  13237. The dimension value to which to set this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
  13238. s elements. Possible values <c>True, False, Dontcare, 0, 1, 2}</c>.
  13239. </param>
  13240. </member>
  13241. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Get(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  13242. <summary>
  13243. Returns the value of one of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />s
  13244. elements.
  13245. </summary>
  13246. <param name="row">
  13247. The row of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />, indicating
  13248. the interior, boundary or exterior of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  13249. </param>
  13250. <param name="column">
  13251. The column of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />,
  13252. indicating the interior, boundary or exterior of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  13253. </param>
  13254. <returns>The dimension value at the given matrix position.</returns>
  13255. </member>
  13256. <member name="P:NetTopologySuite.Geometries.IntersectionMatrix.Item(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  13257. <summary>
  13258. See methods Get(int, int) and Set(int, int, int value)
  13259. </summary>
  13260. </member>
  13261. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsDisjoint">
  13262. <summary>
  13263. Tests if this matrix matches <c>[FF*FF****]</c>.
  13264. </summary>
  13265. <returns>
  13266. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>'s related by
  13267. this matrix are disjoint.
  13268. </returns>
  13269. </member>
  13270. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsIntersects">
  13271. <summary>
  13272. Tests if <c>isDisjoint</c> returns <see langword="false"/>.
  13273. </summary>
  13274. <returns>
  13275. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>'s related by
  13276. this matrix intersect.
  13277. </returns>
  13278. </member>
  13279. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTouches(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  13280. <summary>
  13281. Tests if this matrix matches
  13282. <c>[FT*******]</c>, <c>[F**T*****]</c> or <c>[F***T****]</c>.
  13283. </summary>
  13284. <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13285. <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13286. <returns>
  13287. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  13288. s related by this matrix touch; Returns false
  13289. if both <see cref="T:NetTopologySuite.Geometries.Geometry"/>s are points.
  13290. </returns>
  13291. </member>
  13292. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCrosses(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  13293. <summary>
  13294. Tests whether this geometry crosses the
  13295. specified geometry.
  13296. </summary>
  13297. <remarks>
  13298. The <c>crosses</c> predicate has the following equivalent definitions:
  13299. <list type="bullet">
  13300. <item><description>The geometries have some but not all interior points in common.</description></item>
  13301. <item><description>The DE-9IM Intersection Matrix for the two geometries matches</description></item>
  13302. <list type="bullet">
  13303. <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A situations)</description></item>
  13304. <item><description><c>[T*****T**]</c> (for L/P, L/A, and A/L situations)</description></item>
  13305. <item><description><c>[0********]</c> (for L/L situations)</description></item>
  13306. </list>
  13307. </list>
  13308. For any other combination of dimensions this predicate returns <c>false</c>.
  13309. <para/>
  13310. The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations.
  13311. JTS extends the definition to apply to L/P, A/P and A/L situations as well.
  13312. This makes the relation symmetric.
  13313. </remarks>
  13314. <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13315. <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13316. <returns>
  13317. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  13318. s related by this matrix cross.
  13319. </returns>
  13320. </member>
  13321. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsWithin">
  13322. <summary>
  13323. Tests whether this matrix matches <c>[T*F**F***]</c>.
  13324. </summary>
  13325. <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> is within the second.</returns>
  13326. </member>
  13327. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsContains">
  13328. <summary>
  13329. Tests whether this matrix matches <c>[T*****FF*]</c>
  13330. </summary>
  13331. <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> contains the second.</returns>
  13332. </member>
  13333. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCovers">
  13334. <summary>
  13335. Tests if this matrix matches
  13336. <c>[T*****FF*]</c>
  13337. or <c>[*T****FF*]</c>
  13338. or <c>[***T**FF*]</c>
  13339. or <c>[****T*FF*]</c>.
  13340. </summary>
  13341. <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> covers the second</returns>
  13342. </member>
  13343. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsCoveredBy">
  13344. <summary>
  13345. Tests if this matrix matches
  13346. <c>[T*F**F***]</c>
  13347. or <c>[*TF**F***]</c>
  13348. or <c>[**FT*F***]</c>
  13349. or <c>[**F*TF***]</c>.
  13350. </summary>
  13351. <returns><c>true</c> if the first <see cref="T:NetTopologySuite.Geometries.Geometry"/> is covered by the second</returns>
  13352. </member>
  13353. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsEquals(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  13354. <summary>
  13355. Tests whether the argument dimensions are equal and
  13356. this matrix matches the pattern <c>[T*F**FFF*]</c>.
  13357. <para/>
  13358. <b>Note:</b> This pattern differs from the one stated in
  13359. <i>Simple feature access - Part 1: Common architecture</i>.
  13360. That document states the pattern as <c>[TFFFTFFFT]</c>. This would
  13361. specify that
  13362. two identical <tt>POINT</tt>s are not equal, which is not desirable behaviour.
  13363. The pattern used here has been corrected to compute equality in this situation.
  13364. </summary>
  13365. <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13366. <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13367. <returns>
  13368. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  13369. related by this matrix are equal; the
  13370. <see cref="T:NetTopologySuite.Geometries.Geometry"/>s must have the same dimension to be equal.
  13371. </returns>
  13372. </member>
  13373. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.IsOverlaps(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  13374. <summary>
  13375. Tests if this matrix matches
  13376. <list type="bullet">
  13377. <item><description><c>[T*T***T**]</c> (for two points or two surfaces)</description></item>
  13378. <item><description><c>[1*T***T**]</c> (for two curves)</description></item>
  13379. </list>
  13380. </summary>
  13381. <param name="dimensionOfGeometryA">The dimension of the first <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13382. <param name="dimensionOfGeometryB">The dimension of the second <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</param>
  13383. <returns>
  13384. <c>true</c> if the two <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  13385. s related by this matrix overlap. For this
  13386. function to return <c>true</c>, the <see cref="T:NetTopologySuite.Geometries.Geometry"/>s must
  13387. be two points, two curves or two surfaces.
  13388. </returns>
  13389. </member>
  13390. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Matches(System.String)">
  13391. <summary>
  13392. Tests whether this matrix matches the given matrix pattern
  13393. </summary>
  13394. <param name="pattern">
  13395. A pattern containing nine dimension symbols with which to
  13396. compare the entries of this matrix.Possible
  13397. symbol values are <c>{ T, F, * , 0, 1, 2}</c>.
  13398. </param>
  13399. <returns>
  13400. <c>true</c> if this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
  13401. matches the required dimension symbols.
  13402. </returns>
  13403. </member>
  13404. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.Transpose">
  13405. <summary>
  13406. Transposes this IntersectionMatrix.
  13407. </summary>
  13408. <returns>This <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" /> as a convenience,</returns>
  13409. </member>
  13410. <member name="M:NetTopologySuite.Geometries.IntersectionMatrix.ToString">
  13411. <summary>
  13412. Returns a nine-character <c>String</c> representation of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />.
  13413. </summary>
  13414. <returns>
  13415. The nine dimension symbols of this <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix" />
  13416. in row-major order.
  13417. </returns>
  13418. </member>
  13419. <member name="T:NetTopologySuite.Geometries.IPolygonal">
  13420. <summary>
  13421. Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/>
  13422. and have components that are <see cref="T:NetTopologySuite.Geometries.Polygon"/>s.
  13423. </summary>
  13424. <author>Martin Davis</author>
  13425. <seealso cref="T:NetTopologySuite.Geometries.IPuntal"/>
  13426. <seealso cref="T:NetTopologySuite.Geometries.ILineal"/>
  13427. </member>
  13428. <member name="T:NetTopologySuite.Geometries.IPuntal">
  13429. <summary>
  13430. Interface to identify all <c>Geometry</c> subclasses that have a <c>Dimension</c> of <see cref="F:NetTopologySuite.Geometries.Dimension.Point"/>
  13431. and have components that ar <see cref="T:NetTopologySuite.Geometries.Point"/>s.
  13432. </summary>
  13433. <author>Martin Davis</author>
  13434. <seealso cref="T:NetTopologySuite.Geometries.ILineal"/>
  13435. <seealso cref="T:NetTopologySuite.Geometries.IPolygonal"/>
  13436. </member>
  13437. <member name="T:NetTopologySuite.Geometries.LinearRing">
  13438. <summary>
  13439. Models an OGC SFS <c>LinearRing</c>.
  13440. </summary>
  13441. <remarks>
  13442. A <c>LinearRing</c> is a <see cref="T:NetTopologySuite.Geometries.LineString"/> which is both closed and simple.
  13443. In other words,
  13444. the first and last coordinate in the ring must be equal,
  13445. and the ring must not self-intersect.
  13446. Either orientation of the ring is allowed.
  13447. <para/>
  13448. A ring must have either 0 or 3 or more points.
  13449. The first and last points must be equal (in 2D).
  13450. If these conditions are not met, the constructors throw
  13451. an <see cref="T:System.ArgumentException"/><br/>
  13452. A ring with 3 points is invalid, because it is collapsed
  13453. and thus has a self-intersection. It is allowed to be constructed
  13454. so that it can be represented, and repaired if needed.
  13455. </remarks>
  13456. </member>
  13457. <member name="F:NetTopologySuite.Geometries.LinearRing.MinimumValidSize">
  13458. <summary>
  13459. The minimum number of vertices allowed in a valid non-empty ring.
  13460. Empty rings with 0 vertices are also valid.
  13461. </summary>
  13462. </member>
  13463. <member name="M:NetTopologySuite.Geometries.LinearRing.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
  13464. <summary>
  13465. Constructs a <c>LinearRing</c> with the vertices specified
  13466. by the given <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  13467. </summary>
  13468. <param name="points">A sequence points forming a closed and simple linestring,
  13469. or <c>null</c> to create the empty geometry.</param>
  13470. <param name="factory">The factory that creates this <c>LinearRing</c></param>
  13471. <exception cref="T:System.ArgumentException">If the ring is not closed, or has too few points</exception>
  13472. </member>
  13473. <member name="M:NetTopologySuite.Geometries.LinearRing.ValidateConstruction">
  13474. <summary>
  13475. </summary>
  13476. </member>
  13477. <member name="P:NetTopologySuite.Geometries.LinearRing.SortIndex">
  13478. <summary>
  13479. Gets a value to sort the geometry
  13480. </summary>
  13481. <remarks>
  13482. NOTE:<br/>
  13483. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  13484. In order not to break binary compatibility we did not follow.
  13485. </remarks>
  13486. </member>
  13487. <member name="P:NetTopologySuite.Geometries.LinearRing.BoundaryDimension">
  13488. <summary>
  13489. Returns <c>Dimensions.False</c>, since by definition LinearRings do not have a boundary.
  13490. </summary>
  13491. </member>
  13492. <member name="P:NetTopologySuite.Geometries.LinearRing.IsClosed">
  13493. <summary>
  13494. </summary>
  13495. </member>
  13496. <member name="P:NetTopologySuite.Geometries.LinearRing.GeometryType">
  13497. <summary>
  13498. Returns the name of this object's interface.
  13499. </summary>
  13500. <returns>"LinearRing"</returns>
  13501. </member>
  13502. <member name="M:NetTopologySuite.Geometries.LinearRing.CopyInternal">
  13503. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  13504. </member>
  13505. <member name="M:NetTopologySuite.Geometries.LinearRing.Reverse">
  13506. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
  13507. </member>
  13508. <member name="M:NetTopologySuite.Geometries.LinearRing.ReverseInternal">
  13509. <summary>
  13510. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>LINEARRING</c>s.
  13511. </summary>
  13512. <returns>A reversed geometry</returns>
  13513. </member>
  13514. <member name="P:NetTopologySuite.Geometries.LinearRing.IsCCW">
  13515. <summary>
  13516. Gets a value indicating if this <c>LINEARRING</c> is oriented <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/>
  13517. </summary>
  13518. </member>
  13519. <member name="M:NetTopologySuite.Geometries.LinearRing.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  13520. <summary>
  13521. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LinearRing"/> class.
  13522. </summary>
  13523. <param name="points">The points used for create this instance.</param>
  13524. <remarks>
  13525. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  13526. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  13527. </remarks>
  13528. <exception cref="T:System.ArgumentException">If the ring is not closed, or has too few points</exception>
  13529. </member>
  13530. <member name="T:NetTopologySuite.Geometries.LinearRingOrientation">
  13531. <summary>
  13532. An enumeration of ring orientation values
  13533. </summary>
  13534. </member>
  13535. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise">
  13536. <summary>
  13537. The orientation of the ring's coordinates is counter-clockwise.
  13538. </summary>
  13539. </member>
  13540. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.LeftHandRule">
  13541. <summary>
  13542. The orientation of the ring's coordinates follows the left-hand-rule,
  13543. saying that if you follow the ring in the direction of its coordinates
  13544. your left hand will be inside the ring.
  13545. </summary>
  13546. <seealso cref="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise"/>
  13547. </member>
  13548. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CCW">
  13549. <summary>
  13550. The orientation of the ring's coordinates is counter-clockwise.
  13551. </summary>
  13552. </member>
  13553. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.DontCare">
  13554. <summary>
  13555. The orientation of the rings coordinates does not matter.
  13556. </summary>
  13557. </member>
  13558. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.Default">
  13559. <summary>
  13560. The default orientation of the rings coordinates.
  13561. Set to <see cref="F:NetTopologySuite.Geometries.LinearRingOrientation.CounterClockwise"/>
  13562. </summary>
  13563. </member>
  13564. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.Clockwise">
  13565. <summary>
  13566. The orientation of the ring's coordinates is clockwise.
  13567. </summary>
  13568. </member>
  13569. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.RightHandRule">
  13570. <summary>
  13571. The orientation of the ring's coordinates follows the right-hand-rule,
  13572. saying that if you follow the ring in the direction of its coordinates
  13573. your right hand will be inside the ring.
  13574. </summary>
  13575. <seealso cref="F:NetTopologySuite.Geometries.LinearRingOrientation.Clockwise"/>
  13576. </member>
  13577. <member name="F:NetTopologySuite.Geometries.LinearRingOrientation.CW">
  13578. <summary>
  13579. The orientation of the ring's coordinates is clockwise.
  13580. </summary>
  13581. </member>
  13582. <member name="T:NetTopologySuite.Geometries.LineSegment">
  13583. <summary>
  13584. Represents a line segment defined by two <c>Coordinate</c>s.
  13585. Provides methods to compute various geometric properties
  13586. and relationships of line segments.
  13587. This class is designed to be easily mutable (to the extent of
  13588. having its contained points public).
  13589. This supports a common pattern of reusing a single LineSegment
  13590. object as a way of computing segment properties on the
  13591. segments defined by arrays or lists of <c>Coordinate</c>s.
  13592. </summary>
  13593. </member>
  13594. <member name="P:NetTopologySuite.Geometries.LineSegment.P1">
  13595. <summary>
  13596. The end-point
  13597. </summary>
  13598. </member>
  13599. <member name="P:NetTopologySuite.Geometries.LineSegment.P0">
  13600. <summary>
  13601. The start-point
  13602. </summary>
  13603. </member>
  13604. <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  13605. <summary>
  13606. Creates an instance of this class using two coordinates
  13607. </summary>
  13608. <param name="p0">The start-point</param>
  13609. <param name="p1">The end-point</param>
  13610. </member>
  13611. <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(NetTopologySuite.Geometries.LineSegment)">
  13612. <summary>
  13613. Creates an instance of this class using another instance
  13614. </summary>
  13615. <param name="ls"></param>
  13616. </member>
  13617. <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor">
  13618. <summary>
  13619. </summary>
  13620. </member>
  13621. <member name="M:NetTopologySuite.Geometries.LineSegment.#ctor(System.Double,System.Double,System.Double,System.Double)">
  13622. <summary>
  13623. Creates an instance of this class
  13624. </summary>
  13625. <param name="x0"></param>
  13626. <param name="y0"></param>
  13627. <param name="x1"></param>
  13628. <param name="y1"></param>
  13629. </member>
  13630. <member name="M:NetTopologySuite.Geometries.LineSegment.GetCoordinate(System.Int32)">
  13631. <summary>
  13632. </summary>
  13633. <param name="i"></param>
  13634. <returns></returns>
  13635. </member>
  13636. <member name="M:NetTopologySuite.Geometries.LineSegment.SetCoordinates(NetTopologySuite.Geometries.LineSegment)">
  13637. <summary>
  13638. </summary>
  13639. <param name="ls"></param>
  13640. </member>
  13641. <member name="M:NetTopologySuite.Geometries.LineSegment.SetCoordinates(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  13642. <summary>
  13643. </summary>
  13644. <param name="p0"></param>
  13645. <param name="p1"></param>
  13646. </member>
  13647. <member name="P:NetTopologySuite.Geometries.LineSegment.MinX">
  13648. <summary>
  13649. Gets the minimum X ordinate
  13650. </summary>
  13651. </member>
  13652. <member name="P:NetTopologySuite.Geometries.LineSegment.MaxX">
  13653. <summary>
  13654. Gets the maximum X ordinate
  13655. </summary>
  13656. </member>
  13657. <member name="P:NetTopologySuite.Geometries.LineSegment.MinY">
  13658. <summary>
  13659. Gets the minimum Y ordinate
  13660. </summary>
  13661. </member>
  13662. <member name="P:NetTopologySuite.Geometries.LineSegment.MaxY">
  13663. <summary>
  13664. Gets the maximum Y ordinate
  13665. </summary>
  13666. </member>
  13667. <member name="P:NetTopologySuite.Geometries.LineSegment.Length">
  13668. <summary>
  13669. Computes the length of the line segment.
  13670. </summary>
  13671. <returns>The length of the line segment.</returns>
  13672. </member>
  13673. <member name="P:NetTopologySuite.Geometries.LineSegment.IsHorizontal">
  13674. <summary>
  13675. Tests whether the segment is horizontal.
  13676. </summary>
  13677. <returns><c>true</c> if the segment is horizontal.</returns>
  13678. </member>
  13679. <member name="P:NetTopologySuite.Geometries.LineSegment.IsVertical">
  13680. <summary>
  13681. Tests whether the segment is vertical.
  13682. </summary>
  13683. <returns><c>true</c> if the segment is vertical.</returns>
  13684. </member>
  13685. <member name="M:NetTopologySuite.Geometries.LineSegment.OrientationIndex(NetTopologySuite.Geometries.LineSegment)">
  13686. <summary>
  13687. Determines the orientation of a LineSegment relative to this segment.
  13688. The concept of orientation is specified as follows:
  13689. Given two line segments A and L,
  13690. A is to the left of a segment L if A lies wholly in the
  13691. closed half-plane lying to the left of L
  13692. A is to the right of a segment L if A lies wholly in the
  13693. closed half-plane lying to the right of L
  13694. otherwise, A has indeterminate orientation relative to L. This
  13695. happens if A is collinear with L or if A crosses the line determined by L.
  13696. </summary>
  13697. <param name="seg">The <c>LineSegment</c> to compare.</param>
  13698. <returns>
  13699. 1 if <c>seg</c> is to the left of this segment,
  13700. -1 if <c>seg</c> is to the right of this segment,
  13701. 0 if <c>seg</c> is collinear to or crosses this segment.
  13702. </returns>
  13703. </member>
  13704. <member name="M:NetTopologySuite.Geometries.LineSegment.OrientationIndex(NetTopologySuite.Geometries.Coordinate)">
  13705. <summary>
  13706. Determines the orientation index of a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> relative to this segment.
  13707. The orientation index is as defined in <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>.
  13708. </summary>
  13709. <returns>
  13710. <list type="table">
  13711. <item><term>1</term><description>if <c>p</c> is to the left of this segment</description></item>
  13712. <item><term>-1</term><description>if <c>p</c> is to the right of this segment</description></item>
  13713. <item><term>0</term><description>if <c>p</c> is collinear with this segment</description></item>
  13714. </list>"
  13715. </returns>
  13716. </member>
  13717. <member name="M:NetTopologySuite.Geometries.LineSegment.Reverse">
  13718. <summary>
  13719. Reverses the direction of the line segment.
  13720. </summary>
  13721. </member>
  13722. <member name="M:NetTopologySuite.Geometries.LineSegment.Normalize">
  13723. <summary>
  13724. Puts the line segment into a normalized form.
  13725. This is useful for using line segments in maps and indexes when
  13726. topological equality rather than exact equality is desired.
  13727. </summary>
  13728. </member>
  13729. <member name="P:NetTopologySuite.Geometries.LineSegment.Angle">
  13730. <returns>
  13731. The angle this segment makes with the x-axis (in radians).
  13732. </returns>
  13733. </member>
  13734. <member name="P:NetTopologySuite.Geometries.LineSegment.MidPoint">
  13735. <summary>The midpoint of the segment</summary>
  13736. </member>
  13737. <member name="M:NetTopologySuite.Geometries.LineSegment.ComputeMidPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  13738. <summary>
  13739. Computes the midpoint of two coordinates
  13740. </summary>
  13741. <remarks>This method is named <c>midPoint</c> in JTS.</remarks>
  13742. <param name="p0">A coordinate</param>
  13743. <param name="p1">A coordinate</param>
  13744. <returns>The mid point</returns>
  13745. </member>
  13746. <member name="M:NetTopologySuite.Geometries.LineSegment.Distance(NetTopologySuite.Geometries.LineSegment)">
  13747. <summary>
  13748. Computes the distance between this line segment and another one.
  13749. </summary>
  13750. <param name="ls"></param>
  13751. <returns></returns>
  13752. </member>
  13753. <member name="M:NetTopologySuite.Geometries.LineSegment.Distance(NetTopologySuite.Geometries.Coordinate)">
  13754. <summary>
  13755. Computes the distance between this line segment and a point.
  13756. </summary>
  13757. </member>
  13758. <member name="M:NetTopologySuite.Geometries.LineSegment.DistancePerpendicular(NetTopologySuite.Geometries.Coordinate)">
  13759. <summary>
  13760. Computes the perpendicular distance between the (infinite) line defined
  13761. by this line segment and a point.
  13762. <para/>
  13763. If the segment has zero length this returns the distance between
  13764. the segment and the point.
  13765. </summary>
  13766. <param name="p">The point to compute the distance to</param>
  13767. <returns>The perpendicular distance between the line and point</returns>
  13768. </member>
  13769. <member name="M:NetTopologySuite.Geometries.LineSegment.DistancePerpendicularOriented(NetTopologySuite.Geometries.Coordinate)">
  13770. <summary>Computes the oriented perpendicular distance between the (infinite) line
  13771. defined by this line segment and a point.
  13772. The oriented distance is positive if the point on the left of the line,
  13773. and negative if it is on the right.
  13774. If the segment has zero length this returns the distance between
  13775. the segment and the point.
  13776. </summary>
  13777. <param name="p">The point to compute the distance to</param>
  13778. <returns>The oriented perpendicular distance between the line and point</returns>
  13779. </member>
  13780. <member name="M:NetTopologySuite.Geometries.LineSegment.PointAlong(System.Double)">
  13781. <summary>
  13782. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> that lies a given
  13783. fraction along the line defined by this segment.
  13784. </summary>
  13785. <remarks>
  13786. A fraction of <c>0.0</c> returns the start point of the segment;
  13787. A fraction of <c>1.0</c> returns the end point of the segment.
  13788. If the fraction is &lt; 0.0 or &gt; 1.0 the point returned
  13789. will lie before the start or beyond the end of the segment.
  13790. </remarks>
  13791. <param name="segmentLengthFraction"> the fraction of the segment length along the line</param>
  13792. <returns> the point at that distance</returns>
  13793. </member>
  13794. <member name="M:NetTopologySuite.Geometries.LineSegment.PointAlongOffset(System.Double,System.Double)">
  13795. <summary>
  13796. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> that lies a given
  13797. </summary>
  13798. <remarks>
  13799. A fraction along the line defined by this segment and offset from
  13800. the segment by a given distance.
  13801. A fraction of <c>0.0</c> offsets from the start point of the segment;
  13802. A fraction of <c>1.0</c> offsets from the end point of the segment.
  13803. The computed point is offset to the left of the line if the offset distance is
  13804. positive, to the right if negative.
  13805. </remarks>
  13806. <param name="segmentLengthFraction"> the fraction of the segment length along the line</param>
  13807. <param name="offsetDistance"> the distance the point is offset from the segment</param>
  13808. (positive is to the left, negative is to the right)
  13809. <returns> the point at that distance and offset</returns>
  13810. <exception cref="T:System.ApplicationException"> if the segment has zero length</exception>
  13811. </member>
  13812. <member name="M:NetTopologySuite.Geometries.LineSegment.ProjectionFactor(NetTopologySuite.Geometries.Coordinate)">
  13813. <summary>Computes the Projection Factor for the projection of the point p
  13814. onto this LineSegment. The Projection Factor is the constant r
  13815. by which the vector for this segment must be multiplied to
  13816. equal the vector for the projection of <tt>p</tt> on the line
  13817. defined by this segment.
  13818. <para/>
  13819. The projection factor will lie in the range <tt>(-inf, +inf)</tt>,
  13820. or be <c>NaN</c> if the line segment has zero length.
  13821. </summary>
  13822. <param name="p">The point to compute the factor for</param>
  13823. <returns>The projection factor for the point</returns>
  13824. </member>
  13825. <member name="M:NetTopologySuite.Geometries.LineSegment.SegmentFraction(NetTopologySuite.Geometries.Coordinate)">
  13826. <summary>
  13827. Computes the fraction of distance (in [0.0, 1.0])
  13828. that the projection of a point occurs along this line segment.
  13829. If the point is beyond either ends of the line segment,
  13830. the closest fractional value (0.0 or 1.0) is returned.
  13831. </summary>
  13832. <remarks>
  13833. Essentially, this is the <see cref="M:NetTopologySuite.Geometries.LineSegment.ProjectionFactor(NetTopologySuite.Geometries.Coordinate)" /> clamped to
  13834. the range [0.0, 1.0].
  13835. </remarks>
  13836. <param name="inputPt"> the point</param>
  13837. <returns> the fraction along the line segment the projection of the point occurs</returns>
  13838. </member>
  13839. <member name="M:NetTopologySuite.Geometries.LineSegment.Project(NetTopologySuite.Geometries.Coordinate)">
  13840. <summary>
  13841. Compute the projection of a point onto the line determined
  13842. by this line segment.
  13843. Note that the projected point may lie outside the line segment.
  13844. If this is the case, the projection factor will lie outside the range [0.0, 1.0].
  13845. </summary>
  13846. <param name="p"></param>
  13847. <returns></returns>
  13848. </member>
  13849. <member name="M:NetTopologySuite.Geometries.LineSegment.Project(NetTopologySuite.Geometries.LineSegment)">
  13850. <summary>
  13851. Project a line segment onto this line segment and return the resulting
  13852. line segment. The returned line segment will be a subset of
  13853. the target line line segment. This subset may be null, if
  13854. the segments are oriented in such a way that there is no projection.
  13855. Note that the returned line may have zero length (i.e. the same endpoints).
  13856. This can happen for instance if the lines are perpendicular to one another.
  13857. </summary>
  13858. <param name="seg">The line segment to project.</param>
  13859. <returns>The projected line segment, or <c>null</c> if there is no overlap.</returns>
  13860. </member>
  13861. <member name="M:NetTopologySuite.Geometries.LineSegment.Offset(System.Double)">
  13862. <summary>
  13863. Computes the <see cref="T:NetTopologySuite.Geometries.LineSegment"/> that is offset from
  13864. the segment by a given distance.
  13865. The computed segment is offset to the left of the line if the offset distance is
  13866. positive, to the right if negative.
  13867. </summary>
  13868. <param name="offsetDistance">The distance the point is offset from the segment
  13869. (positive is to the left, negative is to the right)</param>
  13870. <returns>A line segment offset by the specified distance</returns>
  13871. <exception cref="T:System.ApplicationException">Thrown if the segment has zero length</exception>
  13872. </member>
  13873. <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoint(NetTopologySuite.Geometries.Coordinate)">
  13874. <summary>
  13875. Computes the closest point on this line segment to another point.
  13876. </summary>
  13877. <param name="p">The point to find the closest point to.</param>
  13878. <returns>
  13879. A Coordinate which is the closest point on the line segment to the point p.
  13880. </returns>
  13881. </member>
  13882. <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoints(NetTopologySuite.Geometries.LineSegment)">
  13883. <summary>
  13884. Computes the closest points on a line segment.
  13885. </summary>
  13886. <param name="line"></param>
  13887. <returns>
  13888. A pair of Coordinates which are the closest points on the line segments.
  13889. </returns>
  13890. </member>
  13891. <member name="M:NetTopologySuite.Geometries.LineSegment.ClosestPoints(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Algorithm.ElevationModel)">
  13892. <summary>
  13893. Computes the closest points on a line segment.
  13894. </summary>
  13895. <param name="line"></param>
  13896. <returns>
  13897. A pair of Coordinates which are the closest points on the line segments.
  13898. </returns>
  13899. </member>
  13900. <member name="M:NetTopologySuite.Geometries.LineSegment.Reflect(NetTopologySuite.Geometries.Coordinate)">
  13901. <summary>
  13902. Computes the reflection of a point in the line defined
  13903. by this line segment.
  13904. </summary>
  13905. <param name="p">The point to reflect</param>
  13906. <returns>The reflected point</returns>
  13907. </member>
  13908. <member name="M:NetTopologySuite.Geometries.LineSegment.Intersection(NetTopologySuite.Geometries.LineSegment)">
  13909. <summary>
  13910. Computes an intersection point between two segments, if there is one.
  13911. There may be 0, 1 or many intersection points between two segments.
  13912. If there are 0, null is returned. If there is 1 or more, a single one
  13913. is returned (chosen at the discretion of the algorithm). If
  13914. more information is required about the details of the intersection,
  13915. the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
  13916. </summary>
  13917. <param name="line">A line segment</param>
  13918. <returns> An intersection point, or <c>null</c> if there is none.</returns>
  13919. <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
  13920. </member>
  13921. <member name="M:NetTopologySuite.Geometries.LineSegment.Intersection(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Algorithm.ElevationModel)">
  13922. <summary>
  13923. Computes an intersection point between two segments, if there is one.
  13924. There may be 0, 1 or many intersection points between two segments.
  13925. If there are 0, null is returned. If there is 1 or more, a single one
  13926. is returned (chosen at the discretion of the algorithm). If
  13927. more information is required about the details of the intersection,
  13928. the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
  13929. </summary>
  13930. <param name="line">A line segment</param>
  13931. <param name="em">An elevation model. May be <c>null</c></param>
  13932. <returns> An intersection point, or <c>null</c> if there is none.</returns>
  13933. <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
  13934. </member>
  13935. <member name="M:NetTopologySuite.Geometries.LineSegment.LineIntersection(NetTopologySuite.Geometries.LineSegment)">
  13936. <summary>
  13937. Computes the intersection point of the lines defined by two segments, if there is one.
  13938. </summary>
  13939. <remarks>
  13940. There may be 0, 1 or an infinite number of intersection points between two lines.
  13941. If there is a unique intersection point, it is returned.
  13942. Otherwise, <c>null</c> is returned.
  13943. If more information is required about the details of the intersection,
  13944. the <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/> class should be used.
  13945. </remarks>
  13946. <param name="line">A line segment defining a straight line</param>
  13947. <returns>An intersection point, or <c>null</c> if there is none or an infinite number</returns>
  13948. <seealso cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
  13949. </member>
  13950. <member name="M:NetTopologySuite.Geometries.LineSegment.ToGeometry(NetTopologySuite.Geometries.GeometryFactory)">
  13951. <summary>
  13952. Creates a LineString with the same coordinates as this segment
  13953. </summary>
  13954. <param name="geomFactory">the geometry factory to use</param>
  13955. <returns>A LineString with the same geometry as this segment</returns>
  13956. </member>
  13957. <member name="M:NetTopologySuite.Geometries.LineSegment.Equals(System.Object)">
  13958. <summary>
  13959. Returns <c>true</c> if <c>o</c> has the same values for its points.
  13960. </summary>
  13961. <param name="o">A <c>LineSegment</c> with which to do the comparison.</param>
  13962. <returns>
  13963. <c>true</c> if <c>o</c> is a <c>LineSegment</c>
  13964. with the same values for the x and y ordinates.
  13965. </returns>
  13966. </member>
  13967. <member name="M:NetTopologySuite.Geometries.LineSegment.op_Equality(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  13968. <summary>
  13969. </summary>
  13970. <param name="obj1"></param>
  13971. <param name="obj2"></param>
  13972. <returns></returns>
  13973. </member>
  13974. <member name="M:NetTopologySuite.Geometries.LineSegment.op_Inequality(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  13975. <summary>
  13976. </summary>
  13977. <param name="obj1"></param>
  13978. <param name="obj2"></param>
  13979. <returns></returns>
  13980. </member>
  13981. <member name="M:NetTopologySuite.Geometries.LineSegment.CompareTo(NetTopologySuite.Geometries.LineSegment)">
  13982. <summary>
  13983. Compares this object with the specified object for order.
  13984. Uses the standard lexicographic ordering for the points in the LineSegment.
  13985. </summary>
  13986. <param name="other">
  13987. The <c>LineSegment</c> with which this <c>LineSegment</c>
  13988. is being compared.
  13989. </param>
  13990. <returns>
  13991. A negative integer, zero, or a positive integer as this <c>LineSegment</c>
  13992. is less than, equal to, or greater than the specified <c>LineSegment</c>.
  13993. </returns>
  13994. </member>
  13995. <member name="M:NetTopologySuite.Geometries.LineSegment.EqualsTopologically(NetTopologySuite.Geometries.LineSegment)">
  13996. <summary>
  13997. Returns <c>true</c> if <c>other</c> is
  13998. topologically equal to this LineSegment (e.g. irrespective
  13999. of orientation).
  14000. </summary>
  14001. <param name="other">
  14002. A <c>LineSegment</c> with which to do the comparison.
  14003. </param>
  14004. <returns>
  14005. <c>true</c> if <c>other</c> is a <c>LineSegment</c>
  14006. with the same values for the x and y ordinates.
  14007. </returns>
  14008. </member>
  14009. <member name="M:NetTopologySuite.Geometries.LineSegment.ToString">
  14010. <summary>
  14011. </summary>
  14012. <returns></returns>
  14013. </member>
  14014. <member name="M:NetTopologySuite.Geometries.LineSegment.GetHashCode">
  14015. <summary>
  14016. Return HashCode.
  14017. </summary>
  14018. </member>
  14019. <member name="T:NetTopologySuite.Geometries.LineString">
  14020. <summary>
  14021. Models an OGC-style <c>LineString</c>
  14022. </summary>
  14023. <remarks>
  14024. A LineString consists of a sequence of two or more vertices,
  14025. along with all points along the linearly-interpolated curves
  14026. (line segments) between each
  14027. pair of consecutive vertices.
  14028. Consecutive vertices may be equal.
  14029. The line segments in the line may intersect each other (in other words,
  14030. the <c>LineString</c> may "curl back" in itself and self-intersect.
  14031. <c>LineString</c>s with exactly two identical points are invalid.
  14032. <para>A <c>LineString</c> must have either 0 or <see cref="F:NetTopologySuite.Geometries.LineString.MinimumValidSize"/> or more points.
  14033. If these conditions are not met, the constructors throw an <see cref="T:System.ArgumentException"/>.
  14034. </para>
  14035. </remarks>
  14036. </member>
  14037. <member name="F:NetTopologySuite.Geometries.LineString.MinimumValidSize">
  14038. <summary>
  14039. The minimum number of vertices allowed in a valid non-empty linestring.
  14040. Empty linestrings with 0 vertices are also valid.
  14041. </summary>
  14042. </member>
  14043. <member name="F:NetTopologySuite.Geometries.LineString.Empty">
  14044. <summary>
  14045. Represents an empty <c>LineString</c>.
  14046. </summary>
  14047. </member>
  14048. <member name="F:NetTopologySuite.Geometries.LineString._points">
  14049. <summary>
  14050. The points of this <c>LineString</c>.
  14051. </summary>
  14052. </member>
  14053. <member name="M:NetTopologySuite.Geometries.LineString.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  14054. <summary>
  14055. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LineString"/> class.
  14056. </summary>
  14057. <remarks>
  14058. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  14059. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  14060. </remarks>
  14061. <param name="points">The coordinates used for create this <see cref="T:NetTopologySuite.Geometries.LineString" />.</param>
  14062. <exception cref="T:System.ArgumentException">If too few points are provided</exception>
  14063. </member>
  14064. <member name="M:NetTopologySuite.Geometries.LineString.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
  14065. <summary>
  14066. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.LineString"/> class.
  14067. </summary>
  14068. <param name="points">
  14069. The points of the <c>LineString</c>, or <c>null</c>
  14070. to create the empty point. Consecutive points may not be equal.
  14071. </param>
  14072. <param name="factory"></param>
  14073. <exception cref="T:System.ArgumentException">If too few points are provided</exception>
  14074. </member>
  14075. <member name="P:NetTopologySuite.Geometries.LineString.SortIndex">
  14076. <summary>
  14077. Gets a value to sort the geometry
  14078. </summary>
  14079. <remarks>
  14080. NOTE:<br/>
  14081. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  14082. In order not to break binary compatibility we did not follow.
  14083. </remarks>
  14084. </member>
  14085. <member name="P:NetTopologySuite.Geometries.LineString.Coordinates">
  14086. <summary>
  14087. Returns an array containing the values of all the vertices for
  14088. this geometry.
  14089. </summary>
  14090. <remarks>
  14091. If the geometry is a composite, the array will contain all the vertices
  14092. for the components, in the order in which the components occur in the geometry.
  14093. <para>
  14094. In general, the array cannot be assumed to be the actual internal
  14095. storage for the vertices. Thus modifying the array
  14096. may not modify the geometry itself.
  14097. Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> method
  14098. (possibly on the components) to modify the underlying data.
  14099. If the coordinates are modified,
  14100. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
  14101. </para>
  14102. </remarks>
  14103. <returns>The vertices of this <c>Geometry</c>.</returns>
  14104. <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
  14105. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
  14106. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
  14107. </member>
  14108. <member name="M:NetTopologySuite.Geometries.LineString.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
  14109. <summary>
  14110. Gets an array of <see cref="T:System.Double"/> ordinate values
  14111. </summary>
  14112. <param name="ordinate">The ordinate index</param>
  14113. <returns>An array of ordinate values</returns>
  14114. </member>
  14115. <member name="P:NetTopologySuite.Geometries.LineString.CoordinateSequence">
  14116. <summary>
  14117. </summary>
  14118. </member>
  14119. <member name="M:NetTopologySuite.Geometries.LineString.GetCoordinateN(System.Int32)">
  14120. <summary>
  14121. </summary>
  14122. <param name="n"></param>
  14123. <returns></returns>
  14124. </member>
  14125. <member name="P:NetTopologySuite.Geometries.LineString.Coordinate">
  14126. <summary>
  14127. </summary>
  14128. </member>
  14129. <member name="P:NetTopologySuite.Geometries.LineString.Dimension">
  14130. <summary>
  14131. </summary>
  14132. </member>
  14133. <member name="P:NetTopologySuite.Geometries.LineString.BoundaryDimension">
  14134. <summary>
  14135. </summary>
  14136. </member>
  14137. <member name="P:NetTopologySuite.Geometries.LineString.IsEmpty">
  14138. <summary>
  14139. </summary>
  14140. </member>
  14141. <member name="P:NetTopologySuite.Geometries.LineString.NumPoints">
  14142. <summary>
  14143. </summary>
  14144. </member>
  14145. <member name="M:NetTopologySuite.Geometries.LineString.GetPointN(System.Int32)">
  14146. <summary>
  14147. Gets
  14148. </summary>
  14149. <param name="n"></param>
  14150. <returns></returns>
  14151. </member>
  14152. <member name="P:NetTopologySuite.Geometries.LineString.StartPoint">
  14153. <summary>
  14154. Gets a value indicating the start point of this <c>LINESTRING</c>
  14155. </summary>
  14156. </member>
  14157. <member name="P:NetTopologySuite.Geometries.LineString.EndPoint">
  14158. <summary>
  14159. Gets a value indicating the end point of this <c>LINESTRING</c>
  14160. </summary>
  14161. </member>
  14162. <member name="P:NetTopologySuite.Geometries.LineString.IsClosed">
  14163. <summary>
  14164. Gets a value indicating if this <c>LINESTRING</c> is closed.
  14165. </summary>
  14166. </member>
  14167. <member name="P:NetTopologySuite.Geometries.LineString.IsRing">
  14168. <summary>
  14169. Gets a value indicating if this <c>LINESTRING</c> forms a ring.
  14170. </summary>
  14171. </member>
  14172. <member name="P:NetTopologySuite.Geometries.LineString.GeometryType">
  14173. <summary>
  14174. Returns the name of this object's interface.
  14175. </summary>
  14176. <returns>"LineString"</returns>
  14177. </member>
  14178. <member name="P:NetTopologySuite.Geometries.LineString.OgcGeometryType">
  14179. <summary>
  14180. Gets the OGC geometry type
  14181. </summary>
  14182. </member>
  14183. <member name="P:NetTopologySuite.Geometries.LineString.Length">
  14184. <summary>
  14185. Returns the length of this <c>LineString</c>
  14186. </summary>
  14187. <returns>The length of the polygon.</returns>
  14188. </member>
  14189. <member name="P:NetTopologySuite.Geometries.LineString.Boundary">
  14190. <summary>
  14191. Returns the boundary, or an empty geometry of appropriate dimension
  14192. if this <c>Geometry</c> is empty.
  14193. For a discussion of this function, see the OpenGIS Simple
  14194. Features Specification. As stated in SFS Section 2.1.13.1, "the boundary
  14195. of a Geometry is a set of Geometries of the next lower dimension."
  14196. </summary>
  14197. <returns>The closure of the combinatorial boundary of this <c>Geometry</c>.</returns>
  14198. </member>
  14199. <member name="M:NetTopologySuite.Geometries.LineString.Reverse">
  14200. <summary>
  14201. Creates a <see cref="T:NetTopologySuite.Geometries.LineString" /> whose coordinates are in the reverse order of this objects.
  14202. </summary>
  14203. <returns>A <see cref="T:NetTopologySuite.Geometries.LineString" /> with coordinates in the reverse order.</returns>
  14204. </member>
  14205. <member name="M:NetTopologySuite.Geometries.LineString.ReverseInternal">
  14206. <summary>
  14207. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>LINESTRING</c>s.
  14208. </summary>
  14209. <returns>A reversed geometry</returns>
  14210. </member>
  14211. <member name="M:NetTopologySuite.Geometries.LineString.IsCoordinate(NetTopologySuite.Geometries.Coordinate)">
  14212. <summary>
  14213. Returns true if the given point is a vertex of this <c>LineString</c>.
  14214. </summary>
  14215. <param name="pt">The <c>Coordinate</c> to check.</param>
  14216. <returns><c>true</c> if <c>pt</c> is one of this <c>LineString</c>'s vertices.</returns>
  14217. </member>
  14218. <member name="M:NetTopologySuite.Geometries.LineString.ComputeEnvelopeInternal">
  14219. <summary>
  14220. </summary>
  14221. <returns></returns>
  14222. </member>
  14223. <member name="M:NetTopologySuite.Geometries.LineString.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  14224. <summary>
  14225. </summary>
  14226. <param name="other"></param>
  14227. <param name="tolerance"></param>
  14228. <returns></returns>
  14229. </member>
  14230. <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
  14231. <summary>
  14232. </summary>
  14233. <param name="filter"></param>
  14234. </member>
  14235. <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
  14236. <summary>
  14237. Performs an operation on the coordinates in this <c>Geometry</c>'s <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
  14238. </summary>
  14239. <remarks>
  14240. If the filter reports that a coordinate value has been changed,
  14241. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> will be called automatically.
  14242. </remarks>
  14243. <param name="filter">The filter to apply</param>
  14244. </member>
  14245. <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
  14246. <inheritdoc />
  14247. </member>
  14248. <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
  14249. <summary>
  14250. Performs an operation with or on this <c>Geometry</c> and its
  14251. subelement <c>Geometry</c>s (if any).
  14252. Only GeometryCollections and subclasses
  14253. have subelement Geometry's.
  14254. </summary>
  14255. <param name="filter">
  14256. The filter to apply to this <c>Geometry</c> (and
  14257. its children, if it is a <c>GeometryCollection</c>).
  14258. </param>
  14259. </member>
  14260. <member name="M:NetTopologySuite.Geometries.LineString.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
  14261. <summary>
  14262. Performs an operation with or on this Geometry and its
  14263. component Geometry's. Only GeometryCollections and
  14264. Polygons have component Geometry's; for Polygons they are the LinearRings
  14265. of the shell and holes.
  14266. </summary>
  14267. <param name="filter">The filter to apply to this <c>Geometry</c>.</param>
  14268. </member>
  14269. <member name="M:NetTopologySuite.Geometries.LineString.CopyInternal">
  14270. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  14271. </member>
  14272. <member name="M:NetTopologySuite.Geometries.LineString.Normalize">
  14273. <summary>
  14274. Normalizes a <c>LineString</c>. A normalized <c>LineString</c>
  14275. has the first point which is not equal to it's reflected point
  14276. less than the reflected point.
  14277. </summary>
  14278. </member>
  14279. <member name="M:NetTopologySuite.Geometries.LineString.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)">
  14280. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.IsEquivalentClass(NetTopologySuite.Geometries.Geometry)"/>
  14281. </member>
  14282. <member name="M:NetTopologySuite.Geometries.LineString.CompareToSameClass(System.Object)">
  14283. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object)"/>
  14284. </member>
  14285. <member name="M:NetTopologySuite.Geometries.LineString.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  14286. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})"/>
  14287. </member>
  14288. <member name="P:NetTopologySuite.Geometries.LineString.Item(System.Int32)">
  14289. <summary>
  14290. </summary>
  14291. <param name="n"></param>
  14292. <returns></returns>
  14293. </member>
  14294. <member name="P:NetTopologySuite.Geometries.LineString.Count">
  14295. <summary>
  14296. </summary>
  14297. <value></value>
  14298. </member>
  14299. <member name="T:NetTopologySuite.Geometries.Location">
  14300. <summary>
  14301. The location of a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> relative to a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  14302. </summary>
  14303. </member>
  14304. <member name="F:NetTopologySuite.Geometries.Location.Interior">
  14305. <summary>
  14306. DE-9IM row index of the interior of the first point and column index of
  14307. the interior of the second point. Location value for the interior of a
  14308. point.
  14309. </summary>
  14310. <remarks>int value = 0;</remarks>
  14311. </member>
  14312. <member name="F:NetTopologySuite.Geometries.Location.Boundary">
  14313. <summary>
  14314. DE-9IM row index of the boundary of the first point and column index of
  14315. the boundary of the second point. Location value for the boundary of a
  14316. point.
  14317. </summary>
  14318. <remarks>int value = 1;</remarks>
  14319. </member>
  14320. <member name="F:NetTopologySuite.Geometries.Location.Exterior">
  14321. <summary>
  14322. DE-9IM row index of the exterior of the first point and column index of
  14323. the exterior of the second point. Location value for the exterior of a
  14324. point.
  14325. </summary>
  14326. <remarks>int value = 2;</remarks>
  14327. </member>
  14328. <member name="F:NetTopologySuite.Geometries.Location.Null">
  14329. <summary>
  14330. Used for uninitialized location values.
  14331. </summary>
  14332. <remarks>int value = 1;</remarks>
  14333. </member>
  14334. <member name="T:NetTopologySuite.Geometries.LocationUtility">
  14335. <summary>
  14336. Utility class for <see cref="T:NetTopologySuite.Geometries.Location"/> enumeration
  14337. </summary>
  14338. </member>
  14339. <member name="M:NetTopologySuite.Geometries.LocationUtility.ToLocationSymbol(NetTopologySuite.Geometries.Location)">
  14340. <summary>
  14341. Converts the location value to a location symbol, for example, <c>EXTERIOR => 'e'</c>.
  14342. </summary>
  14343. <param name="locationValue"></param>
  14344. <returns>Either 'e', 'b', 'i' or '-'.</returns>
  14345. </member>
  14346. <member name="T:NetTopologySuite.Geometries.MultiLineString">
  14347. <summary>
  14348. Models a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
  14349. <para/>
  14350. Any collection of <c>LineString</c>s is a valid <c>MultiLineString</c>.
  14351. </summary>
  14352. </member>
  14353. <member name="F:NetTopologySuite.Geometries.MultiLineString.Empty">
  14354. <summary>
  14355. Represents an empty <c>MultiLineString</c>.
  14356. </summary>
  14357. </member>
  14358. <member name="M:NetTopologySuite.Geometries.MultiLineString.#ctor(NetTopologySuite.Geometries.LineString[],NetTopologySuite.Geometries.GeometryFactory)">
  14359. <summary>
  14360. Constructs a <c>MultiLineString</c>.
  14361. </summary>
  14362. <param name="lineStrings">
  14363. The <c>LineString</c>s for this <c>MultiLineString</c>,
  14364. or <c>null</c> or an empty array to create the empty
  14365. point. Elements may be empty <c>LineString</c>s,
  14366. but not <c>null</c>s.
  14367. </param>
  14368. <param name="factory"></param>
  14369. </member>
  14370. <member name="M:NetTopologySuite.Geometries.MultiLineString.#ctor(NetTopologySuite.Geometries.LineString[])">
  14371. <summary>
  14372. Constructs a <c>MultiLineString</c>.
  14373. </summary>
  14374. <param name="lineStrings">
  14375. The <c>LineString</c>s for this <c>MultiLineString</c>,
  14376. or <c>null</c> or an empty array to create the empty
  14377. point. Elements may be empty <c>LineString</c>s,
  14378. but not <c>null</c>s.
  14379. </param>
  14380. <remarks>
  14381. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  14382. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  14383. </remarks>
  14384. </member>
  14385. <member name="P:NetTopologySuite.Geometries.MultiLineString.SortIndex">
  14386. <summary>
  14387. Gets a value to sort the geometry
  14388. </summary>
  14389. <remarks>
  14390. NOTE:<br/>
  14391. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  14392. In order not to break binary compatibility we did not follow.
  14393. </remarks>
  14394. </member>
  14395. <member name="P:NetTopologySuite.Geometries.MultiLineString.Dimension">
  14396. <summary>
  14397. </summary>
  14398. <value></value>
  14399. </member>
  14400. <member name="M:NetTopologySuite.Geometries.MultiLineString.HasDimension(NetTopologySuite.Geometries.Dimension)">
  14401. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
  14402. <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Curve"/></c></returns>
  14403. </member>
  14404. <member name="P:NetTopologySuite.Geometries.MultiLineString.BoundaryDimension">
  14405. <summary>
  14406. </summary>
  14407. <value></value>
  14408. </member>
  14409. <member name="P:NetTopologySuite.Geometries.MultiLineString.GeometryType">
  14410. <summary>
  14411. Returns the name of this object's interface.
  14412. </summary>
  14413. <returns>"MultiLineString"</returns>
  14414. </member>
  14415. <member name="P:NetTopologySuite.Geometries.MultiLineString.OgcGeometryType">
  14416. <summary>
  14417. Gets the OGC geometry type
  14418. </summary>
  14419. </member>
  14420. <member name="P:NetTopologySuite.Geometries.MultiLineString.IsClosed">
  14421. <summary>
  14422. Gets a value indicating whether this instance is closed.
  14423. </summary>
  14424. <value><c>true</c> if this instance is closed; otherwise, <c>false</c>.</value>
  14425. </member>
  14426. <member name="M:NetTopologySuite.Geometries.MultiLineString.Reverse">
  14427. <summary>
  14428. Creates a <see cref="T:NetTopologySuite.Geometries.MultiLineString" /> in the reverse order to this object.
  14429. Both the order of the component LineStrings
  14430. and the order of their coordinate sequences are reversed.
  14431. </summary>
  14432. <returns>a <see cref="T:NetTopologySuite.Geometries.MultiLineString" /> in the reverse order.</returns>
  14433. </member>
  14434. <member name="M:NetTopologySuite.Geometries.MultiLineString.ReverseInternal">
  14435. <inheritdoc cref="M:NetTopologySuite.Geometries.MultiLineString.ReverseInternal"/>
  14436. </member>
  14437. <member name="M:NetTopologySuite.Geometries.MultiLineString.CopyInternal">
  14438. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  14439. </member>
  14440. <member name="M:NetTopologySuite.Geometries.MultiLineString.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  14441. <summary>
  14442. </summary>
  14443. <param name="other"></param>
  14444. <param name="tolerance"></param>
  14445. <returns></returns>
  14446. </member>
  14447. <member name="T:NetTopologySuite.Geometries.MultiPoint">
  14448. <summary>
  14449. Models a collection of <c>Point</c>s.
  14450. </summary>
  14451. </member>
  14452. <member name="F:NetTopologySuite.Geometries.MultiPoint.Empty">
  14453. <summary>
  14454. Represents an empty <c>MultiPoint</c>.
  14455. </summary>
  14456. </member>
  14457. <member name="M:NetTopologySuite.Geometries.MultiPoint.#ctor(NetTopologySuite.Geometries.Point[],NetTopologySuite.Geometries.GeometryFactory)">
  14458. <summary>
  14459. Constructs a <c>MultiPoint</c>.
  14460. </summary>
  14461. <param name="points">
  14462. The <c>Point</c>s for this <c>MultiPoint</c>
  14463. , or <c>null</c> or an empty array to create the empty point.
  14464. Elements may be empty <c>Point</c>s, but not <c>null</c>s.
  14465. </param>
  14466. <param name="factory"></param>
  14467. </member>
  14468. <member name="M:NetTopologySuite.Geometries.MultiPoint.#ctor(NetTopologySuite.Geometries.Point[])">
  14469. <summary>
  14470. Constructs a <c>MultiPoint</c>.
  14471. </summary>
  14472. <param name="points">
  14473. The <c>Point</c>s for this <c>MultiPoint</c>
  14474. , or <c>null</c> or an empty array to create the empty point.
  14475. Elements may be empty <c>Point</c>s, but not <c>null</c>s.
  14476. </param>
  14477. <remarks>
  14478. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  14479. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  14480. </remarks>
  14481. </member>
  14482. <member name="M:NetTopologySuite.Geometries.MultiPoint.CopyInternal">
  14483. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  14484. </member>
  14485. <member name="P:NetTopologySuite.Geometries.MultiPoint.SortIndex">
  14486. <summary>
  14487. Gets a value to sort the geometry
  14488. </summary>
  14489. <remarks>
  14490. NOTE:<br/>
  14491. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  14492. In order not to break binary compatibility we did not follow.
  14493. </remarks>
  14494. </member>
  14495. <member name="P:NetTopologySuite.Geometries.MultiPoint.Dimension">
  14496. <summary>
  14497. </summary>
  14498. </member>
  14499. <member name="M:NetTopologySuite.Geometries.MultiPoint.HasDimension(NetTopologySuite.Geometries.Dimension)">
  14500. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
  14501. <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Point"/></c></returns>
  14502. </member>
  14503. <member name="P:NetTopologySuite.Geometries.MultiPoint.BoundaryDimension">
  14504. <summary>
  14505. </summary>
  14506. </member>
  14507. <member name="P:NetTopologySuite.Geometries.MultiPoint.GeometryType">
  14508. <summary>
  14509. Returns the name of this object's interface.
  14510. </summary>
  14511. <returns>"MultiPoint"</returns>
  14512. </member>
  14513. <member name="P:NetTopologySuite.Geometries.MultiPoint.Boundary">
  14514. <summary>
  14515. Gets the boundary of this geometry.
  14516. Zero-dimensional geometries have no boundary by definition,
  14517. so an empty GeometryCollection is returned.
  14518. </summary>
  14519. </member>
  14520. <member name="M:NetTopologySuite.Geometries.MultiPoint.ReverseInternal">
  14521. <inheritdoc cref="M:NetTopologySuite.Geometries.MultiPoint.ReverseInternal"/>
  14522. </member>
  14523. <member name="P:NetTopologySuite.Geometries.MultiPoint.IsValid">
  14524. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
  14525. </member>
  14526. <member name="M:NetTopologySuite.Geometries.MultiPoint.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  14527. <summary>
  14528. </summary>
  14529. <param name="other"></param>
  14530. <param name="tolerance"></param>
  14531. <returns></returns>
  14532. </member>
  14533. <member name="M:NetTopologySuite.Geometries.MultiPoint.GetCoordinate(System.Int32)">
  14534. <summary>
  14535. Returns the <c>Coordinate</c> at the given position.
  14536. </summary>
  14537. <param name="n">The index of the <c>Coordinate</c> to retrieve, beginning at 0.
  14538. </param>
  14539. <returns>The <c>n</c>th <c>Coordinate</c>.</returns>
  14540. </member>
  14541. <member name="T:NetTopologySuite.Geometries.MultiPolygon">
  14542. <summary>
  14543. Basic implementation of <c>MultiPolygon</c>.
  14544. </summary>
  14545. </member>
  14546. <member name="F:NetTopologySuite.Geometries.MultiPolygon.Empty">
  14547. <summary>
  14548. Represents an empty <c>MultiPolygon</c>.
  14549. </summary>
  14550. </member>
  14551. <member name="M:NetTopologySuite.Geometries.MultiPolygon.#ctor(NetTopologySuite.Geometries.Polygon[])">
  14552. <summary>
  14553. Constructs a <c>MultiPolygon</c>.
  14554. </summary>
  14555. <param name="polygons">
  14556. The <c>Polygon</c>s for this <c>MultiPolygon</c>
  14557. , or <c>null</c> or an empty array to create the empty point.
  14558. Elements may be empty <c>Polygon</c>s, but not <c>null</c>
  14559. s. The polygons must conform to the assertions specified in the
  14560. <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
  14561. Specification for SQL.
  14562. </param>
  14563. <remarks>
  14564. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  14565. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  14566. </remarks>
  14567. </member>
  14568. <member name="M:NetTopologySuite.Geometries.MultiPolygon.#ctor(NetTopologySuite.Geometries.Polygon[],NetTopologySuite.Geometries.GeometryFactory)">
  14569. <summary>
  14570. Constructs a <c>MultiPolygon</c>.
  14571. </summary>
  14572. <param name="polygons">
  14573. The <c>Polygon</c>s for this <c>MultiPolygon</c>
  14574. , or <c>null</c> or an empty array to create the empty point.
  14575. Elements may be empty <c>Polygon</c>s, but not <c>null</c>
  14576. s. The polygons must conform to the assertions specified in the
  14577. <see href="http://www.opengis.org/techno/specs.htm"/> OpenGIS Simple Features
  14578. Specification for SQL.
  14579. </param>
  14580. <param name="factory"></param>
  14581. </member>
  14582. <member name="M:NetTopologySuite.Geometries.MultiPolygon.CopyInternal">
  14583. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  14584. </member>
  14585. <member name="P:NetTopologySuite.Geometries.MultiPolygon.SortIndex">
  14586. <summary>
  14587. Gets a value to sort the geometry
  14588. </summary>
  14589. <remarks>
  14590. NOTE:<br/>
  14591. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  14592. In order not to break binary compatibility we did not follow.
  14593. </remarks>
  14594. </member>
  14595. <member name="P:NetTopologySuite.Geometries.MultiPolygon.Dimension">
  14596. <summary>
  14597. </summary>
  14598. </member>
  14599. <member name="M:NetTopologySuite.Geometries.MultiPolygon.HasDimension(NetTopologySuite.Geometries.Dimension)">
  14600. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.HasDimension(NetTopologySuite.Geometries.Dimension)"/>
  14601. <returns><c>true</c> if <paramref name="dim"/> == <c><see cref="F:NetTopologySuite.Geometries.Dimension.Surface"/></c></returns>
  14602. </member>
  14603. <member name="P:NetTopologySuite.Geometries.MultiPolygon.BoundaryDimension">
  14604. <summary>
  14605. </summary>
  14606. </member>
  14607. <member name="P:NetTopologySuite.Geometries.MultiPolygon.GeometryType">
  14608. <summary>
  14609. Returns the name of this object's interface.
  14610. </summary>
  14611. <returns>"MultiPolygon"</returns>
  14612. </member>
  14613. <member name="P:NetTopologySuite.Geometries.MultiPolygon.OgcGeometryType">
  14614. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType"/>>
  14615. </member>
  14616. <member name="P:NetTopologySuite.Geometries.MultiPolygon.Boundary">
  14617. <summary>
  14618. </summary>
  14619. </member>
  14620. <member name="M:NetTopologySuite.Geometries.MultiPolygon.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  14621. <summary>
  14622. </summary>
  14623. <param name="other"></param>
  14624. <param name="tolerance"></param>
  14625. <returns></returns>
  14626. </member>
  14627. <member name="M:NetTopologySuite.Geometries.MultiPolygon.Reverse">
  14628. <summary>
  14629. Creates a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> with every component reversed.
  14630. </summary>
  14631. <remarks>The order of the components in the collection are not reversed.</remarks>
  14632. <returns>An <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> in the reverse order</returns>
  14633. </member>
  14634. <member name="M:NetTopologySuite.Geometries.MultiPolygon.ReverseInternal">
  14635. <inheritdoc cref="M:NetTopologySuite.Geometries.MultiPolygon.ReverseInternal"/>
  14636. </member>
  14637. <member name="T:NetTopologySuite.Geometries.OctagonalEnvelope">
  14638. <summary>
  14639. A bounding container for a <see cref="T:NetTopologySuite.Geometries.Geometry"/> which is in the shape of a general octagon.
  14640. </summary>
  14641. <remarks>
  14642. The OctagonalEnvelope of a geometric object
  14643. is a geometry which is tight bound along the (up to) four extremal rectilinear parallels
  14644. and along the (up to) four extremal diagonal parallels.
  14645. Depending on the shape of the contained
  14646. geometry, the octagon may be degenerate to any extreme
  14647. (e.g. it may be a rectangle, a line, or a point).
  14648. </remarks>
  14649. </member>
  14650. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.GetOctagonalEnvelope(NetTopologySuite.Geometries.Geometry)">
  14651. <summary>
  14652. Gets the octagonal envelope of a geometry
  14653. </summary>
  14654. <param name="geom">The geometry</param>
  14655. <returns>The octagonal envelope of the geometry</returns>
  14656. </member>
  14657. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor">
  14658. <summary>
  14659. Creates a new null bounding octagon
  14660. </summary>
  14661. </member>
  14662. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Coordinate)">
  14663. <summary>
  14664. Creates a new null bounding octagon bounding a <see cref="T:NetTopologySuite.Geometries.Coordinate" />
  14665. </summary>
  14666. <param name="p">The coordinate to bound</param>
  14667. </member>
  14668. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  14669. <summary>
  14670. Creates a new null bounding octagon bounding a pair of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s
  14671. </summary>
  14672. <param name="p0">A coordinate to bound</param>
  14673. <param name="p1">A coordinate to bound</param>
  14674. </member>
  14675. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Envelope)">
  14676. <summary>
  14677. Creates a new null bounding octagon bounding an <see cref="T:NetTopologySuite.Geometries.Envelope" />
  14678. </summary>
  14679. </member>
  14680. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.OctagonalEnvelope)">
  14681. <summary>
  14682. Creates a new null bounding octagon bounding an <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope" />
  14683. (the copy constructor).
  14684. </summary>
  14685. </member>
  14686. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.#ctor(NetTopologySuite.Geometries.Geometry)">
  14687. <summary>
  14688. Creates a new null bounding octagon bounding a <see cref="T:NetTopologySuite.Geometries.Geometry" />
  14689. </summary>
  14690. </member>
  14691. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinX">
  14692. <summary>
  14693. Gets a value indicating the minimal x-ordinate value
  14694. </summary>
  14695. </member>
  14696. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxX">
  14697. <summary>
  14698. Gets a value indicating the maximal x-ordinate value
  14699. </summary>
  14700. </member>
  14701. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinY">
  14702. <summary>
  14703. Gets a value indicating the minimal y-ordinate value
  14704. </summary>
  14705. </member>
  14706. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxY">
  14707. <summary>
  14708. Gets a value indicating the maximal y-ordinate value
  14709. </summary>
  14710. </member>
  14711. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinA">
  14712. <summary>
  14713. Gets a value indicating the minimal <c>a</c> value
  14714. </summary>
  14715. </member>
  14716. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxA">
  14717. <summary>
  14718. Gets a value indicating the maximal <c>a</c> value
  14719. </summary>
  14720. </member>
  14721. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MinB">
  14722. <summary>
  14723. Gets a value indicating the minimal <c>b</c> value
  14724. </summary>
  14725. </member>
  14726. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.MaxB">
  14727. <summary>
  14728. Gets a value indicating the maximal <c>b</c> value
  14729. </summary>
  14730. </member>
  14731. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.IsNull">
  14732. <summary>
  14733. Gets a value indicating that this object is null
  14734. </summary>
  14735. </member>
  14736. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Geometry)">
  14737. <summary>
  14738. Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="g"/> geometry.
  14739. </summary>
  14740. <param name="g">The geometry</param>
  14741. </member>
  14742. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.CoordinateSequence)">
  14743. <summary>
  14744. Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="seq"/> coordinate sequence.
  14745. </summary>
  14746. <param name="seq">The coordinate sequence</param>
  14747. <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="seq"/></returns>
  14748. </member>
  14749. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.OctagonalEnvelope)">
  14750. <summary>
  14751. Method to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="oct"/> OctogonalEnvelope.
  14752. </summary>
  14753. <param name="oct">The OctogonalEnvelope</param>
  14754. <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="oct"/></returns>
  14755. </member>
  14756. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Coordinate)">
  14757. <summary>
  14758. Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="p"/> coordinate.
  14759. </summary>
  14760. <param name="p">The coordinate</param>
  14761. <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="p"/></returns>
  14762. </member>
  14763. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(NetTopologySuite.Geometries.Envelope)">
  14764. <summary>
  14765. Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="env"/> envelope.
  14766. </summary>
  14767. <param name="env">The envelope</param>
  14768. <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="env"/></returns>
  14769. </member>
  14770. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ExpandToInclude(System.Double,System.Double)">
  14771. <summary>
  14772. Function to expand this <see cref="T:NetTopologySuite.Geometries.OctagonalEnvelope"/> to include the provided <paramref name="x"/>- and <paramref name="y"/> ordinates.
  14773. </summary>
  14774. <param name="x">A x-ordinate value</param>
  14775. <param name="y">A y-ordinate value</param>
  14776. <returns>A reference to <c>this</c> octagonal envelope, expanded by <paramref name="x"/> and <paramref name="y"/></returns>
  14777. </member>
  14778. <member name="P:NetTopologySuite.Geometries.OctagonalEnvelope.IsValid">
  14779. <summary>
  14780. Gets a value indicating if the extremal values for this octagon are valid.
  14781. </summary>
  14782. <returns><c>true</c> if this object has valid values</returns>
  14783. </member>
  14784. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Intersects(NetTopologySuite.Geometries.OctagonalEnvelope)">
  14785. <summary>
  14786. Function to test if <c>this</c> octagonal envelope intersects <paramref name="other"/> octagonal envelope .
  14787. </summary>
  14788. <param name="other">An octagonal envelope </param>
  14789. <returns><c>true</c> if <c>this</c> octagonal envelope intersects <paramref name="other"/> octagonal envelope .</returns>
  14790. </member>
  14791. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Intersects(NetTopologySuite.Geometries.Coordinate)">
  14792. <summary>
  14793. Function to test if <c>this</c> octagonal envelope contains <paramref name="p"/> coordinate.
  14794. </summary>
  14795. <param name="p">A coordinate</param>
  14796. <returns><c>true</c> if <c>this</c> octagonal envelope contains <paramref name="p"/> coordinate.</returns>
  14797. </member>
  14798. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.Contains(NetTopologySuite.Geometries.OctagonalEnvelope)">
  14799. <summary>
  14800. Function to test if <c>this</c> octagonal envelope contains <paramref name="other"/> octagonal envelope.
  14801. </summary>
  14802. <param name="other">An octagonal envelope</param>
  14803. <returns><c>true</c> if <c>this</c> octagonal envelope contains <paramref name="other"/> octagonal envelope.</returns>
  14804. </member>
  14805. <member name="M:NetTopologySuite.Geometries.OctagonalEnvelope.ToGeometry(NetTopologySuite.Geometries.GeometryFactory)">
  14806. <summary>
  14807. Function to convert <c>this</c> octagonal envelope into a geometry
  14808. </summary>
  14809. <param name="geomFactory">The factory to create the geometry</param>
  14810. <returns>A geometry</returns>
  14811. </member>
  14812. <member name="T:NetTopologySuite.Geometries.OgcCompliantGeometryFactory">
  14813. <summary>
  14814. OGC compliant geometry factory
  14815. </summary>
  14816. </member>
  14817. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor">
  14818. <summary>
  14819. Creates an instance of this class using the default
  14820. values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
  14821. <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/> and
  14822. <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
  14823. </summary>
  14824. </member>
  14825. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  14826. <summary>
  14827. Creates an instance of this class using the default
  14828. values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
  14829. <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>,
  14830. but the specified <paramref name="factory"/>.
  14831. </summary>
  14832. </member>
  14833. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  14834. Creates an instance of this class using the default
  14835. values for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>,
  14836. <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/> but the
  14837. specified <paramref name="pm"/>.
  14838. </member>
  14839. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.ToGeometry(NetTopologySuite.Geometries.Envelope)">
  14840. <inheritdoc/>
  14841. </member>
  14842. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.Coordinate[])">
  14843. <inheritdoc/>
  14844. <remarks>
  14845. The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
  14846. </remarks>
  14847. </member>
  14848. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.CoordinateSequence)">
  14849. <inheritdoc/>
  14850. <remarks>
  14851. The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
  14852. </remarks>
  14853. </member>
  14854. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing)">
  14855. <inheritdoc/>
  14856. <remarks>
  14857. The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
  14858. </remarks>
  14859. </member>
  14860. <member name="M:NetTopologySuite.Geometries.OgcCompliantGeometryFactory.CreatePolygon(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
  14861. <inheritdoc/>
  14862. <remarks>
  14863. The <see cref="P:NetTopologySuite.Geometries.Polygon.ExteriorRing"/> is guaranteed to be orientated counter-clockwise.
  14864. <br/>The <see cref="P:NetTopologySuite.Geometries.Polygon.InteriorRings"/> are guaranteed to be orientated clockwise.
  14865. </remarks>
  14866. </member>
  14867. <member name="T:NetTopologySuite.Geometries.OgcGeometryType">
  14868. <summary>
  14869. Enumeration of OGC Geometry Types
  14870. </summary>
  14871. </member>
  14872. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Point">
  14873. <summary>
  14874. Point.
  14875. </summary>
  14876. </member>
  14877. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.LineString">
  14878. <summary>
  14879. LineString.
  14880. </summary>
  14881. </member>
  14882. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Polygon">
  14883. <summary>
  14884. Polygon.
  14885. </summary>
  14886. </member>
  14887. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiPoint">
  14888. <summary>
  14889. MultiPoint.
  14890. </summary>
  14891. </member>
  14892. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiLineString">
  14893. <summary>
  14894. MultiLineString.
  14895. </summary>
  14896. </member>
  14897. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiPolygon">
  14898. <summary>
  14899. MultiPolygon.
  14900. </summary>
  14901. </member>
  14902. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.GeometryCollection">
  14903. <summary>
  14904. GeometryCollection.
  14905. </summary>
  14906. </member>
  14907. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CircularString">
  14908. <summary>
  14909. CircularString
  14910. </summary>
  14911. </member>
  14912. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CompoundCurve">
  14913. <summary>
  14914. CompoundCurve
  14915. </summary>
  14916. </member>
  14917. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.CurvePolygon">
  14918. <summary>
  14919. CurvePolygon
  14920. </summary>
  14921. </member>
  14922. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiCurve">
  14923. <summary>
  14924. MultiCurve
  14925. </summary>
  14926. </member>
  14927. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.MultiSurface">
  14928. <summary>
  14929. MultiSurface
  14930. </summary>
  14931. </member>
  14932. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Curve">
  14933. <summary>
  14934. Curve
  14935. </summary>
  14936. </member>
  14937. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.Surface">
  14938. <summary>
  14939. Surface
  14940. </summary>
  14941. </member>
  14942. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.PolyhedralSurface">
  14943. <summary>
  14944. PolyhedralSurface
  14945. </summary>
  14946. </member>
  14947. <member name="F:NetTopologySuite.Geometries.OgcGeometryType.TIN">
  14948. <summary>
  14949. TIN
  14950. </summary>
  14951. </member>
  14952. <member name="T:NetTopologySuite.Geometries.Ordinate">
  14953. <summary>
  14954. Identifies the different well-supported components of coordinate values.
  14955. <para>
  14956. All supported coordinates define values for at least the X and the Y components.
  14957. </para>
  14958. <para>
  14959. The first 16 spatial and 16 measure dimensions may also be accessed this way.
  14960. </para>
  14961. </summary>
  14962. </member>
  14963. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial1">
  14964. <summary>
  14965. The 1st spatial dimension.
  14966. </summary>
  14967. </member>
  14968. <member name="F:NetTopologySuite.Geometries.Ordinate.X">
  14969. <summary>
  14970. The "X" ordinate.
  14971. </summary>
  14972. </member>
  14973. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial2">
  14974. <summary>
  14975. The 2nd spatial dimension.
  14976. </summary>
  14977. </member>
  14978. <member name="F:NetTopologySuite.Geometries.Ordinate.Y">
  14979. <summary>
  14980. The "Y" ordinate.
  14981. </summary>
  14982. </member>
  14983. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial3">
  14984. <summary>
  14985. The 3rd spatial dimension.
  14986. </summary>
  14987. </member>
  14988. <member name="F:NetTopologySuite.Geometries.Ordinate.Z">
  14989. <summary>
  14990. The "Z" ordinate.
  14991. </summary>
  14992. </member>
  14993. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial4">
  14994. <summary>
  14995. The 4th spatial dimension.
  14996. </summary>
  14997. </member>
  14998. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial5">
  14999. <summary>
  15000. The 5th spatial dimension.
  15001. </summary>
  15002. </member>
  15003. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial6">
  15004. <summary>
  15005. The 6th spatial dimension.
  15006. </summary>
  15007. </member>
  15008. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial7">
  15009. <summary>
  15010. The 7th spatial dimension.
  15011. </summary>
  15012. </member>
  15013. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial8">
  15014. <summary>
  15015. The 8th spatial dimension.
  15016. </summary>
  15017. </member>
  15018. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial9">
  15019. <summary>
  15020. The 9th spatial dimension.
  15021. </summary>
  15022. </member>
  15023. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial10">
  15024. <summary>
  15025. The 10th spatial dimension.
  15026. </summary>
  15027. </member>
  15028. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial11">
  15029. <summary>
  15030. The 11th spatial dimension.
  15031. </summary>
  15032. </member>
  15033. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial12">
  15034. <summary>
  15035. The 12th spatial dimension.
  15036. </summary>
  15037. </member>
  15038. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial13">
  15039. <summary>
  15040. The 13th spatial dimension.
  15041. </summary>
  15042. </member>
  15043. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial14">
  15044. <summary>
  15045. The 14th spatial dimension.
  15046. </summary>
  15047. </member>
  15048. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial15">
  15049. <summary>
  15050. The 15th spatial dimension.
  15051. </summary>
  15052. </member>
  15053. <member name="F:NetTopologySuite.Geometries.Ordinate.Spatial16">
  15054. <summary>
  15055. The 16th spatial dimension.
  15056. </summary>
  15057. </member>
  15058. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure1">
  15059. <summary>
  15060. The 1st measure dimension.
  15061. </summary>
  15062. </member>
  15063. <member name="F:NetTopologySuite.Geometries.Ordinate.M">
  15064. <summary>
  15065. The "M" ordinate.
  15066. </summary>
  15067. </member>
  15068. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure2">
  15069. <summary>
  15070. The 2nd measure dimension.
  15071. </summary>
  15072. </member>
  15073. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure3">
  15074. <summary>
  15075. The 3rd measure dimension.
  15076. </summary>
  15077. </member>
  15078. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure4">
  15079. <summary>
  15080. The 4th measure dimension.
  15081. </summary>
  15082. </member>
  15083. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure5">
  15084. <summary>
  15085. The 5th measure dimension.
  15086. </summary>
  15087. </member>
  15088. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure6">
  15089. <summary>
  15090. The 6th measure dimension.
  15091. </summary>
  15092. </member>
  15093. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure7">
  15094. <summary>
  15095. The 7th measure dimension.
  15096. </summary>
  15097. </member>
  15098. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure8">
  15099. <summary>
  15100. The 8th measure dimension.
  15101. </summary>
  15102. </member>
  15103. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure9">
  15104. <summary>
  15105. The 9th measure dimension.
  15106. </summary>
  15107. </member>
  15108. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure10">
  15109. <summary>
  15110. The 10th measure dimension.
  15111. </summary>
  15112. </member>
  15113. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure11">
  15114. <summary>
  15115. The 11th measure dimension.
  15116. </summary>
  15117. </member>
  15118. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure12">
  15119. <summary>
  15120. The 12th measure dimension.
  15121. </summary>
  15122. </member>
  15123. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure13">
  15124. <summary>
  15125. The 13th measure dimension.
  15126. </summary>
  15127. </member>
  15128. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure14">
  15129. <summary>
  15130. The 14th measure dimension.
  15131. </summary>
  15132. </member>
  15133. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure15">
  15134. <summary>
  15135. The 15th measure dimension.
  15136. </summary>
  15137. </member>
  15138. <member name="F:NetTopologySuite.Geometries.Ordinate.Measure16">
  15139. <summary>
  15140. The 16th measure dimension.
  15141. </summary>
  15142. </member>
  15143. <member name="T:NetTopologySuite.Geometries.Ordinates">
  15144. <summary>
  15145. Flags for Ordinate values
  15146. </summary>
  15147. </member>
  15148. <member name="F:NetTopologySuite.Geometries.Ordinates.None">
  15149. <summary>
  15150. No ordinates
  15151. </summary>
  15152. </member>
  15153. <member name="F:NetTopologySuite.Geometries.Ordinates.X">
  15154. <summary>
  15155. Flag for the x-ordinate
  15156. </summary>
  15157. </member>
  15158. <member name="F:NetTopologySuite.Geometries.Ordinates.Y">
  15159. <summary>
  15160. Flag for the y-ordinate
  15161. </summary>
  15162. </member>
  15163. <member name="F:NetTopologySuite.Geometries.Ordinates.Z">
  15164. <summary>
  15165. Flag for the z-ordinate
  15166. </summary>
  15167. </member>
  15168. <member name="F:NetTopologySuite.Geometries.Ordinates.M">
  15169. <summary>
  15170. Flag for the m-ordinate
  15171. </summary>
  15172. </member>
  15173. <member name="F:NetTopologySuite.Geometries.Ordinates.XY">
  15174. <summary>
  15175. Flag for both x- and y-ordinate
  15176. </summary>
  15177. </member>
  15178. <member name="F:NetTopologySuite.Geometries.Ordinates.XYZ">
  15179. <summary>
  15180. Flag for x-, y- and z-ordinate
  15181. </summary>
  15182. </member>
  15183. <member name="F:NetTopologySuite.Geometries.Ordinates.XYM">
  15184. <summary>
  15185. Flag for x-, y- and m-ordinate
  15186. </summary>
  15187. </member>
  15188. <member name="F:NetTopologySuite.Geometries.Ordinates.XYZM">
  15189. <summary>
  15190. Flag for x-, y-, z- and m-ordinate
  15191. </summary>
  15192. </member>
  15193. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial1">
  15194. <summary>
  15195. Flag for the 1st spatial dimension.
  15196. </summary>
  15197. </member>
  15198. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial2">
  15199. <summary>
  15200. Flag for the 2nd spatial dimension.
  15201. </summary>
  15202. </member>
  15203. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial3">
  15204. <summary>
  15205. Flag for the 3rd spatial dimension.
  15206. </summary>
  15207. </member>
  15208. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial4">
  15209. <summary>
  15210. Flag for the 4th spatial dimension.
  15211. </summary>
  15212. </member>
  15213. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial5">
  15214. <summary>
  15215. Flag for the 5th spatial dimension.
  15216. </summary>
  15217. </member>
  15218. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial6">
  15219. <summary>
  15220. Flag for the 6th spatial dimension.
  15221. </summary>
  15222. </member>
  15223. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial7">
  15224. <summary>
  15225. Flag for the 7th spatial dimension.
  15226. </summary>
  15227. </member>
  15228. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial8">
  15229. <summary>
  15230. Flag for the 8th spatial dimension.
  15231. </summary>
  15232. </member>
  15233. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial9">
  15234. <summary>
  15235. Flag for the 9th spatial dimension.
  15236. </summary>
  15237. </member>
  15238. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial10">
  15239. <summary>
  15240. Flag for the 10th spatial dimension.
  15241. </summary>
  15242. </member>
  15243. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial11">
  15244. <summary>
  15245. Flag for the 11th spatial dimension.
  15246. </summary>
  15247. </member>
  15248. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial12">
  15249. <summary>
  15250. Flag for the 12th spatial dimension.
  15251. </summary>
  15252. </member>
  15253. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial13">
  15254. <summary>
  15255. Flag for the 13th spatial dimension.
  15256. </summary>
  15257. </member>
  15258. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial14">
  15259. <summary>
  15260. Flag for the 14th spatial dimension.
  15261. </summary>
  15262. </member>
  15263. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial15">
  15264. <summary>
  15265. Flag for the 15th spatial dimension.
  15266. </summary>
  15267. </member>
  15268. <member name="F:NetTopologySuite.Geometries.Ordinates.Spatial16">
  15269. <summary>
  15270. Flag for the 16th spatial dimension.
  15271. </summary>
  15272. </member>
  15273. <member name="F:NetTopologySuite.Geometries.Ordinates.AllSpatialOrdinates">
  15274. <summary>
  15275. Flags for all spatial ordinates.
  15276. </summary>
  15277. </member>
  15278. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure1">
  15279. <summary>
  15280. Flag for the 1st measure dimension.
  15281. </summary>
  15282. </member>
  15283. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure2">
  15284. <summary>
  15285. Flag for the 2nd measure dimension.
  15286. </summary>
  15287. </member>
  15288. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure3">
  15289. <summary>
  15290. Flag for the 3rd measure dimension.
  15291. </summary>
  15292. </member>
  15293. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure4">
  15294. <summary>
  15295. Flag for the 4th measure dimension.
  15296. </summary>
  15297. </member>
  15298. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure5">
  15299. <summary>
  15300. Flag for the 5th measure dimension.
  15301. </summary>
  15302. </member>
  15303. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure6">
  15304. <summary>
  15305. Flag for the 6th measure dimension.
  15306. </summary>
  15307. </member>
  15308. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure7">
  15309. <summary>
  15310. Flag for the 7th measure dimension.
  15311. </summary>
  15312. </member>
  15313. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure8">
  15314. <summary>
  15315. Flag for the 8th measure dimension.
  15316. </summary>
  15317. </member>
  15318. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure9">
  15319. <summary>
  15320. Flag for the 9th measure dimension.
  15321. </summary>
  15322. </member>
  15323. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure10">
  15324. <summary>
  15325. Flag for the 10th measure dimension.
  15326. </summary>
  15327. </member>
  15328. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure11">
  15329. <summary>
  15330. Flag for the 11th measure dimension.
  15331. </summary>
  15332. </member>
  15333. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure12">
  15334. <summary>
  15335. Flag for the 12th measure dimension.
  15336. </summary>
  15337. </member>
  15338. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure13">
  15339. <summary>
  15340. Flag for the 13th measure dimension.
  15341. </summary>
  15342. </member>
  15343. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure14">
  15344. <summary>
  15345. Flag for the 14th measure dimension.
  15346. </summary>
  15347. </member>
  15348. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure15">
  15349. <summary>
  15350. Flag for the 15th measure dimension.
  15351. </summary>
  15352. </member>
  15353. <member name="F:NetTopologySuite.Geometries.Ordinates.Measure16">
  15354. <summary>
  15355. Flag for the 16th measure dimension.
  15356. </summary>
  15357. </member>
  15358. <member name="F:NetTopologySuite.Geometries.Ordinates.AllMeasureOrdinates">
  15359. <summary>
  15360. Flags for all non-spatial ordinates.
  15361. </summary>
  15362. </member>
  15363. <member name="F:NetTopologySuite.Geometries.Ordinates.AllOrdinates">
  15364. <summary>
  15365. Flags for all recognized ordinates.
  15366. </summary>
  15367. </member>
  15368. <member name="T:NetTopologySuite.Geometries.OrdinatesUtility">
  15369. <summary>
  15370. Static utility functions for dealing with <see cref="T:NetTopologySuite.Geometries.Ordinates"/> and dimension
  15371. </summary>
  15372. </member>
  15373. <member name="M:NetTopologySuite.Geometries.OrdinatesUtility.OrdinatesToDimension(NetTopologySuite.Geometries.Ordinates)">
  15374. <summary>
  15375. Translates the <paramref name="ordinates"/>-flag to a number of dimensions.
  15376. </summary>
  15377. <param name="ordinates">The ordinates flag</param>
  15378. <returns>The number of dimensions</returns>
  15379. </member>
  15380. <member name="M:NetTopologySuite.Geometries.OrdinatesUtility.OrdinatesToMeasures(NetTopologySuite.Geometries.Ordinates)">
  15381. <summary>
  15382. Translates the <paramref name="ordinates"/>-flag to a number of measures.
  15383. </summary>
  15384. <param name="ordinates">The ordinates flag</param>
  15385. <returns>The number of measures</returns>
  15386. </member>
  15387. <member name="T:NetTopologySuite.Geometries.Point">
  15388. <summary>
  15389. Represents a single point.
  15390. <para/>
  15391. A <c>Point</c> is topologically valid if and only if:
  15392. <list type="bullet">
  15393. <item><description>The coordinate which defines it if any) is a valid coordinate
  15394. (i.e. does not have an <c>NaN</c> X- or Y-ordinate</description></item>
  15395. </list>
  15396. </summary>
  15397. </member>
  15398. <member name="F:NetTopologySuite.Geometries.Point.Empty">
  15399. <summary>
  15400. Represents an empty <c>Point</c>.
  15401. </summary>
  15402. </member>
  15403. <member name="F:NetTopologySuite.Geometries.Point._coordinates">
  15404. <summary>
  15405. The <c>Coordinate</c> wrapped by this <c>Point</c>.
  15406. </summary>
  15407. </member>
  15408. <member name="P:NetTopologySuite.Geometries.Point.SortIndex">
  15409. <summary>
  15410. Gets a value to sort the geometry
  15411. </summary>
  15412. <remarks>
  15413. NOTE:<br/>
  15414. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  15415. In order not to break binary compatibility we did not follow.
  15416. </remarks>
  15417. </member>
  15418. <member name="P:NetTopologySuite.Geometries.Point.CoordinateSequence">
  15419. <summary>
  15420. </summary>
  15421. </member>
  15422. <member name="M:NetTopologySuite.Geometries.Point.#ctor(NetTopologySuite.Geometries.Coordinate)">
  15423. <summary>
  15424. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
  15425. </summary>
  15426. <param name="coordinate">The coordinate used for create this <see cref="T:NetTopologySuite.Geometries.Point" />.</param>
  15427. <remarks>
  15428. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  15429. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  15430. </remarks>
  15431. </member>
  15432. <member name="M:NetTopologySuite.Geometries.Point.#ctor(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.GeometryFactory)">
  15433. <summary>
  15434. Constructs a <c>Point</c> with the given coordinate.
  15435. </summary>
  15436. <param name="coordinates">
  15437. Contains the single coordinate on which to base this <c>Point</c>,
  15438. or <c>null</c> to create the empty point.
  15439. </param>
  15440. <param name="factory"></param>
  15441. </member>
  15442. <member name="P:NetTopologySuite.Geometries.Point.Coordinates">
  15443. <summary>
  15444. </summary>
  15445. </member>
  15446. <member name="P:NetTopologySuite.Geometries.Point.NumPoints">
  15447. <summary>
  15448. </summary>
  15449. </member>
  15450. <member name="P:NetTopologySuite.Geometries.Point.IsEmpty">
  15451. <summary>
  15452. </summary>
  15453. </member>
  15454. <member name="P:NetTopologySuite.Geometries.Point.Dimension">
  15455. <summary>
  15456. </summary>
  15457. </member>
  15458. <member name="P:NetTopologySuite.Geometries.Point.BoundaryDimension">
  15459. <summary>
  15460. </summary>
  15461. </member>
  15462. <member name="P:NetTopologySuite.Geometries.Point.X">
  15463. <summary>
  15464. Gets a value indicating the x-ordinate of this point
  15465. </summary>
  15466. <remarks>
  15467. Deviation from JTS: this implementation <b>does not</b> throw an exception
  15468. when this property is accessed or set
  15469. </remarks>
  15470. </member>
  15471. <member name="P:NetTopologySuite.Geometries.Point.Y">
  15472. <summary>
  15473. Gets a value indicating the y-ordinate of this point
  15474. </summary>
  15475. <remarks>
  15476. Deviation from JTS: this implementation <b>does not</b> throw an exception
  15477. when this property is accessed or set
  15478. </remarks>
  15479. </member>
  15480. <member name="P:NetTopologySuite.Geometries.Point.Coordinate">
  15481. <inheritdoc/>
  15482. </member>
  15483. <member name="P:NetTopologySuite.Geometries.Point.GeometryType">
  15484. <summary>
  15485. Returns the name of this object's interface.
  15486. </summary>
  15487. <returns>"Point"</returns>
  15488. </member>
  15489. <member name="P:NetTopologySuite.Geometries.Point.OgcGeometryType">
  15490. <summary>
  15491. Gets the OGC geometry type
  15492. </summary>
  15493. </member>
  15494. <member name="P:NetTopologySuite.Geometries.Point.Boundary">
  15495. <summary>
  15496. Gets the boundary of this geometry.
  15497. Zero-dimensional geometries have no boundary by definition,
  15498. so an empty GeometryCollection is returned.
  15499. </summary>
  15500. </member>
  15501. <member name="M:NetTopologySuite.Geometries.Point.ComputeEnvelopeInternal">
  15502. <summary>
  15503. </summary>
  15504. <returns></returns>
  15505. </member>
  15506. <member name="M:NetTopologySuite.Geometries.Point.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  15507. <summary>
  15508. </summary>
  15509. <param name="other"></param>
  15510. <param name="tolerance"></param>
  15511. <returns></returns>
  15512. </member>
  15513. <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
  15514. <inheritdoc />
  15515. </member>
  15516. <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
  15517. <inheritdoc />
  15518. </member>
  15519. <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
  15520. <inheritdoc />
  15521. </member>
  15522. <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
  15523. <inheritdoc />
  15524. </member>
  15525. <member name="M:NetTopologySuite.Geometries.Point.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
  15526. <inheritdoc />
  15527. </member>
  15528. <member name="M:NetTopologySuite.Geometries.Point.CopyInternal">
  15529. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  15530. </member>
  15531. <member name="M:NetTopologySuite.Geometries.Point.Reverse">
  15532. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
  15533. </member>
  15534. <member name="M:NetTopologySuite.Geometries.Point.ReverseInternal">
  15535. <summary>
  15536. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>POINT</c>s.
  15537. </summary>
  15538. <returns>A reversed geometry</returns>
  15539. </member>
  15540. <member name="M:NetTopologySuite.Geometries.Point.Normalize">
  15541. <inheritdoc cref="M:NetTopologySuite.Geometries.Point.Normalize"/>
  15542. </member>
  15543. <member name="M:NetTopologySuite.Geometries.Point.CompareToSameClass(System.Object)">
  15544. <summary>
  15545. </summary>
  15546. <param name="other"></param>
  15547. <returns></returns>
  15548. </member>
  15549. <member name="M:NetTopologySuite.Geometries.Point.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  15550. <summary>
  15551. </summary>
  15552. <param name="other"></param>
  15553. <param name="comparer"></param>
  15554. <returns></returns>
  15555. </member>
  15556. <member name="M:NetTopologySuite.Geometries.Point.#ctor(System.Double,System.Double,System.Double)">
  15557. <summary>
  15558. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
  15559. </summary>
  15560. <param name="x">The x coordinate.</param>
  15561. <param name="y">The y coordinate.</param>
  15562. <param name="z">The z coordinate.</param>
  15563. /// <remarks>
  15564. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  15565. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> set to </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  15566. </remarks>
  15567. </member>
  15568. <member name="M:NetTopologySuite.Geometries.Point.#ctor(System.Double,System.Double)">
  15569. <summary>
  15570. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Point"/> class.
  15571. </summary>
  15572. <param name="x">The x coordinate.</param>
  15573. <param name="y">The y coordinate.</param>
  15574. /// <remarks>
  15575. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  15576. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> set to </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  15577. </remarks>
  15578. </member>
  15579. <member name="P:NetTopologySuite.Geometries.Point.Z">
  15580. <summary>
  15581. </summary>
  15582. </member>
  15583. <member name="T:NetTopologySuite.Geometries.Polygon">
  15584. <summary>
  15585. Represents a polygon with linear edges, which may include holes.
  15586. The outer boundary (shell)
  15587. and inner boundaries (holes) of the polygon are represented by {@link LinearRing}s.
  15588. The boundary rings of the polygon may have any orientation.
  15589. Polygons are closed, simple geometries by definition.
  15590. <para/>
  15591. The polygon model conforms to the assertions specified in the
  15592. <a href="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
  15593. Specification for SQL</a>.
  15594. <para/>
  15595. A <c>Polygon</c> is topologically valid if and only if:
  15596. <list type="bullet">
  15597. <item><description>the coordinates which define it are valid coordinates</description></item>
  15598. <item><description>the linear rings for the shell and holes are valid
  15599. (i.e. are closed and do not self-intersect)</description></item>
  15600. <item><description>holes touch the shell or another hole at at most one point
  15601. (which implies that the rings of the shell and holes must not cross)</description></item>
  15602. <item><description>the interior of the polygon is connected,
  15603. or equivalently no sequence of touching holes
  15604. makes the interior of the polygon disconnected
  15605. (i.e. effectively split the polygon into two pieces).</description></item>
  15606. </list>
  15607. </summary>
  15608. </member>
  15609. <member name="F:NetTopologySuite.Geometries.Polygon.Empty">
  15610. <summary>
  15611. Represents an empty <c>Polygon</c>.
  15612. </summary>
  15613. </member>
  15614. <member name="F:NetTopologySuite.Geometries.Polygon._shell">
  15615. <summary>
  15616. The exterior boundary, or <c>null</c> if this <c>Polygon</c>
  15617. is the empty point.
  15618. </summary>
  15619. </member>
  15620. <member name="F:NetTopologySuite.Geometries.Polygon._holes">
  15621. <summary>
  15622. The interior boundaries, if any.
  15623. </summary>
  15624. </member>
  15625. <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[])">
  15626. <summary>
  15627. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Polygon"/> class.
  15628. </summary>
  15629. <param name="shell">
  15630. The outer boundary of the new <c>Polygon</c>,
  15631. or <c>null</c> or an empty <c>LinearRing</c> if the empty
  15632. point is to be created.
  15633. </param>
  15634. <param name="holes">
  15635. The inner boundaries of the new <c>Polygon</c>
  15636. , or <c>null</c> or empty <c>LinearRing</c>s if the empty
  15637. point is to be created.
  15638. </param>
  15639. <remarks>
  15640. For create this <see cref="T:NetTopologySuite.Geometries.Geometry"/> is used a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  15641. with <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> <c> == </c> <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>.
  15642. </remarks>
  15643. </member>
  15644. <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.LinearRing[],NetTopologySuite.Geometries.GeometryFactory)">
  15645. <summary>
  15646. Constructs a <c>Polygon</c> with the given exterior boundary and
  15647. interior boundaries.
  15648. </summary>
  15649. <param name="shell">
  15650. The outer boundary of the new <c>Polygon</c>,
  15651. or <c>null</c> or an empty <c>LinearRing</c> if the empty
  15652. point is to be created.
  15653. </param>
  15654. <param name="holes">
  15655. The inner boundaries of the new <c>Polygon</c>
  15656. , or <c>null</c> or empty <c>LinearRing</c>s if the empty
  15657. point is to be created.
  15658. </param>
  15659. <param name="factory"></param>
  15660. </member>
  15661. <member name="P:NetTopologySuite.Geometries.Polygon.SortIndex">
  15662. <summary>
  15663. Gets a value to sort the geometry
  15664. </summary>
  15665. <remarks>
  15666. NOTE:<br/>
  15667. For JTS v1.17 this property's getter has been renamed to <c>getTypeCode()</c>.
  15668. In order not to break binary compatibility we did not follow.
  15669. </remarks>
  15670. </member>
  15671. <member name="P:NetTopologySuite.Geometries.Polygon.Coordinate">
  15672. <summary>
  15673. Returns a vertex of this <c>Geometry</c>
  15674. (usually, but not necessarily, the first one).
  15675. </summary>
  15676. <remarks>
  15677. The returned coordinate should not be assumed to be an actual Coordinate object used in the internal representation.
  15678. </remarks>
  15679. <returns>a Coordinate which is a vertex of this <c>Geometry</c>.</returns>
  15680. <returns><c>null</c> if this Geometry is empty.
  15681. </returns>
  15682. </member>
  15683. <member name="P:NetTopologySuite.Geometries.Polygon.Coordinates">
  15684. <summary>
  15685. Returns an array containing the values of all the vertices for
  15686. this geometry.
  15687. </summary>
  15688. <remarks>
  15689. If the geometry is a composite, the array will contain all the vertices
  15690. for the components, in the order in which the components occur in the geometry.
  15691. <para>
  15692. In general, the array cannot be assumed to be the actual internal
  15693. storage for the vertices. Thus modifying the array
  15694. may not modify the geometry itself.
  15695. Use the <see cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/> method
  15696. (possibly on the components) to modify the underlying data.
  15697. If the coordinates are modified,
  15698. <see cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/> must be called afterwards.
  15699. </para>
  15700. </remarks>
  15701. <returns>The vertices of this <c>Geometry</c>.</returns>
  15702. <seealso cref="M:NetTopologySuite.Geometries.Geometry.GeometryChanged"/>
  15703. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,System.Int32,System.Double)"/>
  15704. <seealso cref="M:NetTopologySuite.Geometries.CoordinateSequence.SetOrdinate(System.Int32,NetTopologySuite.Geometries.Ordinate,System.Double)"/>
  15705. </member>
  15706. <member name="M:NetTopologySuite.Geometries.Polygon.GetOrdinates(NetTopologySuite.Geometries.Ordinate)">
  15707. <summary>
  15708. Gets an array of <see cref="T:System.Double"/> ordinate values
  15709. </summary>
  15710. <param name="ordinate">The ordinate index</param>
  15711. <returns>An array of ordinate values</returns>
  15712. </member>
  15713. <member name="P:NetTopologySuite.Geometries.Polygon.NumPoints">
  15714. <summary>
  15715. Returns the count of this <c>Geometry</c>s vertices. The <c>Geometry</c>
  15716. s contained by composite <c>Geometry</c>s must be
  15717. Geometry's; that is, they must implement <c>NumPoints</c>.
  15718. </summary>
  15719. <returns>The number of vertices in this <c>Geometry</c>.</returns>
  15720. </member>
  15721. <member name="P:NetTopologySuite.Geometries.Polygon.Dimension">
  15722. <summary>
  15723. Returns the dimension of this geometry.
  15724. </summary>
  15725. <remarks>
  15726. The dimension of a geometry is is the topological
  15727. dimension of its embedding in the 2-D Euclidean plane.
  15728. In the NTS spatial model, dimension values are in the set {0,1,2}.
  15729. <para>
  15730. Note that this is a different concept to the dimension of
  15731. the vertex <see cref="P:NetTopologySuite.Geometries.Polygon.Coordinate"/>s.
  15732. The geometry dimension can never be greater than the coordinate dimension.
  15733. For example, a 0-dimensional geometry (e.g. a Point)
  15734. may have a coordinate dimension of 3 (X,Y,Z).
  15735. </para>
  15736. </remarks>
  15737. <returns>
  15738. The topological dimensions of this geometry
  15739. </returns>
  15740. </member>
  15741. <member name="P:NetTopologySuite.Geometries.Polygon.BoundaryDimension">
  15742. <summary>
  15743. Returns the dimension of this <c>Geometry</c>s inherent boundary.
  15744. </summary>
  15745. <returns>
  15746. The dimension of the boundary of the class implementing this
  15747. interface, whether or not this object is the empty point. Returns
  15748. <c>Dimension.False</c> if the boundary is the empty point.
  15749. </returns>
  15750. NOTE: make abstract and remove setter
  15751. </member>
  15752. <member name="P:NetTopologySuite.Geometries.Polygon.IsEmpty">
  15753. <summary>
  15754. </summary>
  15755. </member>
  15756. <member name="P:NetTopologySuite.Geometries.Polygon.ExteriorRing">
  15757. <summary>
  15758. </summary>
  15759. </member>
  15760. <member name="P:NetTopologySuite.Geometries.Polygon.NumInteriorRings">
  15761. <summary>
  15762. </summary>
  15763. </member>
  15764. <member name="P:NetTopologySuite.Geometries.Polygon.InteriorRings">
  15765. <summary>
  15766. </summary>
  15767. </member>
  15768. <member name="M:NetTopologySuite.Geometries.Polygon.GetInteriorRingN(System.Int32)">
  15769. <summary>
  15770. </summary>
  15771. <param name="n"></param>
  15772. <returns></returns>
  15773. </member>
  15774. <member name="P:NetTopologySuite.Geometries.Polygon.GeometryType">
  15775. <summary>
  15776. Returns the name of this object's interface.
  15777. </summary>
  15778. <returns>"Polygon"</returns>
  15779. </member>
  15780. <member name="P:NetTopologySuite.Geometries.Polygon.OgcGeometryType">
  15781. <inheritdoc cref="P:NetTopologySuite.Geometries.Geometry.OgcGeometryType"/>
  15782. </member>
  15783. <member name="P:NetTopologySuite.Geometries.Polygon.Area">
  15784. <summary>
  15785. Returns the area of this <c>Polygon</c>
  15786. </summary>
  15787. <returns></returns>
  15788. </member>
  15789. <member name="P:NetTopologySuite.Geometries.Polygon.Length">
  15790. <summary>
  15791. Returns the perimeter of this <c>Polygon</c>.
  15792. </summary>
  15793. <returns></returns>
  15794. </member>
  15795. <member name="P:NetTopologySuite.Geometries.Polygon.Boundary">
  15796. <summary>
  15797. </summary>
  15798. </member>
  15799. <member name="M:NetTopologySuite.Geometries.Polygon.ComputeEnvelopeInternal">
  15800. <summary>
  15801. </summary>
  15802. <returns></returns>
  15803. </member>
  15804. <member name="M:NetTopologySuite.Geometries.Polygon.EqualsExact(NetTopologySuite.Geometries.Geometry,System.Double)">
  15805. <summary>
  15806. </summary>
  15807. <param name="other"></param>
  15808. <param name="tolerance"></param>
  15809. <returns></returns>
  15810. </member>
  15811. <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.ICoordinateFilter)">
  15812. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateFilter)"/>
  15813. </member>
  15814. <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)">
  15815. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.ICoordinateSequenceFilter)"/>
  15816. </member>
  15817. <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IEntireCoordinateSequenceFilter)">
  15818. <inheritdoc />
  15819. </member>
  15820. <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IGeometryFilter)">
  15821. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryFilter)"/>
  15822. </member>
  15823. <member name="M:NetTopologySuite.Geometries.Polygon.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)">
  15824. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Apply(NetTopologySuite.Geometries.IGeometryComponentFilter)"/>
  15825. </member>
  15826. <member name="M:NetTopologySuite.Geometries.Polygon.CopyInternal">
  15827. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.CopyInternal"/>>
  15828. </member>
  15829. <member name="M:NetTopologySuite.Geometries.Polygon.ConvexHull">
  15830. <summary>
  15831. </summary>
  15832. <returns></returns>
  15833. </member>
  15834. <member name="M:NetTopologySuite.Geometries.Polygon.Normalize">
  15835. <summary>
  15836. </summary>
  15837. </member>
  15838. <member name="M:NetTopologySuite.Geometries.Polygon.CompareToSameClass(System.Object)">
  15839. <summary>
  15840. </summary>
  15841. <param name="o"></param>
  15842. <returns></returns>
  15843. </member>
  15844. <member name="M:NetTopologySuite.Geometries.Polygon.CompareToSameClass(System.Object,System.Collections.Generic.IComparer{NetTopologySuite.Geometries.CoordinateSequence})">
  15845. <summary>
  15846. </summary>
  15847. <param name="other"></param>
  15848. <param name="comparer"></param>
  15849. <returns></returns>
  15850. </member>
  15851. <member name="P:NetTopologySuite.Geometries.Polygon.IsRectangle">
  15852. <summary>
  15853. Tests whether this is a rectangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
  15854. </summary>
  15855. <returns><c>true</c> if the geometry is a rectangle.</returns>
  15856. </member>
  15857. <member name="M:NetTopologySuite.Geometries.Polygon.Reverse">
  15858. <inheritdoc cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/>
  15859. </member>
  15860. <member name="M:NetTopologySuite.Geometries.Polygon.ReverseInternal">
  15861. <summary>
  15862. The actual implementation of the <see cref="M:NetTopologySuite.Geometries.Geometry.Reverse"/> function for <c>POLYGON</c>s
  15863. </summary>
  15864. <returns>A reversed geometry</returns>
  15865. </member>
  15866. <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.GeometryFactory)">
  15867. <summary>
  15868. Constructs a <c>Polygon</c> with the given exterior boundary.
  15869. </summary>
  15870. <param name="shell">
  15871. The outer boundary of the new <c>Polygon</c>,
  15872. or <c>null</c> or an empty <c>LinearRing</c> if the empty
  15873. polygon is to be created.
  15874. </param>
  15875. <param name="factory"></param>
  15876. </member>
  15877. <member name="M:NetTopologySuite.Geometries.Polygon.#ctor(NetTopologySuite.Geometries.LinearRing)">
  15878. <summary>
  15879. Constructs a <c>Polygon</c> with the given exterior boundary.
  15880. </summary>
  15881. <param name="shell">
  15882. The outer boundary of the new <c>Polygon</c>,
  15883. or <c>null</c> or an empty <c>LinearRing</c> if the empty
  15884. polygon is to be created.
  15885. </param>
  15886. </member>
  15887. <member name="P:NetTopologySuite.Geometries.Polygon.Shell">
  15888. <summary>
  15889. </summary>
  15890. </member>
  15891. <member name="P:NetTopologySuite.Geometries.Polygon.Holes">
  15892. <summary>
  15893. </summary>
  15894. </member>
  15895. <member name="T:NetTopologySuite.Geometries.Position">
  15896. <summary>
  15897. Indicates the position of a location relative to a
  15898. node or edge component of a planar topological structure.
  15899. </summary>
  15900. </member>
  15901. <member name="F:NetTopologySuite.Geometries.Position.On">
  15902. <summary>
  15903. Specifies that a location is <c>on</c> a component
  15904. </summary>
  15905. <value>0</value>
  15906. </member>
  15907. <member name="F:NetTopologySuite.Geometries.Position.Left">
  15908. <summary>
  15909. Specifies that a location is to the <c>left</c> of a component
  15910. </summary>
  15911. <value>1</value>
  15912. </member>
  15913. <member name="F:NetTopologySuite.Geometries.Position.Right">
  15914. <summary>
  15915. Specifies that a location is to the <c>right</c> of a component
  15916. </summary>
  15917. <value>2</value>
  15918. </member>
  15919. <member name="F:NetTopologySuite.Geometries.Position.Parallel">
  15920. <summary>
  15921. Specifies that a location is <c>is parallel to x-axis</c> of a component
  15922. </summary>
  15923. <value>-1</value>
  15924. </member>
  15925. <member name="M:NetTopologySuite.Geometries.Position.#ctor(System.Int32)">
  15926. <summary>
  15927. Creates a new position index
  15928. </summary>
  15929. <param name="index">A position index</param>
  15930. </member>
  15931. <member name="P:NetTopologySuite.Geometries.Position.Index">
  15932. <summary>
  15933. Gets a value indicating the position index
  15934. </summary>
  15935. </member>
  15936. <member name="P:NetTopologySuite.Geometries.Position.Opposite">
  15937. <summary>
  15938. Returns <see cref="F:NetTopologySuite.Geometries.Position.Left"/> if the position is <see cref="F:NetTopologySuite.Geometries.Position.Right"/>,
  15939. <see cref="F:NetTopologySuite.Geometries.Position.Right"/> if the position is <see cref="F:NetTopologySuite.Geometries.Position.Left"/>, or the position
  15940. otherwise.
  15941. </summary>
  15942. </member>
  15943. <member name="M:NetTopologySuite.Geometries.Position.op_Equality(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Position)">
  15944. <summary>
  15945. Equality comparer for <see cref="T:NetTopologySuite.Geometries.Position"/> indices
  15946. </summary>
  15947. <param name="lhs">The position index on the left-hand-side</param>
  15948. <param name="rhs">The position index on the right-hand-side</param>
  15949. <returns><c>true</c> if both indices are equal.</returns>
  15950. </member>
  15951. <member name="M:NetTopologySuite.Geometries.Position.op_Inequality(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Position)">
  15952. <summary>
  15953. Inequality comparer for <see cref="T:NetTopologySuite.Geometries.Position"/> indices
  15954. </summary>
  15955. <param name="lhs">The position index on the left-hand-side</param>
  15956. <param name="rhs">The position index on the right-hand-side</param>
  15957. <returns><c>true</c> if both indices are <b>not</b> equal.</returns>
  15958. </member>
  15959. <member name="M:NetTopologySuite.Geometries.Position.op_Implicit(NetTopologySuite.Geometries.Position)~System.Int32">
  15960. <summary>
  15961. Implicit conversion operator for <see cref="T:NetTopologySuite.Geometries.Position"/> to <see cref="T:System.Int32"/> conversion.
  15962. </summary>
  15963. <param name="pos">The position index</param>
  15964. </member>
  15965. <member name="T:NetTopologySuite.Geometries.PrecisionModel">
  15966. <summary>
  15967. Specifies the precision model of the <c>Coordinate</c>s in a <c>Geometry</c>.
  15968. In other words, specifies the grid of allowable points for a <c>Geometry</c>.
  15969. A precision model may be<b>floating</b> (<see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> or <see cref="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle"/>),
  15970. in which case normal floating-point value semantics apply.
  15971. </summary>
  15972. <remarks>
  15973. For a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/> precision model the
  15974. <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)"/> method allows rounding a
  15975. coordinate to a "precise" value; that is, one whose precision
  15976. is known exactly.
  15977. <para/>
  15978. Coordinates are assumed to be precise in geometries.
  15979. That is, the coordinates are assumed to be rounded to the
  15980. precision model given for the geometry.
  15981. <para/>
  15982. All internal operations
  15983. assume that coordinates are rounded to the precision model.
  15984. Constructive methods (such as bool operations) always round computed
  15985. coordinates to the appropriate precision model.<br/>
  15986. Three types of precision model are supported:
  15987. <list type="table">
  15988. <item><term>Floating</term><description>Represents full double precision floating point.
  15989. This is the default precision model used in NTS</description></item>
  15990. <item><term>FloatingSingle</term><description>Represents single precision floating point</description></item>
  15991. <item><term>Fixed</term><description>Represents a model with a fixed number of decimal places.
  15992. A Fixed Precision Model is specified by a <b>scale factor</b>.
  15993. The scale factor specifies the size of the grid which numbers are rounded to.</description></item>
  15994. </list>
  15995. Input coordinates are mapped to fixed coordinates according to the following
  15996. equations:
  15997. <list type="bullet">
  15998. <item><description><c>jtsPt.X = Math.Round( inputPt.X * scale, MidPointRounding.AwayFromZero ) / scale )</c></description></item>
  15999. <item><description><c>jtsPt.Y = Math.Round( inputPt.Y * scale, MidPointRounding.AwayFromZero ) / scale )</c></description></item>
  16000. </list>
  16001. <para>
  16002. For example, to specify 3 decimal places of precision, use a scale factor
  16003. of 1000. To specify -3 decimal places of precision (i.e. rounding to
  16004. the nearest 1000), use a scale factor of 0.001.
  16005. </para>
  16006. It is also supported to specify a precise <b>grid size</b>
  16007. by providing it as a negative scale factor.
  16008. This allows setting a precise grid size rather than using a fractional scale,
  16009. which provides more accurate and robust rounding.
  16010. For example, to specify rounding to the nearest 1000 use a scale factor of -1000.
  16011. <para/>
  16012. Coordinates are represented internally as Java double-precision values.
  16013. .NET uses the IEEE-394 floating point standard, which
  16014. provides 53 bits of precision. (Thus the maximum precisely representable
  16015. <i>integer</i> is 9,007,199,254,740,992 - or almost 16 decimal digits of precision).
  16016. </remarks>
  16017. </member>
  16018. <member name="M:NetTopologySuite.Geometries.PrecisionModel.MostPrecise(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
  16019. <summary>
  16020. Determines which of two <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>s is the most precise
  16021. </summary>
  16022. <param name="pm1">A precision model</param>
  16023. <param name="pm2">A precision model</param>
  16024. <returns>The PrecisionModel which is most precise</returns>
  16025. </member>
  16026. <member name="F:NetTopologySuite.Geometries.PrecisionModel.MaximumPreciseValue">
  16027. <summary>
  16028. The maximum precise value representable in a double. Since IEE754
  16029. double-precision numbers allow 53 bits of mantissa, the value is equal to
  16030. 2^53 - 1. This provides <i>almost</i> 16 decimal digits of precision.
  16031. </summary>
  16032. </member>
  16033. <member name="F:NetTopologySuite.Geometries.PrecisionModel._modelType">
  16034. <summary>
  16035. The type of PrecisionModel this represents.
  16036. </summary>
  16037. </member>
  16038. <member name="F:NetTopologySuite.Geometries.PrecisionModel._scale">
  16039. <summary>
  16040. The scale factor which determines the number of decimal places in fixed precision.
  16041. </summary>
  16042. </member>
  16043. <member name="F:NetTopologySuite.Geometries.PrecisionModel._gridSize">
  16044. <summary>
  16045. If non-zero, the precise grid size specified.
  16046. In this case, the scale is also valid and is computed from the grid size.
  16047. If zero, the scale is used to compute the grid size where needed.
  16048. </summary>
  16049. </member>
  16050. <member name="P:NetTopologySuite.Geometries.PrecisionModel.Floating">
  16051. <summary>
  16052. Gets a value indicating a precision model with double precision.
  16053. </summary>
  16054. <returns>A double precision model</returns>
  16055. </member>
  16056. <member name="P:NetTopologySuite.Geometries.PrecisionModel.FloatingSingle">
  16057. <summary>
  16058. Gets a value indicating a precision model with single precision.
  16059. </summary>
  16060. <returns>A single precision model</returns>
  16061. </member>
  16062. <member name="P:NetTopologySuite.Geometries.PrecisionModel.Fixed">
  16063. <summary>
  16064. Gets a value indicating a precision model with a scale of <c>1</c>.
  16065. </summary>
  16066. <returns>A fixed precision model</returns>
  16067. </member>
  16068. <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor">
  16069. <summary>
  16070. Creates a <c>PrecisionModel</c> with a default precision
  16071. of Floating.
  16072. </summary>
  16073. </member>
  16074. <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(NetTopologySuite.Geometries.PrecisionModels)">
  16075. <summary>
  16076. Creates a <c>PrecisionModel</c> that specifies
  16077. an explicit precision model type.
  16078. If the model type is Fixed the scale factor will default to 1.
  16079. </summary>
  16080. <param name="modelType">
  16081. The type of the precision model.
  16082. </param>
  16083. </member>
  16084. <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(System.Double)">
  16085. <summary>
  16086. Creates a <c>PrecisionModel</c> that specifies Fixed precision.
  16087. Fixed-precision coordinates are represented as precise internal coordinates,
  16088. which are rounded to the grid defined by the scale factor.
  16089. <para/>
  16090. The provided scale may be negative, to specify an exact grid size.
  16091. The scale is then computed as the reciprocal.
  16092. </summary>
  16093. <param name="scale">
  16094. Amount by which to multiply a coordinate, to obtain a precise coordinate.
  16095. Must be non-zero
  16096. </param>
  16097. </member>
  16098. <member name="M:NetTopologySuite.Geometries.PrecisionModel.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  16099. <summary>
  16100. Copy constructor to create a new <c>PrecisionModel</c>
  16101. from an existing one.
  16102. </summary>
  16103. <param name="pm"></param>
  16104. </member>
  16105. <member name="P:NetTopologySuite.Geometries.PrecisionModel.IsFloating">
  16106. <summary>
  16107. Tests whether the precision model supports floating point.
  16108. </summary>
  16109. <returns><c>true</c> if the precision model supports floating point.</returns>
  16110. </member>
  16111. <member name="P:NetTopologySuite.Geometries.PrecisionModel.MaximumSignificantDigits">
  16112. <summary>
  16113. Returns the maximum number of significant digits provided by this
  16114. precision model.
  16115. Intended for use by routines which need to print out precise values.
  16116. </summary>
  16117. <returns>
  16118. The maximum number of decimal places provided by this precision model.
  16119. </returns>
  16120. </member>
  16121. <member name="P:NetTopologySuite.Geometries.PrecisionModel.Scale">
  16122. <summary>
  16123. Returns the scale factor used to specify a fixed precision model.
  16124. </summary>
  16125. <remarks>
  16126. The number of decimal places of precision is
  16127. equal to the base-10 logarithm of the scale factor.
  16128. Non-integral and negative scale factors are supported.
  16129. Negative scale factors indicate that the places
  16130. of precision is to the left of the decimal point.
  16131. </remarks>
  16132. <returns>
  16133. The scale factor for the fixed precision model
  16134. </returns>
  16135. </member>
  16136. <member name="P:NetTopologySuite.Geometries.PrecisionModel.GridSize">
  16137. <summary>
  16138. Computes the grid size for a fixed precision model.
  16139. This is equal to the reciprocal of the scale factor.
  16140. If the grid size has been set explicity (via a negative scale factor)
  16141. it will be returned.
  16142. </summary>
  16143. <returns>The grid size at a fixed precision scale.</returns>
  16144. </member>
  16145. <member name="P:NetTopologySuite.Geometries.PrecisionModel.PrecisionModelType">
  16146. <summary>
  16147. Gets the type of this PrecisionModel.
  16148. </summary>
  16149. <returns></returns>
  16150. </member>
  16151. <member name="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)">
  16152. <summary>
  16153. Rounds a numeric value to the PrecisionModel grid.
  16154. Symmetric Arithmetic Rounding is used, to provide
  16155. uniform rounding behaviour no matter where the number is
  16156. on the number line.
  16157. </summary>
  16158. <remarks>
  16159. This method has no effect on NaN values
  16160. </remarks>
  16161. <param name="val"></param>
  16162. </member>
  16163. <member name="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)">
  16164. <summary>
  16165. Rounds a Coordinate to the PrecisionModel grid.
  16166. </summary>
  16167. <param name="coord"></param>
  16168. </member>
  16169. <member name="M:NetTopologySuite.Geometries.PrecisionModel.ToString">
  16170. <summary>
  16171. </summary>
  16172. <returns></returns>
  16173. </member>
  16174. <member name="M:NetTopologySuite.Geometries.PrecisionModel.Equals(System.Object)">
  16175. <summary>
  16176. </summary>
  16177. <param name="other"></param>
  16178. <returns></returns>
  16179. </member>
  16180. <member name="M:NetTopologySuite.Geometries.PrecisionModel.GetHashCode">
  16181. <inheritdoc cref="M:System.Object.GetHashCode"/>>
  16182. </member>
  16183. <member name="M:NetTopologySuite.Geometries.PrecisionModel.Equals(NetTopologySuite.Geometries.PrecisionModel)">
  16184. <summary>
  16185. </summary>
  16186. <param name="otherPrecisionModel"></param>
  16187. <returns></returns>
  16188. </member>
  16189. <member name="M:NetTopologySuite.Geometries.PrecisionModel.op_Equality(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
  16190. <summary>
  16191. </summary>
  16192. <param name="obj1"></param>
  16193. <param name="obj2"></param>
  16194. <returns></returns>
  16195. </member>
  16196. <member name="M:NetTopologySuite.Geometries.PrecisionModel.op_Inequality(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Geometries.PrecisionModel)">
  16197. <summary>
  16198. </summary>
  16199. <param name="obj1"></param>
  16200. <param name="obj2"></param>
  16201. <returns></returns>
  16202. </member>
  16203. <member name="M:NetTopologySuite.Geometries.PrecisionModel.CompareTo(System.Object)">
  16204. <summary>
  16205. Compares this <c>PrecisionModel</c> object with the specified object for order.
  16206. A PrecisionModel is greater than another if it provides greater precision.
  16207. The comparison is based on the value returned by the
  16208. {getMaximumSignificantDigits) method.
  16209. This comparison is not strictly accurate when comparing floating precision models
  16210. to fixed models; however, it is correct when both models are either floating or fixed.
  16211. </summary>
  16212. <param name="o">
  16213. The <c>PrecisionModel</c> with which this <c>PrecisionModel</c>
  16214. is being compared.
  16215. </param>
  16216. <returns>
  16217. A negative integer, zero, or a positive integer as this <c>PrecisionModel</c>
  16218. is less than, equal to, or greater than the specified <c>PrecisionModel</c>.
  16219. </returns>
  16220. </member>
  16221. <member name="M:NetTopologySuite.Geometries.PrecisionModel.CompareTo(NetTopologySuite.Geometries.PrecisionModel)">
  16222. <summary>
  16223. </summary>
  16224. <param name="other"></param>
  16225. <returns></returns>
  16226. </member>
  16227. <member name="T:NetTopologySuite.Geometries.PrecisionModels">
  16228. <summary>
  16229. </summary>
  16230. </member>
  16231. <member name="F:NetTopologySuite.Geometries.PrecisionModels.Floating">
  16232. <summary>
  16233. Floating precision corresponds to the standard
  16234. double-precision floating-point representation, which is
  16235. based on the IEEE-754 standard
  16236. </summary>
  16237. </member>
  16238. <member name="F:NetTopologySuite.Geometries.PrecisionModels.FloatingSingle">
  16239. <summary>
  16240. Floating single precision corresponds to the standard
  16241. single-precision floating-point representation, which is
  16242. based on the IEEE-754 standard
  16243. </summary>
  16244. </member>
  16245. <member name="F:NetTopologySuite.Geometries.PrecisionModels.Fixed">
  16246. <summary>
  16247. Fixed Precision indicates that coordinates have a fixed number of decimal places.
  16248. The number of decimal places is determined by the log10 of the scale factor.
  16249. </summary>
  16250. </member>
  16251. <member name="T:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains">
  16252. <summary>
  16253. A base class containing the logic for computes the <i>contains</i>
  16254. and <i>covers</i> spatial relationship predicates
  16255. for a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16256. Uses short-circuit tests and indexing to improve performance.
  16257. </summary>
  16258. <remarks>
  16259. <para>
  16260. Contains and covers are very similar, and differ only in how certain
  16261. cases along the boundary are handled. These cases require
  16262. full topological evaluation to handle, so all the code in
  16263. this class is common to both predicates.
  16264. </para>
  16265. <para>
  16266. It is not possible to short-circuit in all cases, in particular
  16267. in the case where line segments of the test geometry touches the polygon linework.
  16268. In this case full topology must be computed.
  16269. (However, if the test geometry consists of only points, this
  16270. <i>can</i> be evaluated in an optimized fashion.
  16271. </para>
  16272. </remarks>
  16273. <author>Martin Davis</author>
  16274. </member>
  16275. <member name="F:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.RequireSomePointInInterior">
  16276. <summary>
  16277. This flag controls a difference between contains and covers.
  16278. For contains the value is true.
  16279. For covers the value is false.
  16280. </summary>
  16281. </member>
  16282. <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16283. <summary>
  16284. Creates an instance of this operation.
  16285. </summary>
  16286. <param name="prepPoly">The PreparedPolygon to evaluate</param>
  16287. </member>
  16288. <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.Eval(NetTopologySuite.Geometries.Geometry)">
  16289. <summary>
  16290. Evaluate the <i>contains</i> or <i>covers</i> relationship
  16291. for the given geometry.
  16292. </summary>
  16293. <param name="geom">the test geometry</param>
  16294. <returns>true if the test geometry is contained</returns>
  16295. </member>
  16296. <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.EvalPoints(NetTopologySuite.Geometries.Geometry)">
  16297. <summary>
  16298. Evaluation optimized for Point geometries.
  16299. This provides about a 2x performance increase, and less memory usage.
  16300. </summary>
  16301. <param name="geom">A Point or MultiPoint geometry</param>
  16302. <returns>The value of the predicate being evaluated</returns>
  16303. </member>
  16304. <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.IsSingleShell(NetTopologySuite.Geometries.Geometry)">
  16305. <summary>
  16306. Tests whether a geometry consists of a single polygon with no holes.
  16307. </summary>
  16308. <returns>True if the geometry is a single polygon with no holes</returns>
  16309. </member>
  16310. <member name="M:NetTopologySuite.Geometries.Prepared.AbstractPreparedPolygonContains.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
  16311. <summary>
  16312. Computes the full topological predicate.
  16313. Used when short-circuit tests are not conclusive.
  16314. </summary>
  16315. <param name="geom">The test geometry</param>
  16316. <returns>true if this prepared polygon has the relationship with the test geometry</returns>
  16317. </member>
  16318. <member name="T:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry">
  16319. <summary>
  16320. A base class for <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> subclasses.
  16321. </summary>
  16322. <remarks>
  16323. <para>Contains default implementations for methods, which simply delegate to the equivalent <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> methods.</para>
  16324. <para>This class may be used as a "no-op" class for Geometry types which do not have a corresponding <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> implementation.</para>
  16325. </remarks>
  16326. <author>Martin Davis</author>
  16327. </member>
  16328. <member name="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.RepresentativePoints">
  16329. <summary>
  16330. Gets the list of representative points for this geometry.
  16331. One vertex is included for every component of the geometry
  16332. (i.e. including one for every ring of polygonal geometries).
  16333. <para/>
  16334. Do not modify the returned list!
  16335. </summary>
  16336. </member>
  16337. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.IsAnyTargetComponentInTest(NetTopologySuite.Geometries.Geometry)">
  16338. <summary>
  16339. Tests whether any representative of the target geometry intersects the test geometry.
  16340. This is useful in A/A, A/L, A/P, L/P, and P/P cases.
  16341. </summary>
  16342. <param name="testGeom">The test geometry</param>
  16343. <returns>true if any component intersects the areal test geometry</returns>
  16344. </member>
  16345. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.EnvelopesIntersect(NetTopologySuite.Geometries.Geometry)">
  16346. <summary>
  16347. Determines whether a Geometry g interacts with this geometry by testing the geometry envelopes.
  16348. </summary>
  16349. <param name="g">A geometry</param>
  16350. <returns>true if the envelopes intersect</returns>
  16351. </member>
  16352. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.EnvelopeCovers(NetTopologySuite.Geometries.Geometry)">
  16353. <summary>
  16354. Determines whether the envelope of this geometry covers the Geometry g.
  16355. </summary>
  16356. <param name="g">A geometry</param>
  16357. <returns>true if g is contained in this envelope</returns>
  16358. </member>
  16359. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)">
  16360. <summary>
  16361. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> contains a given geometry.
  16362. </summary>
  16363. <param name="g">The Geometry to test</param>
  16364. <returns>true if this Geometry contains the given Geometry</returns>
  16365. <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
  16366. <remarks>Default implementation.</remarks>
  16367. </member>
  16368. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
  16369. <summary>
  16370. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> properly contains a given geometry.
  16371. <para/>
  16372. The <c>ContainsProperly</c> predicate has the following equivalent definitions:
  16373. <list>
  16374. <item><description>Every point of the other geometry is a point of this geometry's interior.</description></item>
  16375. <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>>[T**FF*FF*]</c></description></item>
  16376. </list>
  16377. In other words, if the test geometry has any interaction with the boundary of the target
  16378. geometry the result of <c>ContainsProperly</c> is <c>false</c>.
  16379. This is different semantics to the <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/> predicate,
  16380. in which test geometries can intersect the target's boundary and still be contained.
  16381. <para/>
  16382. The advantage of using this predicate is that it can be computed
  16383. efficiently, since it avoids the need to compute the full topological relationship
  16384. of the input boundaries in cases where they intersect.
  16385. <para/>
  16386. An example use case is computing the intersections
  16387. of a set of geometries with a large polygonal geometry.
  16388. Since <i>intersection</i> is a fairly slow operation, it can be more efficient
  16389. to use <see cref="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)" /> to filter out test geometries which lie
  16390. wholly inside the area. In these cases the intersection is
  16391. known <c>a priori</c> to be simply the original test geometry.
  16392. </summary>
  16393. <param name="g">The geometry to test</param>
  16394. <returns>true if this geometry properly contains the given geometry</returns>
  16395. <see cref="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)"/>
  16396. <remarks>Default implementation.</remarks>
  16397. <seealso cref="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
  16398. </member>
  16399. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
  16400. <summary>
  16401. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is covered by a given geometry.
  16402. </summary>
  16403. <param name="g">The geometry to test</param>
  16404. <returns>true if this geometry is covered by the given geometry</returns>
  16405. <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
  16406. <remarks>Default implementation.</remarks>
  16407. </member>
  16408. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Covers(NetTopologySuite.Geometries.Geometry)">
  16409. <summary>
  16410. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> covers a given geometry.
  16411. </summary>
  16412. <param name="g">The geometry to test</param>
  16413. <returns>true if this geometry covers the given geometry</returns>
  16414. <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
  16415. <remarks>Default implementation.</remarks>
  16416. </member>
  16417. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Crosses(NetTopologySuite.Geometries.Geometry)">
  16418. <summary>
  16419. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> crosses a given geometry.
  16420. </summary>
  16421. <param name="g">The geometry to test</param>
  16422. <returns>true if this geometry crosses the given geometry</returns>
  16423. <see cref="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)"/>
  16424. <remarks>Default implementation.</remarks>
  16425. </member>
  16426. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
  16427. <summary>
  16428. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is disjoint from given geometry.
  16429. </summary>
  16430. <param name="g">The geometry to test</param>
  16431. <returns>true if this geometry is disjoint from the given geometry</returns>
  16432. <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
  16433. <remarks>Standard implementation for all geometries.</remarks>
  16434. </member>
  16435. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Intersects(NetTopologySuite.Geometries.Geometry)">
  16436. <summary>
  16437. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> intersects a given geometry.
  16438. </summary>
  16439. <param name="g">The geometry to test</param>
  16440. <returns>true if this geometry intersects the given geometry</returns>
  16441. <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
  16442. <remarks>Default implementation.</remarks>
  16443. </member>
  16444. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
  16445. <summary>
  16446. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> overlaps a given geometry.
  16447. </summary>
  16448. <param name="g">The geometry to test</param>
  16449. <returns>true if this geometry overlaps the given geometry</returns>
  16450. <see cref="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)"/>
  16451. <remarks>Default implementation.</remarks>
  16452. </member>
  16453. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Touches(NetTopologySuite.Geometries.Geometry)">
  16454. <summary>
  16455. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> touches a given geometry.
  16456. </summary>
  16457. <param name="g">The geometry to test</param>
  16458. <returns>true if this geometry touches the given geometry</returns>
  16459. <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
  16460. <remarks>Default implementation.</remarks>
  16461. </member>
  16462. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Within(NetTopologySuite.Geometries.Geometry)">
  16463. <summary>
  16464. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.Geometry"/> is within a given geometry.
  16465. </summary>
  16466. <param name="g">The geometry to test</param>
  16467. <returns>true if this geometry is within the given geometry</returns>
  16468. <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
  16469. <remarks>Default implementation.</remarks>
  16470. </member>
  16471. <member name="M:NetTopologySuite.Geometries.Prepared.BasicPreparedGeometry.ToString">
  16472. <inheritdoc cref="M:System.Object.ToString"/>
  16473. </member>
  16474. <member name="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry">
  16475. <summary>
  16476. An interface for classes which prepare <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/>s
  16477. in order to optimize the performance of repeated calls to specific geometric operations.
  16478. </summary>
  16479. <remarks>
  16480. <para>
  16481. A given implementation may provide optimized implementations
  16482. for only some of the specified methods, and delegate the remaining
  16483. methods to the original <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> operations.
  16484. </para>
  16485. <para>
  16486. An implementation may also only optimize certain situations, and delegate others.
  16487. See the implementing classes for documentation about which methods and situations
  16488. they optimize.</para>
  16489. <para>
  16490. Subclasses are intended to be thread-safe, to allow <c>IPreparedGeometry</c>
  16491. to be used in a multi-threaded context
  16492. (which allows extracting maximum benefit from the prepared state).
  16493. </para>
  16494. </remarks>
  16495. <author>Martin Davis</author>
  16496. </member>
  16497. <member name="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry">
  16498. <summary>
  16499. Gets the original <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> which has been prepared.
  16500. </summary>
  16501. </member>
  16502. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Contains(NetTopologySuite.Geometries.Geometry)">
  16503. <summary>
  16504. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> contains a given geometry.
  16505. </summary>
  16506. <param name="geom">The Geometry to test</param>
  16507. <returns>true if this Geometry contains the given Geometry</returns>
  16508. <see cref="M:NetTopologySuite.Geometries.Geometry.Contains(NetTopologySuite.Geometries.Geometry)"/>
  16509. </member>
  16510. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
  16511. <summary>
  16512. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> contains a given geometry.
  16513. </summary>
  16514. <remarks>
  16515. <para>
  16516. The <c>ContainsProperly</c> predicate has the following equivalent definitions:
  16517. <list type="bullet">
  16518. <item><description>Every point of the other geometry is a point of this geometry's interior.</description></item>
  16519. <item><description>The DE-9IM Intersection Matrix for the two geometries matches <c>>[T**FF*FF*]</c></description></item>
  16520. </list>
  16521. The advantage to using this predicate is that it can be computed
  16522. efficiently, with no need to compute topology at individual points.
  16523. </para>
  16524. <para>
  16525. An example use case for this predicate is computing the intersections
  16526. of a set of geometries with a large polygonal geometry.
  16527. Since <tt>intersection</tt> is a fairly slow operation, it can be more efficient
  16528. to use <tt>containsProperly</tt> to filter out test geometries which lie
  16529. wholly inside the area. In these cases the intersection
  16530. known a priori to be simply the original test geometry.
  16531. </para>
  16532. </remarks>
  16533. <param name="geom">The geometry to test</param>
  16534. <returns>true if this geometry properly contains the given geometry</returns>
  16535. </member>
  16536. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.CoveredBy(NetTopologySuite.Geometries.Geometry)">
  16537. <summary>
  16538. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is covered by a given geometry.
  16539. </summary>
  16540. <param name="geom">The geometry to test</param>
  16541. <returns>true if this geometry is covered by the given geometry</returns>
  16542. <see cref="M:NetTopologySuite.Geometries.Geometry.CoveredBy(NetTopologySuite.Geometries.Geometry)"/>
  16543. </member>
  16544. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Covers(NetTopologySuite.Geometries.Geometry)">
  16545. <summary>
  16546. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> covers a given geometry.
  16547. </summary>
  16548. <param name="geom">The geometry to test</param>
  16549. <returns>true if this geometry covers the given geometry</returns>
  16550. <see cref="M:NetTopologySuite.Geometries.Geometry.Covers(NetTopologySuite.Geometries.Geometry)"/>
  16551. </member>
  16552. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Crosses(NetTopologySuite.Geometries.Geometry)">
  16553. <summary>
  16554. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> crosses a given geometry.
  16555. </summary>
  16556. <param name="geom">The geometry to test</param>
  16557. <returns>true if this geometry crosses the given geometry</returns>
  16558. <see cref="M:NetTopologySuite.Geometries.Geometry.Crosses(NetTopologySuite.Geometries.Geometry)"/>
  16559. </member>
  16560. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Disjoint(NetTopologySuite.Geometries.Geometry)">
  16561. <summary>
  16562. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is disjoint from given geometry.
  16563. </summary>
  16564. <remarks>
  16565. This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s as input
  16566. </remarks>
  16567. <param name="geom">The geometry to test</param>
  16568. <returns>true if this geometry is disjoint from the given geometry</returns>
  16569. <see cref="M:NetTopologySuite.Geometries.Geometry.Disjoint(NetTopologySuite.Geometries.Geometry)"/>
  16570. </member>
  16571. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Intersects(NetTopologySuite.Geometries.Geometry)">
  16572. <summary>
  16573. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> intersects a given geometry.
  16574. </summary>
  16575. <remarks>
  16576. This method supports <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s as input
  16577. </remarks>
  16578. <param name="geom">The geometry to test</param>
  16579. <returns>true if this geometry intersects the given geometry</returns>
  16580. <see cref="M:NetTopologySuite.Geometries.Geometry.Intersects(NetTopologySuite.Geometries.Geometry)"/>
  16581. </member>
  16582. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Overlaps(NetTopologySuite.Geometries.Geometry)">
  16583. <summary>
  16584. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> overlaps a given geometry.
  16585. </summary>
  16586. <param name="geom">The geometry to test</param>
  16587. <returns>true if this geometry overlaps the given geometry</returns>
  16588. <see cref="M:NetTopologySuite.Geometries.Geometry.Overlaps(NetTopologySuite.Geometries.Geometry)"/>
  16589. </member>
  16590. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Touches(NetTopologySuite.Geometries.Geometry)">
  16591. <summary>
  16592. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> touches a given geometry.
  16593. </summary>
  16594. <param name="geom">The geometry to test</param>
  16595. <returns>true if this geometry touches the given geometry</returns>
  16596. <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
  16597. </member>
  16598. <member name="M:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Within(NetTopologySuite.Geometries.Geometry)">
  16599. <summary>
  16600. Tests whether the base <see cref="P:NetTopologySuite.Geometries.Prepared.IPreparedGeometry.Geometry"/> is within a given geometry.
  16601. </summary>
  16602. <param name="geom">The geometry to test</param>
  16603. <returns>true if this geometry is within the given geometry</returns>
  16604. <see cref="M:NetTopologySuite.Geometries.Geometry.Within(NetTopologySuite.Geometries.Geometry)"/>
  16605. </member>
  16606. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory">
  16607. <summary>
  16608. A factory for creating <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>s. It chooses an appropriate implementation of PreparedGeometry
  16609. based on the geometric type of the input geometry.
  16610. <para/>
  16611. In the future, the factory may accept hints that indicate
  16612. special optimizations which can be performed.
  16613. <para/>
  16614. Instances of this class are thread-safe.
  16615. </summary>
  16616. <author>Martin Davis</author>
  16617. </member>
  16618. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory.Prepare(NetTopologySuite.Geometries.Geometry)">
  16619. <summary>
  16620. Creates a new <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> appropriate for the argument <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16621. </summary>
  16622. <param name="geom">The geometry to prepare</param>
  16623. <returns>
  16624. the prepared geometry
  16625. </returns>
  16626. </member>
  16627. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory.Create(NetTopologySuite.Geometries.Geometry)">
  16628. <summary>
  16629. Creates a new <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/> appropriate for the argument <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16630. </summary>
  16631. <param name="geom">The geometry to prepare</param>
  16632. <returns>
  16633. the prepared geometry
  16634. </returns>
  16635. </member>
  16636. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedLineString">
  16637. <summary>
  16638. A prepared version for <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries.
  16639. <para>Instances of this class are thread-safe</para>.
  16640. </summary>
  16641. <author>mbdavis</author>
  16642. </member>
  16643. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects">
  16644. <summary>
  16645. Computes the <i>intersects</i> spatial relationship predicate
  16646. for a target <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedLineString"/> relative to other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16647. </summary>
  16648. <remarks>
  16649. Uses short-circuit tests and indexing to improve performance.
  16650. </remarks>
  16651. <author>Martin Davis</author>
  16652. </member>
  16653. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.Intersects(NetTopologySuite.Geometries.Prepared.PreparedLineString,NetTopologySuite.Geometries.Geometry)">
  16654. <summary>
  16655. Computes the intersects predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedLineString"/>
  16656. and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16657. </summary>
  16658. <param name="prep">The prepared linestring</param>
  16659. <param name="geom">A test geometry</param>
  16660. <returns>true if the linestring intersects the geometry</returns>
  16661. </member>
  16662. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.#ctor(NetTopologySuite.Geometries.Prepared.PreparedLineString)">
  16663. <summary>
  16664. Creates an instance of this operation.
  16665. </summary>
  16666. <param name="prepLine">The target PreparedLineString</param>
  16667. </member>
  16668. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
  16669. <summary>
  16670. Tests whether this geometry intersects a given geometry.
  16671. </summary>
  16672. <param name="geom">The test geometry</param>
  16673. <returns>true if the test geometry intersects</returns>
  16674. </member>
  16675. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedLineStringIntersects.IsAnyTestPointInTarget(NetTopologySuite.Geometries.Geometry)">
  16676. <summary>
  16677. Tests whether any representative point of the test Geometry intersects
  16678. the target geometry.
  16679. </summary>
  16680. <remarks>
  16681. Only handles test geometries which are Puntal (dimension 0)
  16682. </remarks>
  16683. <param name="testGeom">A Puntal geometry to test</param>
  16684. <returns>true if any point of the argument intersects the prepared geometry</returns>
  16685. </member>
  16686. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPoint">
  16687. <summary>
  16688. A prepared version for <see cref="T:NetTopologySuite.Geometries.IPuntal"/> geometries.
  16689. <para>Instances of this class are thread-safe.</para>
  16690. </summary>
  16691. <author>Martin Davis</author>
  16692. </member>
  16693. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPoint.Intersects(NetTopologySuite.Geometries.Geometry)">
  16694. <summary>
  16695. Tests whether this point intersects a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16696. </summary>
  16697. <remarks>
  16698. The optimization here is that computing topology for the test geometry
  16699. is avoided. This can be significant for large geometries.
  16700. </remarks>
  16701. </member>
  16702. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon">
  16703. <summary>
  16704. A prepared version for <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries.
  16705. This class supports both <see cref="T:NetTopologySuite.Geometries.Polygon"/>s and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>s.
  16706. <para>This class does <b>not</b> support MultiPolygons which are non-valid
  16707. (e.g. with overlapping elements).
  16708. </para>
  16709. <para/>
  16710. Instances of this class are thread-safe and immutable.
  16711. </summary>
  16712. <author>mbdavis</author>
  16713. </member>
  16714. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains">
  16715. <summary>
  16716. Computes the <c>contains</c> spatial relationship predicate for a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16717. Uses short-circuit tests and indexing to improve performance.
  16718. </summary>
  16719. <remarks>
  16720. <para>
  16721. It is not possible to short-circuit in all cases, in particular
  16722. in the case where the test geometry touches the polygon linework.
  16723. In this case full topology must be computed.
  16724. </para>
  16725. </remarks>
  16726. <author>Martin Davis</author>
  16727. </member>
  16728. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.Contains(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
  16729. <summary>
  16730. Computes the <c>contains</c> spatial relationship predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16731. </summary>
  16732. <param name="prep">The prepared polygon</param>
  16733. <param name="geom">A test geometry</param>
  16734. <returns>true if the polygon contains the geometry</returns>
  16735. </member>
  16736. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16737. <summary>
  16738. Creates an instance of this operation.
  16739. </summary>
  16740. <param name="prepPoly">the PreparedPolygon to evaluate</param>
  16741. </member>
  16742. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.Contains(NetTopologySuite.Geometries.Geometry)">
  16743. <summary>
  16744. Tests whether this PreparedPolygon <c>contains</c> a given geometry.
  16745. </summary>
  16746. <param name="geom">The test geometry</param>
  16747. <returns>true if the test geometry is contained</returns>
  16748. </member>
  16749. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContains.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
  16750. <summary>
  16751. Computes the full topological <c>contains</c> predicate.<br/>
  16752. Used when short-circuit tests are not conclusive.
  16753. </summary>
  16754. <param name="geom">The test geometry </param>
  16755. <returns>true if this prepared polygon contains the test geometry</returns>
  16756. </member>
  16757. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly">
  16758. <summary>
  16759. Computes the <c>containsProperly</c> spatial relationship predicate for <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon" />s relative to all other {@link Geometry} classes.<br/>
  16760. Uses short-circuit tests and indexing to improve performance.
  16761. </summary>
  16762. <remarks>
  16763. <para>
  16764. A Geometry A <c>containsProperly</c> another Geometry B if
  16765. all points of B are contained in the Interior of A.
  16766. Equivalently, B is contained in A AND B does not intersect
  16767. the Boundary of A.
  16768. </para>
  16769. <para>
  16770. The advantage to using this predicate is that it can be computed
  16771. efficiently, with no need to compute topology at individual points.
  16772. In a situation with many geometries intersecting the boundary
  16773. of the target geometry, this can make a performance difference.
  16774. </para>
  16775. </remarks>
  16776. <author>Martin Davis</author>
  16777. </member>
  16778. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.ContainsProperly(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
  16779. <summary>Computes the <c>containsProperly</c> predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16780. </summary>
  16781. <param name="prep">The prepared polygon</param>
  16782. <param name="geom">A test geometry</param>
  16783. <returns>true if the polygon properly contains the geometry</returns>
  16784. </member>
  16785. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16786. <summary>
  16787. Creates an instance of this operation.
  16788. </summary>
  16789. <param name="prepPoly">The PreparedPolygon to evaluate</param>
  16790. </member>
  16791. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonContainsProperly.ContainsProperly(NetTopologySuite.Geometries.Geometry)">
  16792. <summary>
  16793. Tests whether this PreparedPolygon containsProperly a given geometry.
  16794. </summary>
  16795. <param name="geom">The test geometry</param>
  16796. <returns>true if the polygon properly contains the geometry</returns>
  16797. </member>
  16798. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers">
  16799. <summary>
  16800. Computes the <c>Covers</c> spatial relationship predicate for a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16801. </summary>
  16802. <remarks>
  16803. Uses short-circuit tests and indexing to improve performance.
  16804. <para>
  16805. It is not possible to short-circuit in all cases, in particular in the case where the test geometry touches the polygon linework.
  16806. In this case full topology must be computed.
  16807. </para></remarks>
  16808. <author>Martin Davis</author>
  16809. </member>
  16810. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.Covers(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
  16811. <summary>
  16812. Computes the <c>Covers</c> spatial relationship predicate for a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/> relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16813. </summary>
  16814. <param name="prep">The prepared polygon</param>
  16815. <param name="geom">A test geometry</param>
  16816. <returns>true if the polygon covers the geometry</returns>
  16817. </member>
  16818. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16819. <summary>
  16820. Creates an instance of this operation.
  16821. </summary>
  16822. <param name="prepPoly">The PreparedPolygon to evaluate</param>
  16823. </member>
  16824. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.Covers(NetTopologySuite.Geometries.Geometry)">
  16825. <summary>
  16826. Tests whether this PreparedPolygon <c>covers</c> a given geometry.
  16827. </summary>
  16828. <param name="geom">The test geometry</param>
  16829. <returns>true if the test geometry is covered</returns>
  16830. </member>
  16831. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonCovers.FullTopologicalPredicate(NetTopologySuite.Geometries.Geometry)">
  16832. <summary>
  16833. Computes the full topological <c>covers</c> predicate. Used when short-circuit tests are not conclusive.
  16834. </summary>
  16835. <param name="geom">The test geometry</param>
  16836. <returns>true if this prepared polygon covers the test geometry</returns>
  16837. </member>
  16838. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects">
  16839. <summary>
  16840. Computes the <i>intersects</i> spatial relationship predicate
  16841. for <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>s relative to all other <see cref="T:NetTopologySuite.Geometries.Geometry"/> classes.
  16842. </summary>
  16843. <remarks>Uses short-circuit tests and indexing to improve performance.</remarks>
  16844. <author>Martin Davis</author>
  16845. </member>
  16846. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.Intersects(NetTopologySuite.Geometries.Prepared.PreparedPolygon,NetTopologySuite.Geometries.Geometry)">
  16847. <summary>
  16848. Computes the intersects predicate between a <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>
  16849. and a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  16850. </summary>
  16851. <param name="prep">The prepared polygon</param>
  16852. <param name="geom">A test geometry</param>
  16853. <returns>true if the polygon intersects the geometry</returns>
  16854. </member>
  16855. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16856. <summary>
  16857. Creates an instance of this operation.
  16858. </summary>
  16859. <param name="prepPoly">The prepared polygon</param>
  16860. </member>
  16861. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
  16862. <summary>
  16863. Tests whether this PreparedPolygon intersects a given geometry.
  16864. </summary>
  16865. <param name="geom">The test geometry</param>
  16866. <returns>true if the test geometry intersects</returns>
  16867. </member>
  16868. <member name="T:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate">
  16869. <summary>
  16870. A base class for predicate operations on <see cref="T:NetTopologySuite.Geometries.Prepared.PreparedPolygon"/>s.
  16871. </summary>
  16872. <author>mbdavis</author>
  16873. </member>
  16874. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.#ctor(NetTopologySuite.Geometries.Prepared.PreparedPolygon)">
  16875. <summary>
  16876. Creates an instance of this operation.
  16877. </summary>
  16878. <param name="prepPoly">the PreparedPolygon to evaluate</param>
  16879. </member>
  16880. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestComponentsInTarget(NetTopologySuite.Geometries.Geometry)">
  16881. <summary>
  16882. Tests whether all components of the test Geometry are contained in the target geometry.
  16883. </summary>
  16884. <remarks>Handles both linear and point components.</remarks>
  16885. <param name="testGeom">A geometry to test</param>
  16886. <returns>
  16887. true if all components of the argument are contained in the target geometry
  16888. </returns>
  16889. </member>
  16890. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestComponentsInTargetInterior(NetTopologySuite.Geometries.Geometry)">
  16891. <summary>
  16892. Tests whether all components of the test Geometry are contained in the interior of the target geometry.
  16893. </summary>
  16894. <remarks>Handles both linear and point components.</remarks>
  16895. <param name="testGeom">A geometry to test</param>
  16896. <returns>true if all components of the argument are contained in the target geometry interior</returns>
  16897. </member>
  16898. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestComponentInTarget(NetTopologySuite.Geometries.Geometry)">
  16899. <summary>
  16900. Tests whether any component of the test Geometry intersects
  16901. the area of the target geometry.
  16902. Handles test geometries with both linear and point components.
  16903. </summary>
  16904. <param name="testGeom">A geometry to test</param>
  16905. <returns>true if any component of the argument intersects the prepared area geometry</returns>
  16906. </member>
  16907. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestPointsInTarget(NetTopologySuite.Geometries.Geometry)">
  16908. <summary>
  16909. Tests whether any point of the test Geometry intersects the interior of the target geometry.
  16910. </summary>
  16911. <remarks>Handles test geometries with both linear and point components.</remarks>
  16912. <param name="testGeom">A geometry to test</param>
  16913. <returns>true if any point of the argument intersects the prepared area geometry</returns>
  16914. </member>
  16915. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestPointInTargetInterior(NetTopologySuite.Geometries.Geometry)">
  16916. <summary>
  16917. Tests whether any point of the test Geometry intersects the interior of the target geometry.
  16918. </summary>
  16919. <param name="testGeom">A geometry to test</param>
  16920. <returns>true if any point of the argument intersects the prepared area geometry interior</returns>
  16921. </member>
  16922. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTestComponentInTargetInterior(NetTopologySuite.Geometries.Geometry)">
  16923. <summary>
  16924. Tests whether any component of the test Geometry intersects the interior of the target geometry.
  16925. </summary>
  16926. <remarks>Handles test geometries with both linear and point components.</remarks>
  16927. <param name="testGeom">A geometry to test</param>
  16928. <returns>true if any component of the argument intersects the prepared area geometry interior</returns>
  16929. </member>
  16930. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAllTestPointsInTargetInterior(NetTopologySuite.Geometries.Geometry)">
  16931. <summary>
  16932. Tests whether all points of the test Pointal geometry
  16933. are contained in the target geometry.
  16934. </summary>
  16935. <param name="testGeom">A geometry to test</param>
  16936. <returns>true if all points of the argument are contained in the target geometry</returns>
  16937. </member>
  16938. <member name="M:NetTopologySuite.Geometries.Prepared.PreparedPolygonPredicate.IsAnyTargetComponentInAreaTest(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
  16939. <summary>
  16940. Tests whether any component of the target geometry intersects the test geometry (which must be an areal geometry)
  16941. </summary>
  16942. <param name="testGeom">The test geometry</param>
  16943. <param name="targetRepPts">The representative points of the target geometry</param>
  16944. <returns>true if any component intersects the areal test geometry</returns>
  16945. </member>
  16946. <member name="T:NetTopologySuite.Geometries.Quadrant">
  16947. <summary>
  16948. Quadrant values
  16949. </summary>
  16950. <remarks>
  16951. The quadants are numbered as follows:
  16952. <para>
  16953. <code>
  16954. 1 - NW | 0 - NE <br/>
  16955. -------+------- <br/>
  16956. 2 - SW | 3 - SE
  16957. </code>
  16958. </para>
  16959. </remarks>
  16960. </member>
  16961. <member name="P:NetTopologySuite.Geometries.Quadrant.Undefined">
  16962. <summary>
  16963. Undefined
  16964. </summary>
  16965. </member>
  16966. <member name="P:NetTopologySuite.Geometries.Quadrant.NE">
  16967. <summary>
  16968. North-East
  16969. </summary>
  16970. </member>
  16971. <member name="P:NetTopologySuite.Geometries.Quadrant.NW">
  16972. <summary>
  16973. North-West
  16974. </summary>
  16975. </member>
  16976. <member name="P:NetTopologySuite.Geometries.Quadrant.SW">
  16977. <summary>
  16978. South-West
  16979. </summary>
  16980. </member>
  16981. <member name="P:NetTopologySuite.Geometries.Quadrant.SE">
  16982. <summary>
  16983. South-East
  16984. </summary>
  16985. </member>
  16986. <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(System.Int32)">
  16987. <summary>
  16988. Creates a quadrant with t
  16989. </summary>
  16990. <param name="value"></param>
  16991. </member>
  16992. <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(System.Double,System.Double)">
  16993. <summary>
  16994. Creates a quadrant of a directed line segment (specified as x and y
  16995. displacements, which cannot both be 0).
  16996. </summary>
  16997. <param name="dx"></param>
  16998. <param name="dy"></param>
  16999. <exception cref="T:System.ArgumentException">If the displacements are both 0</exception>
  17000. </member>
  17001. <member name="M:NetTopologySuite.Geometries.Quadrant.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17002. <summary>
  17003. Returns the quadrant of a directed line segment from p0 to p1.
  17004. </summary>
  17005. <param name="p0"></param>
  17006. <param name="p1"></param>
  17007. <exception cref="T:System.ArgumentException"> if the points are equal</exception>
  17008. </member>
  17009. <member name="M:NetTopologySuite.Geometries.Quadrant.GetHashCode">
  17010. <inheritdoc cref="M:System.Object.GetHashCode"/>
  17011. </member>
  17012. <member name="M:NetTopologySuite.Geometries.Quadrant.Equals(System.Object)">
  17013. <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
  17014. </member>
  17015. <member name="M:NetTopologySuite.Geometries.Quadrant.ToString">
  17016. <inheritdoc cref="M:System.Object.ToString"/>
  17017. </member>
  17018. <member name="M:NetTopologySuite.Geometries.Quadrant.IsOpposite(NetTopologySuite.Geometries.Quadrant)">
  17019. <summary>
  17020. Returns true if the quadrants are 1 and 3, or 2 and 4.
  17021. </summary>
  17022. <param name="quad">A quadrant</param>
  17023. </member>
  17024. <member name="M:NetTopologySuite.Geometries.Quadrant.CommonHalfPlane(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
  17025. <summary>
  17026. Returns the right-hand quadrant of the halfplane defined by the two quadrants,
  17027. or -1 if the quadrants are opposite, or the quadrant if they are identical.
  17028. </summary>
  17029. <param name="quad1"></param>
  17030. <param name="quad2"></param>
  17031. </member>
  17032. <member name="M:NetTopologySuite.Geometries.Quadrant.IsInHalfPlane(NetTopologySuite.Geometries.Quadrant)">
  17033. <summary>
  17034. Returns whether this quadrant lies within the given halfplane (specified
  17035. by its right-hand quadrant).
  17036. </summary>
  17037. <param name="halfPlane"></param>
  17038. </member>
  17039. <member name="P:NetTopologySuite.Geometries.Quadrant.IsNorthern">
  17040. <summary>
  17041. Returns <c>true</c> if the given quadrant is 0 or 1.
  17042. </summary>
  17043. </member>
  17044. <member name="M:NetTopologySuite.Geometries.Quadrant.op_Equality(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
  17045. <summary>
  17046. Equality operator for quadrants
  17047. </summary>
  17048. <param name="lhs">Quadrant value on the left-hand-side</param>
  17049. <param name="rhs">Quadrant value on the right-hand-side</param>
  17050. <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are equal.</returns>
  17051. </member>
  17052. <member name="M:NetTopologySuite.Geometries.Quadrant.op_Inequality(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
  17053. <summary>
  17054. Inequality operator for quadrants
  17055. </summary>
  17056. <param name="lhs">Quadrant value on the left-hand-side</param>
  17057. <param name="rhs">Quadrant value on the right-hand-side</param>
  17058. <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
  17059. </member>
  17060. <member name="M:NetTopologySuite.Geometries.Quadrant.op_GreaterThan(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
  17061. <summary>
  17062. Greater than (&gt;) operator for quadrants
  17063. </summary>
  17064. <param name="lhs">Quadrant value on the left-hand-side</param>
  17065. <param name="rhs">Quadrant value on the right-hand-side</param>
  17066. <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
  17067. </member>
  17068. <member name="M:NetTopologySuite.Geometries.Quadrant.op_LessThan(NetTopologySuite.Geometries.Quadrant,NetTopologySuite.Geometries.Quadrant)">
  17069. <summary>
  17070. Less than (&lt;) operator for quadrants
  17071. </summary>
  17072. <param name="lhs">Quadrant value on the left-hand-side</param>
  17073. <param name="rhs">Quadrant value on the right-hand-side</param>
  17074. <returns><c>true</c> if quadrant value of <paramref name="lhs"/> and <paramref name="rhs"/> are <b>not</b> equal.</returns>
  17075. </member>
  17076. <member name="T:NetTopologySuite.Geometries.TopologyException">
  17077. <summary>
  17078. Indicates an invalid or inconsistent topological situation encountered during processing
  17079. </summary>
  17080. </member>
  17081. <member name="M:NetTopologySuite.Geometries.TopologyException.MsgWithCoord(System.String,NetTopologySuite.Geometries.Coordinate)">
  17082. <summary>
  17083. </summary>
  17084. <param name="msg"></param>
  17085. <param name="pt"></param>
  17086. <returns></returns>
  17087. </member>
  17088. <member name="M:NetTopologySuite.Geometries.TopologyException.#ctor(System.String)">
  17089. <summary>
  17090. </summary>
  17091. <param name="msg"></param>
  17092. </member>
  17093. <member name="M:NetTopologySuite.Geometries.TopologyException.#ctor(System.String,NetTopologySuite.Geometries.Coordinate)">
  17094. <summary>
  17095. </summary>
  17096. <param name="msg"></param>
  17097. <param name="pt"></param>
  17098. </member>
  17099. <member name="P:NetTopologySuite.Geometries.TopologyException.Coordinate">
  17100. <summary>
  17101. </summary>
  17102. </member>
  17103. <member name="T:NetTopologySuite.Geometries.Triangle">
  17104. <summary>
  17105. Represents a planar triangle, and provides methods for calculating various
  17106. properties of triangles.
  17107. </summary>
  17108. </member>
  17109. <member name="P:NetTopologySuite.Geometries.Triangle.P0">
  17110. <summary>
  17111. A corner point of the triangle
  17112. </summary>
  17113. </member>
  17114. <member name="P:NetTopologySuite.Geometries.Triangle.P1">
  17115. <summary>
  17116. A corner point of the triangle
  17117. </summary>
  17118. </member>
  17119. <member name="P:NetTopologySuite.Geometries.Triangle.P2">
  17120. <summary>
  17121. A corner point of the triangle
  17122. </summary>
  17123. </member>
  17124. <member name="M:NetTopologySuite.Geometries.Triangle.IsAcute(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17125. <summary>
  17126. Tests whether a triangle is acute. A triangle is acute if all interior
  17127. angles are acute. This is a strict test - right triangles will return
  17128. <tt>false</tt> A triangle which is not acute is either right or obtuse.
  17129. <para/>
  17130. Note: this implementation is not robust for angles very close to 90 degrees.
  17131. </summary>
  17132. <param name="a">A vertex of the triangle</param>
  17133. <param name="b">A vertex of the triangle</param>
  17134. <param name="c">A vertex of the triangle</param>
  17135. <returns>True if the triangle is acute.</returns>
  17136. </member>
  17137. <member name="M:NetTopologySuite.Geometries.Triangle.IsCCW(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17138. <summary>
  17139. Tests whether a triangle is oriented counter-clockwise.
  17140. </summary>
  17141. <param name="a">A vertex of the triangle</param>
  17142. <param name="b">A vertex of the triangle</param>
  17143. <param name="c">A vertex of the triangle</param>
  17144. <returns><c>true</c> if the triangle orientation is counter-clockwise</returns>
  17145. </member>
  17146. <member name="M:NetTopologySuite.Geometries.Triangle.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17147. <summary>
  17148. Tests whether a triangle intersects a point.
  17149. </summary>
  17150. <param name="a">A vertex of the triangle</param>
  17151. <param name="b">A vertex of the triangle</param>
  17152. <param name="c">A vertex of the triangle</param>
  17153. <param name="p">The point to test</param>
  17154. <returns><c>true</c> if the triangle intersects the point</returns>
  17155. </member>
  17156. <member name="M:NetTopologySuite.Geometries.Triangle.PerpendicularBisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17157. <summary>
  17158. Computes the line which is the perpendicular bisector of the
  17159. </summary>
  17160. <param name="a">A point</param>
  17161. <param name="b">Another point</param>
  17162. <returns>The perpendicular bisector, as an HCoordinate line segment a-b.</returns>
  17163. </member>
  17164. <member name="M:NetTopologySuite.Geometries.Triangle.Circumradius(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17165. <summary>
  17166. Computes the radius of the circumcircle of a triangle.
  17167. <para/>
  17168. Formula is as per <a href="https://math.stackexchange.com/a/3610959"/>
  17169. </summary>
  17170. <param name="a">A vertex of the triangle</param>
  17171. <param name="b">A vertex of the triangle</param>
  17172. <param name="c">A vertex of the triangle</param>
  17173. <returns>The circumradius of the triangle</returns>
  17174. </member>
  17175. <member name="M:NetTopologySuite.Geometries.Triangle.Circumcentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17176. <summary>Computes the circumcentre of a triangle.</summary>
  17177. <remarks>
  17178. The circumcentre is the centre of the circumcircle,
  17179. the smallest circle which encloses the triangle.
  17180. It is also the common intersection point of the
  17181. perpendicular bisectors of the sides of the triangle,
  17182. and is the only point which has equal distance to all three
  17183. vertices of the triangle.
  17184. <para>
  17185. The circumcentre does not necessarily lie within the triangle. For example,
  17186. the circumcentre of an obtuse isosceles triangle lies outside the triangle.
  17187. </para>
  17188. <para>This method uses an algorithm due to J.R.Shewchuk which uses normalization
  17189. to the origin to improve the accuracy of computation. (See <i>Lecture Notes
  17190. on Geometric Robustness</i>, Jonathan Richard Shewchuk, 1999).
  17191. </para>
  17192. </remarks>
  17193. <param name="a">A vertex of the triangle</param>
  17194. <param name="b">A vertex of the triangle</param>
  17195. <param name="c">A vertex of the triangle</param>
  17196. <returns>The circumcentre of the triangle</returns>
  17197. </member>
  17198. <member name="M:NetTopologySuite.Geometries.Triangle.CircumcentreDD(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17199. <summary>
  17200. Computes the circumcentre of a triangle. The circumcentre is the centre of
  17201. the circumcircle, the smallest circle which encloses the triangle.It is
  17202. also the common intersection point of the perpendicular bisectors of the
  17203. sides of the triangle, and is the only point which has equal distance to
  17204. all three vertices of the triangle.
  17205. <para/>
  17206. The circumcentre does not necessarily lie within the triangle. For example,
  17207. the circumcentre of an obtuse isosceles triangle lies outside the triangle.
  17208. <para/>
  17209. This method uses <see cref="T:NetTopologySuite.Mathematics.DD"/> extended-precision arithmetic to
  17210. provide more accurate results than
  17211. <see cref="M:NetTopologySuite.Geometries.Triangle.Circumcentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17212. </summary>
  17213. <param name="a">A vertex of the triangle</param>
  17214. <param name="b">A vertex of the triangle</param>
  17215. <param name="c">A vertex of the triangle</param>
  17216. <returns>The circumcentre of the triangle</returns>
  17217. </member>
  17218. <member name="M:NetTopologySuite.Geometries.Triangle.Det(System.Double,System.Double,System.Double,System.Double)">
  17219. <summary>
  17220. Computes the determinant of a 2x2 matrix. Uses standard double-precision
  17221. arithmetic, so is susceptible to round-off error.
  17222. </summary>
  17223. <param name="m00">the [0,0] entry of the matrix</param>
  17224. <param name="m01">the [0,1] entry of the matrix</param>
  17225. <param name="m10">the [1,0] entry of the matrix</param>
  17226. <param name="m11">the [1,1] entry of the matrix</param>
  17227. <returns>The determinant</returns>
  17228. </member>
  17229. <member name="M:NetTopologySuite.Geometries.Triangle.InCentre(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17230. <summary>
  17231. Computes the incentre of a triangle.
  17232. </summary>
  17233. <remarks>
  17234. The <c>InCentre</c> of a triangle is the point which is equidistant
  17235. from the sides of the triangle.
  17236. It is also the point at which the bisectors of the triangle's angles meet.
  17237. It is the centre of the triangle's <c>InCircle</c>, which is the unique circle
  17238. that is tangent to each of the triangle's three sides.
  17239. </remarks>
  17240. <param name="a">A vertex of the triangle</param>
  17241. <param name="b">A vertex of the triangle</param>
  17242. <param name="c">A vertex of the triangle</param>
  17243. <returns>The point which is the incentre of the triangle</returns>
  17244. </member>
  17245. <member name="M:NetTopologySuite.Geometries.Triangle.Centroid(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17246. <summary>Computes the centroid (centre of mass) of a triangle.</summary>
  17247. <remarks>
  17248. This is also the point at which the triangle's three
  17249. medians intersect (a triangle median is the segment from a vertex of the triangle to the
  17250. midpoint of the opposite side).
  17251. The centroid divides each median in a ratio of 2:1.
  17252. The centroid always lies within the triangle.
  17253. </remarks>
  17254. <param name="a">A vertex of the triangle</param>
  17255. <param name="b">A vertex of the triangle</param>
  17256. <param name="c">A vertex of the triangle</param>
  17257. <returns>The centroid of the triangle</returns>
  17258. </member>
  17259. <member name="M:NetTopologySuite.Geometries.Triangle.Length(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17260. <summary>
  17261. Compute the length of the perimeter of a triangle
  17262. </summary>
  17263. <param name="a">A vertex of the triangle</param>
  17264. <param name="b">A vertex of the triangle</param>
  17265. <param name="c">A vertex of the triangle</param>
  17266. <returns>The length of the perimeter of the triangle</returns>
  17267. </member>
  17268. <member name="M:NetTopologySuite.Geometries.Triangle.LongestSideLength(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17269. <summary>Computes the length of the longest side of a triangle</summary>
  17270. <param name="a">A vertex of the triangle</param>
  17271. <param name="b">A vertex of the triangle</param>
  17272. <param name="c">A vertex of the triangle</param>
  17273. <returns>The length of the longest side of the triangle</returns>
  17274. </member>
  17275. <member name="M:NetTopologySuite.Geometries.Triangle.AngleBisector(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17276. <summary>Computes the point at which the bisector of the angle ABC cuts the segment AC.</summary>
  17277. <param name="a">A vertex of the triangle</param>
  17278. <param name="b">A vertex of the triangle</param>
  17279. <param name="c">A vertex of the triangle</param>
  17280. <returns>The angle bisector cut point</returns>
  17281. </member>
  17282. <member name="M:NetTopologySuite.Geometries.Triangle.Area(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17283. <summary>
  17284. Computes the 2D area of a triangle.
  17285. The area value is always non-negative.
  17286. </summary>
  17287. <param name="a">A vertex of the triangle</param>
  17288. <param name="b">A vertex of the triangle</param>
  17289. <param name="c">A vertex of the triangle</param>
  17290. <returns>The area of the triangle</returns>
  17291. <seealso cref="M:NetTopologySuite.Geometries.Triangle.SignedArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17292. </member>
  17293. <member name="M:NetTopologySuite.Geometries.Triangle.SignedArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17294. <summary>
  17295. Computes the signed 2D area of a triangle.
  17296. </summary>
  17297. <remarks>
  17298. <para>
  17299. The area value is positive if the triangle is oriented CW,
  17300. and negative if it is oriented CCW.
  17301. </para>
  17302. <para>
  17303. The signed area value can be used to determine point orientation, but
  17304. the implementation in this method is susceptible to round-off errors.
  17305. Use <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/> for robust orientation
  17306. calculation.
  17307. </para>
  17308. </remarks>
  17309. <param name="a">A vertex of the triangle</param>
  17310. <param name="b">A vertex of the triangle</param>
  17311. <param name="c">A vertex of the triangle</param>
  17312. <returns>The area of the triangle</returns>
  17313. <seealso cref="M:NetTopologySuite.Geometries.Triangle.Area(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17314. <seealso cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17315. </member>
  17316. <member name="M:NetTopologySuite.Geometries.Triangle.Area3D(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17317. <summary>
  17318. Computes the 3D area of a triangle.
  17319. The value computed is always non-negative.
  17320. </summary>
  17321. <param name="a">A vertex of the triangle</param>
  17322. <param name="b">A vertex of the triangle</param>
  17323. <param name="c">A vertex of the triangle</param>
  17324. <returns>The 3D area of the triangle</returns>
  17325. </member>
  17326. <member name="M:NetTopologySuite.Geometries.Triangle.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17327. <summary>
  17328. Computes the Z-value (elevation) of an XY point
  17329. on a three-dimensional plane defined by a triangle
  17330. whose vertices have Z-values.
  17331. The defining triangle must not be degenerate
  17332. (in other words, the triangle must enclose a
  17333. non-zero area),
  17334. and must not be parallel to the Z-axis.
  17335. <para/>
  17336. This method can be used to interpolate
  17337. the Z-value of a point inside a triangle
  17338. (for example, of a TIN facet with elevations on the vertices).
  17339. </summary>
  17340. <param name="p">The point to compute the Z-value of</param>
  17341. <param name="v0">A vertex of a triangle, with a Z ordinate</param>
  17342. <param name="v1">A vertex of a triangle, with a Z ordinate</param>
  17343. <param name="v2">A vertex of a triangle, with a Z ordinate</param>
  17344. <returns>The computed Z-value (elevation) of the point</returns>
  17345. </member>
  17346. <member name="M:NetTopologySuite.Geometries.Triangle.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17347. <summary>
  17348. Creates a new triangle with the given vertices.
  17349. </summary>
  17350. <param name="p0">A vertex</param>
  17351. <param name="p1">A vertex</param>
  17352. <param name="p2">A vertex</param>
  17353. </member>
  17354. <member name="M:NetTopologySuite.Geometries.Triangle.InCentre">
  17355. <summary>
  17356. Computes the <c>InCentre</c> of this triangle
  17357. </summary>
  17358. <remarks>The <c>InCentre</c> of a triangle is the point which is equidistant
  17359. from the sides of the triangle.
  17360. This is also the point at which the bisectors of the angles meet.
  17361. It is the centre of the triangle's <c>InCircle</c>,
  17362. which is the unique circle that is tangent to each of the triangle's three sides.
  17363. </remarks>
  17364. <returns>
  17365. The point which is the InCentre of the triangle.
  17366. </returns>
  17367. </member>
  17368. <member name="M:NetTopologySuite.Geometries.Triangle.IsAcute">
  17369. <summary>
  17370. Tests whether this triangle is acute. A triangle is acute if all interior
  17371. angles are acute. This is a strict test - right triangles will return
  17372. <tt>false</tt> A triangle which is not acute is either right or obtuse.
  17373. <para/>
  17374. Note: this implementation is not robust for angles very close to 90
  17375. degrees.
  17376. </summary>
  17377. <returns><c>true</c> if this triangle is acute</returns>
  17378. </member>
  17379. <member name="M:NetTopologySuite.Geometries.Triangle.IsCCW">
  17380. <summary>
  17381. Tests whether this triangle is oriented counter-clockwise.
  17382. </summary>
  17383. <returns><c>true</c> if the triangle orientation is counter-clockwise</returns>
  17384. </member>
  17385. <member name="M:NetTopologySuite.Geometries.Triangle.Circumcentre">
  17386. <summary>
  17387. Computes the circumcentre of this triangle. The circumcentre is the centre
  17388. of the circumcircle, the smallest circle which passes through all the triangle vertices.
  17389. It is also the common intersection point of the perpendicular bisectors of the
  17390. sides of the triangle, and is the only point which has equal distance to
  17391. all three vertices of the triangle.
  17392. <para/>
  17393. The circumcentre does not necessarily lie within the triangle.
  17394. <para/>
  17395. This method uses an algorithm due to J.R.Shewchuk which uses normalization
  17396. to the origin to improve the accuracy of computation. (See <i>Lecture Notes
  17397. on Geometric Robustness</i>, Jonathan Richard Shewchuk, 1999).
  17398. </summary>
  17399. <returns>The circumcentre of this triangle</returns>
  17400. </member>
  17401. <member name="M:NetTopologySuite.Geometries.Triangle.Circumradius">
  17402. <summary>
  17403. Computes the radius of the circumcircle of a triangle.
  17404. </summary>
  17405. <returns>The triangle circumradius</returns>
  17406. </member>
  17407. <member name="M:NetTopologySuite.Geometries.Triangle.Centroid">
  17408. <summary>
  17409. Computes the centroid (centre of mass) of this triangle. This is also the
  17410. point at which the triangle's three medians intersect (a triangle median is
  17411. the segment from a vertex of the triangle to the midpoint of the opposite
  17412. side). The centroid divides each median in a ratio of 2:1.
  17413. <para/>
  17414. The centroid always lies within the triangle.
  17415. </summary>
  17416. <returns>The centroid of this triangle</returns>
  17417. </member>
  17418. <member name="M:NetTopologySuite.Geometries.Triangle.Length">
  17419. <summary>
  17420. Computes the length of the perimeter of this triangle.
  17421. </summary>
  17422. <returns>The length of the perimeter</returns>
  17423. </member>
  17424. <member name="M:NetTopologySuite.Geometries.Triangle.LongestSideLength">
  17425. <summary>
  17426. Computes the length of the longest side of this triangle
  17427. </summary>
  17428. <returns>The length of the longest side of this triangle</returns>
  17429. </member>
  17430. <member name="M:NetTopologySuite.Geometries.Triangle.Area">
  17431. <summary>
  17432. Computes the 2D area of this triangle. The area value is always
  17433. non-negative.
  17434. </summary>
  17435. <returns>The area of this triangle</returns>
  17436. <seealso cref="M:NetTopologySuite.Geometries.Triangle.SignedArea"/>
  17437. </member>
  17438. <member name="M:NetTopologySuite.Geometries.Triangle.SignedArea">
  17439. <summary>
  17440. Computes the signed 2D area of this triangle. The area value is positive if
  17441. the triangle is oriented CW, and negative if it is oriented CCW.
  17442. <para/>
  17443. The signed area value can be used to determine point orientation, but the
  17444. implementation in this method is susceptible to round-off errors. Use
  17445. <see cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17446. for robust orientation calculation.
  17447. </summary>
  17448. <returns>The signed 2D area of this triangle</returns>
  17449. <seealso cref="M:NetTopologySuite.Algorithm.Orientation.Index(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)"/>
  17450. </member>
  17451. <member name="M:NetTopologySuite.Geometries.Triangle.Area3D">
  17452. <summary>
  17453. Computes the 3D area of this triangle. The value computed is always
  17454. non-negative.
  17455. </summary>
  17456. <returns>The 3D area of this triangle</returns>
  17457. </member>
  17458. <member name="M:NetTopologySuite.Geometries.Triangle.InterpolateZ(NetTopologySuite.Geometries.Coordinate)">
  17459. <summary>
  17460. Computes the Z-value (elevation) of an XY point on a three-dimensional
  17461. plane defined by this triangle (whose vertices must have Z-values). This
  17462. triangle must not be degenerate (in other words, the triangle must enclose
  17463. a non-zero area), and must not be parallel to the Z-axis.
  17464. <para/>
  17465. This method can be used to interpolate the Z-value of a point inside this
  17466. triangle (for example, of a TIN facet with elevations on the vertices).
  17467. </summary>
  17468. <param name="p">The point to compute the Z-value of</param>
  17469. <returns>The computed Z-value (elevation) of the point</returns>
  17470. </member>
  17471. <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformation">
  17472. <summary>
  17473. Represents an affine transformation on the 2D Cartesian plane.
  17474. </summary>
  17475. <remarks>
  17476. <para>
  17477. It can be used to transform a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> or <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  17478. An affine transformation is a mapping of the 2D plane into itself
  17479. via a series of transformations of the following basic types:
  17480. <ul>
  17481. <li>reflection (through a line)</li>
  17482. <li>rotation (around the origin)</li>
  17483. <li>scaling (relative to the origin)</li>
  17484. <li>shearing (in both the X and Y directions)</li>
  17485. <li>translation</li>
  17486. </ul>
  17487. </para>
  17488. <para>
  17489. In general, affine transformations preserve straightness and parallel lines,
  17490. but do not preserve distance or shape.
  17491. </para>
  17492. <para>
  17493. An affine transformation can be represented by a 3x3
  17494. matrix in the following form:
  17495. <blockquote><code>
  17496. T = | m00 m01 m02 |<br/>
  17497. | m10 m11 m12 |<br/>
  17498. | 0 0 1 |
  17499. </code></blockquote>
  17500. A coordinate P = (x, y) can be transformed to a new coordinate P' = (x', y')
  17501. by representing it as a 3x1 matrix and using matrix multiplication to compute:
  17502. <blockquote><code>
  17503. | x' | = T x | x |<br/>
  17504. | y' | | y |<br/>
  17505. | 1 | | 1 |
  17506. </code></blockquote>
  17507. </para>
  17508. <h3>Transformation Composition</h3>
  17509. <para>
  17510. Affine transformations can be composed using the <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Compose(NetTopologySuite.Geometries.Utilities.AffineTransformation)"/> method.
  17511. Composition is computed via multiplication of the
  17512. transformation matrices, and is defined as:
  17513. <blockquote><pre>
  17514. A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
  17515. </pre></blockquote>
  17516. </para>
  17517. <para>
  17518. This produces a transformation whose effect is that of A followed by B.
  17519. The methods <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Reflect(System.Double,System.Double,System.Double,System.Double)"/>, <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double)"/>,
  17520. <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Scale(System.Double,System.Double)"/>, <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Shear(System.Double,System.Double)"/>, and <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Translate(System.Double,System.Double)"/>
  17521. have the effect of composing a transformation of that type with
  17522. the transformation they are invoked on.
  17523. The composition of transformations is in general <i>not</i> commutative.
  17524. </para>
  17525. <h3>Transformation Inversion</h3>
  17526. <para>
  17527. Affine transformations may be invertible or non-invertible.
  17528. If a transformation is invertible, then there exists
  17529. an inverse transformation which when composed produces
  17530. the identity transformation.
  17531. The <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse"/> method
  17532. computes the inverse of a transformation, if one exists.
  17533. </para>
  17534. <para>
  17535. @author Martin Davis
  17536. </para>
  17537. </remarks>
  17538. </member>
  17539. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ReflectionInstance(System.Double,System.Double,System.Double,System.Double)">
  17540. <summary>
  17541. Creates a transformation for a reflection about the
  17542. line (x0,y0) - (x1,y1).
  17543. </summary>
  17544. <param name="x0"> the x-ordinate of a point on the reflection line</param>
  17545. <param name="y0"> the y-ordinate of a point on the reflection line</param>
  17546. <param name="x1"> the x-ordinate of a another point on the reflection line</param>
  17547. <param name="y1"> the y-ordinate of a another point on the reflection line</param>
  17548. <returns> a transformation for the reflection</returns>
  17549. </member>
  17550. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ReflectionInstance(System.Double,System.Double)">
  17551. <summary>
  17552. Creates a transformation for a reflection about the
  17553. line (0,0) - (x,y).
  17554. </summary>
  17555. <param name="x"> the x-ordinate of a point on the reflection line</param>
  17556. <param name="y"> the y-ordinate of a point on the reflection line</param>
  17557. <returns> a transformation for the reflection</returns>
  17558. </member>
  17559. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double)">
  17560. <summary>
  17561. Creates a transformation for a rotation
  17562. about the origin
  17563. by an angle <i>theta</i>.
  17564. </summary>
  17565. <remarks>
  17566. Positive angles correspond to a rotation
  17567. in the counter-clockwise direction.
  17568. </remarks>
  17569. <param name="theta"> the rotation angle, in radians</param>
  17570. <returns> a transformation for the rotation</returns>
  17571. </member>
  17572. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double)">
  17573. <summary>
  17574. Creates a transformation for a rotation
  17575. by an angle <i>theta</i>,
  17576. specified by the sine and cosine of the angle.
  17577. </summary>
  17578. <remarks>
  17579. This allows providing exact values for sin(theta) and cos(theta)
  17580. for the common case of rotations of multiples of quarter-circles.
  17581. </remarks>
  17582. <param name="sinTheta"> the sine of the rotation angle</param>
  17583. <param name="cosTheta"> the cosine of the rotation angle</param>
  17584. <returns> a transformation for the rotation</returns>
  17585. </member>
  17586. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double,System.Double)">
  17587. <summary>
  17588. Creates a transformation for a rotation
  17589. about the point (x,y) by an angle <i>theta</i>.
  17590. </summary>
  17591. <remarks>
  17592. Positive angles correspond to a rotation
  17593. in the counter-clockwise direction.
  17594. </remarks>
  17595. <param name="theta"> the rotation angle, in radians</param>
  17596. <param name="x"> the x-ordinate of the rotation point</param>
  17597. <param name="y"> the y-ordinate of the rotation point</param>
  17598. <returns> a transformation for the rotation</returns>
  17599. </member>
  17600. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.RotationInstance(System.Double,System.Double,System.Double,System.Double)">
  17601. <summary>
  17602. Creates a transformation for a rotation
  17603. about the point (x,y) by an angle <i>theta</i>,
  17604. specified by the sine and cosine of the angle.
  17605. </summary>
  17606. <remarks>
  17607. This allows providing exact values for sin(theta) and cos(theta)
  17608. for the common case of rotations of multiples of quarter-circles.
  17609. </remarks>
  17610. <param name="sinTheta"> the sine of the rotation angle</param>
  17611. <param name="cosTheta"> the cosine of the rotation angle</param>
  17612. <param name="x"> the x-ordinate of the rotation point</param>
  17613. <param name="y"> the y-ordinate of the rotation point</param>
  17614. <returns> a transformation for the rotation</returns>
  17615. </member>
  17616. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ScaleInstance(System.Double,System.Double)">
  17617. <summary>
  17618. Creates a transformation for a scaling relative to the origin.
  17619. </summary>
  17620. <param name="xScale"> the value to scale by in the x direction</param>
  17621. <param name="yScale"> the value to scale by in the y direction</param>
  17622. <returns> a transformation for the scaling</returns>
  17623. </member>
  17624. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ScaleInstance(System.Double,System.Double,System.Double,System.Double)">
  17625. <summary>
  17626. Creates a transformation for a scaling relative to the point (x,y).
  17627. </summary>
  17628. <param name="xScale">The value to scale by in the x direction</param>
  17629. <param name="yScale">The value to scale by in the y direction</param>
  17630. <param name="x">The x-ordinate of the point to scale around</param>
  17631. <param name="y">The y-ordinate of the point to scale around</param>
  17632. <returns>A transformation for the scaling</returns>
  17633. </member>
  17634. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ShearInstance(System.Double,System.Double)">
  17635. <summary>
  17636. Creates a transformation for a shear.
  17637. </summary>
  17638. <param name="xShear"> the value to shear by in the x direction</param>
  17639. <param name="yShear"> the value to shear by in the y direction</param>
  17640. <returns> a transformation for the shear</returns>
  17641. </member>
  17642. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.TranslationInstance(System.Double,System.Double)">
  17643. <summary>
  17644. Creates a transformation for a translation.
  17645. </summary>
  17646. <param name="x"> the value to translate by in the x direction</param>
  17647. <param name="y"> the value to translate by in the y direction</param>
  17648. <returns> a transformation for the translation</returns>
  17649. </member>
  17650. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor">
  17651. <summary>
  17652. Constructs a new identity transformation
  17653. </summary>
  17654. </member>
  17655. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(System.Double[])">
  17656. <summary>
  17657. Constructs a new transformation whose
  17658. matrix has the specified values.
  17659. </summary>
  17660. <param name="matrix"> an array containing the 6 values { m00, m01, m02, m10, m11, m12 }</param>
  17661. <exception cref="T:System.NullReferenceException"> if matrix is null</exception>
  17662. <exception cref="T:System.IndexOutOfRangeException"> if matrix is too small</exception>
  17663. </member>
  17664. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  17665. <summary>
  17666. Constructs a new transformation whose
  17667. matrix has the specified values.
  17668. </summary>
  17669. <param name="m00"> the entry for the [0, 0] element in the transformation matrix</param>
  17670. <param name="m01"> the entry for the [0, 1] element in the transformation matrix</param>
  17671. <param name="m02"> the entry for the [0, 2] element in the transformation matrix</param>
  17672. <param name="m10"> the entry for the [1, 0] element in the transformation matrix</param>
  17673. <param name="m11"> the entry for the [1, 1] element in the transformation matrix</param>
  17674. <param name="m12"> the entry for the [1, 2] element in the transformation matrix</param>
  17675. </member>
  17676. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
  17677. <summary>
  17678. Constructs a transformation which is
  17679. a copy of the given one.
  17680. </summary>
  17681. <param name="trans"> the transformation to copy</param>
  17682. </member>
  17683. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  17684. <summary>
  17685. Constructs a transformation
  17686. which maps the given source
  17687. points into the given destination points.
  17688. </summary>
  17689. <param name="src0"> source point 0</param>
  17690. <param name="src1"> source point 1</param>
  17691. <param name="src2"> source point 2</param>
  17692. <param name="dest0"> the mapped point for source point 0</param>
  17693. <param name="dest1"> the mapped point for source point 1</param>
  17694. <param name="dest2"> the mapped point for source point 2</param>
  17695. </member>
  17696. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToIdentity">
  17697. <summary>
  17698. Sets this transformation to be the identity transformation.
  17699. </summary>
  17700. <remarks>
  17701. The identity transformation has the matrix:
  17702. <blockquote><code>
  17703. | 1 0 0 |<br/>
  17704. | 0 1 0 |<br/>
  17705. | 0 0 1 |
  17706. </code></blockquote>
  17707. </remarks>
  17708. <returns> this transformation, with an updated matrix</returns>
  17709. </member>
  17710. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetTransformation(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  17711. <summary>
  17712. Sets this transformation's matrix to have the given values.
  17713. </summary>
  17714. <param name="m00"> the entry for the [0, 0] element in the transformation matrix</param>
  17715. <param name="m01"> the entry for the [0, 1] element in the transformation matrix</param>
  17716. <param name="m02"> the entry for the [0, 2] element in the transformation matrix</param>
  17717. <param name="m10"> the entry for the [1, 0] element in the transformation matrix</param>
  17718. <param name="m11"> the entry for the [1, 1] element in the transformation matrix</param>
  17719. <param name="m12"> the entry for the [1, 2] element in the transformation matrix</param>
  17720. <returns> this transformation, with an updated matrix</returns>
  17721. </member>
  17722. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetTransformation(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
  17723. <summary>
  17724. Sets this transformation to be a copy of the given one
  17725. </summary>
  17726. <param name="trans"> a transformation to copy</param>
  17727. <returns> this transformation, with an updated matrix</returns>
  17728. </member>
  17729. <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.MatrixEntries">
  17730. <summary>
  17731. Gets an array containing the entries
  17732. of the transformation matrix.
  17733. </summary>
  17734. <remarks>
  17735. Only the 6 non-trivial entries are returned,
  17736. in the sequence:
  17737. <pre>
  17738. m00, m01, m02, m10, m11, m12
  17739. </pre>
  17740. </remarks>
  17741. <returns> an array of length 6</returns>
  17742. </member>
  17743. <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Determinant">
  17744. <summary>
  17745. Computes the determinant of the transformation matrix.
  17746. </summary>
  17747. <remarks>
  17748. <para>
  17749. The determinant is computed as:
  17750. <blockquote><code>
  17751. | m00 m01 m02 |<br/>
  17752. | m10 m11 m12 | = m00 * m11 - m01 * m10<br/>
  17753. | 0 0 1 |
  17754. </code></blockquote>
  17755. </para>
  17756. <para>
  17757. If the determinant is zero,
  17758. the transform is singular (not invertible),
  17759. and operations which attempt to compute
  17760. an inverse will throw a <see cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"/>.
  17761. </para>
  17762. </remarks>
  17763. <returns> the determinant of the transformation</returns>
  17764. <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse" />
  17765. <returns>The determinant of the transformation</returns>
  17766. <see cref="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse"/>
  17767. </member>
  17768. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetInverse">
  17769. <summary>
  17770. Computes the inverse of this transformation, if one
  17771. exists.
  17772. </summary>
  17773. <remarks>
  17774. <para>
  17775. The inverse is the transformation which when
  17776. composed with this one produces the identity
  17777. transformation.
  17778. A transformation has an inverse if and only if it
  17779. is not singular (i.e. its
  17780. determinant is non-zero).
  17781. Geometrically, an transformation is non-invertible
  17782. if it maps the plane to a line or a point.
  17783. If no inverse exists this method
  17784. will throw a <see cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"/>.
  17785. </para>
  17786. <para>
  17787. The matrix of the inverse is equal to the
  17788. inverse of the matrix for the transformation.
  17789. It is computed as follows:
  17790. <blockquote><code>
  17791. 1
  17792. inverse(A) = --- x adjoint(A)
  17793. det
  17794. = 1 | m11 -m01 m01*m12-m02*m11 |
  17795. --- x | -m10 m00 -m00*m12+m10*m02 |
  17796. det | 0 0 m00*m11-m10*m01 |
  17797. = | m11/det -m01/det m01*m12-m02*m11/det |
  17798. | -m10/det m00/det -m00*m12+m10*m02/det |
  17799. | 0 0 1 |
  17800. </code></blockquote>
  17801. </para>
  17802. </remarks>
  17803. <returns>A new inverse transformation</returns>
  17804. <see cref="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Determinant"/>
  17805. <exception cref="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException"></exception>
  17806. </member>
  17807. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflectionBasic(System.Double,System.Double,System.Double,System.Double)">
  17808. <summary>
  17809. Explicitly computes the math for a reflection. May not work.
  17810. </summary>
  17811. <param name="x0">The x-ordinate of one point on the reflection line</param>
  17812. <param name="y0">The y-ordinate of one point on the reflection line</param>
  17813. <param name="x1">The x-ordinate of another point on the reflection line</param>
  17814. <param name="y1">The y-ordinate of another point on the reflection line</param>
  17815. <returns>This transformation with an updated matrix</returns>
  17816. </member>
  17817. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflection(System.Double,System.Double,System.Double,System.Double)">
  17818. <summary>
  17819. Sets this transformation to be a reflection about the line defined by a line <tt>(x0,y0) - (x1,y1)</tt>.
  17820. </summary>
  17821. <param name="x0">The x-ordinate of one point on the reflection line</param>
  17822. <param name="y0">The y-ordinate of one point on the reflection line</param>
  17823. <param name="x1">The x-ordinate of another point on the reflection line</param>
  17824. <param name="y1">The y-ordinate of another point on the reflection line</param>
  17825. <returns>This transformation with an updated matrix</returns>
  17826. </member>
  17827. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToReflection(System.Double,System.Double)">
  17828. <summary>
  17829. Sets this transformation to be a reflection
  17830. about the line defined by vector (x,y).
  17831. </summary>
  17832. <remarks>
  17833. The transformation for a reflection
  17834. is computed by:
  17835. <blockquote><code>
  17836. d = sqrt(x<sup>2</sup> + y<sup>2</sup>)
  17837. sin = x / d;
  17838. cos = x / d;
  17839. T<sub>ref</sub> = T<sub>rot(sin, cos)</sub> x T<sub>scale(1, -1)</sub> x T<sub>rot(-sin, cos)</sub>
  17840. </code></blockquote>
  17841. </remarks>
  17842. <param name="x"> the x-component of the reflection line vector</param>
  17843. <param name="y"> the y-component of the reflection line vector</param>
  17844. <returns> this transformation, with an updated matrix</returns>
  17845. </member>
  17846. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double)">
  17847. <summary>
  17848. Sets this transformation to be a rotation around the orign.
  17849. </summary>
  17850. <remarks>
  17851. A positive rotation angle corresponds
  17852. to a counter-clockwise rotation.
  17853. The transformation matrix for a rotation
  17854. by an angle <c>theta</c>
  17855. has the value:
  17856. <blockquote><pre>
  17857. | cos(theta) -sin(theta) 0 |
  17858. | sin(theta) cos(theta) 0 |
  17859. | 0 0 1 |
  17860. </pre></blockquote>
  17861. </remarks>
  17862. <param name="theta"> the rotation angle, in radians</param>
  17863. <returns> this transformation, with an updated matrix</returns>
  17864. </member>
  17865. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double)">
  17866. <summary>
  17867. Sets this transformation to be a rotation around the origin
  17868. by specifying the sin and cos of the rotation angle directly.
  17869. </summary>
  17870. <remarks>
  17871. The transformation matrix for the rotation
  17872. has the value:
  17873. <blockquote><pre>
  17874. | cosTheta -sinTheta 0 |
  17875. | sinTheta cosTheta 0 |
  17876. | 0 0 1 |
  17877. </pre></blockquote>
  17878. </remarks>
  17879. <param name="sinTheta"> the sine of the rotation angle</param>
  17880. <param name="cosTheta"> the cosine of the rotation angle</param>
  17881. <returns> this transformation, with an updated matrix</returns>
  17882. </member>
  17883. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double,System.Double)">
  17884. <summary>
  17885. Sets this transformation to be a rotation
  17886. around a given point (x,y).
  17887. </summary>
  17888. <remarks>
  17889. A positive rotation angle corresponds
  17890. to a counter-clockwise rotation.
  17891. The transformation matrix for a rotation
  17892. by an angle <paramref name="theta" />
  17893. has the value:
  17894. <blockquote><pre>
  17895. | cosTheta -sinTheta x-x*cos+y*sin |
  17896. | sinTheta cosTheta y-x*sin-y*cos |
  17897. | 0 0 1 |
  17898. </pre></blockquote>
  17899. </remarks>
  17900. <param name="theta"> the rotation angle, in radians</param>
  17901. <param name="x"> the x-ordinate of the rotation point</param>
  17902. <param name="y"> the y-ordinate of the rotation point</param>
  17903. <returns> this transformation, with an updated matrix</returns>
  17904. </member>
  17905. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToRotation(System.Double,System.Double,System.Double,System.Double)">
  17906. <summary>
  17907. Sets this transformation to be a rotation
  17908. around a given point (x,y)
  17909. by specifying the sin and cos of the rotation angle directly.
  17910. </summary>
  17911. <remarks>
  17912. The transformation matrix for the rotation
  17913. has the value:
  17914. <blockquote><pre>
  17915. | cosTheta -sinTheta x-x*cos+y*sin |
  17916. | sinTheta cosTheta y-x*sin-y*cos |
  17917. | 0 0 1 |
  17918. </pre></blockquote>
  17919. </remarks>
  17920. <param name="sinTheta"> the sine of the rotation angle</param>
  17921. <param name="cosTheta"> the cosine of the rotation angle</param>
  17922. <param name="x"> the x-ordinate of the rotation point</param>
  17923. <param name="y"> the y-ordinate of the rotation point</param>
  17924. <returns> this transformation, with an updated matrix</returns>
  17925. </member>
  17926. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToScale(System.Double,System.Double)">
  17927. <summary>
  17928. Sets this transformation to be a scaling.
  17929. </summary>
  17930. <remarks>
  17931. The transformation matrix for a scale
  17932. has the value:
  17933. <blockquote><pre>
  17934. | xScale 0 dx |
  17935. | 0 yScale dy |
  17936. | 0 0 1 |
  17937. </pre></blockquote>
  17938. </remarks>
  17939. <param name="xScale"> the amount to scale x-ordinates by</param>
  17940. <param name="yScale"> the amount to scale y-ordinates by</param>
  17941. <returns> this transformation, with an updated matrix</returns>
  17942. </member>
  17943. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToShear(System.Double,System.Double)">
  17944. <summary>
  17945. Sets this transformation to be a shear.
  17946. </summary>
  17947. <remarks>
  17948. The transformation matrix for a shear
  17949. has the value:
  17950. <blockquote><pre>
  17951. | 1 xShear 0 |
  17952. | yShear 1 0 |
  17953. | 0 0 1 |
  17954. </pre></blockquote>
  17955. Note that a shear of (1, 1) is <i>not</i>
  17956. equal to shear(1, 0) composed with shear(0, 1).
  17957. Instead, shear(1, 1) corresponds to a mapping onto the
  17958. line x = y.
  17959. </remarks>
  17960. <param name="xShear"> the x component to shear by</param>
  17961. <param name="yShear"> the y component to shear by</param>
  17962. <returns> this transformation, with an updated matrix</returns>
  17963. </member>
  17964. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.SetToTranslation(System.Double,System.Double)">
  17965. <summary>
  17966. Sets this transformation to be a translation.
  17967. </summary>
  17968. <remarks>
  17969. For a translation by the vector (x, y)
  17970. the transformation matrix has the value:
  17971. <blockquote><pre>
  17972. | 1 0 dx |
  17973. | 1 0 dy |
  17974. | 0 0 1 |
  17975. </pre></blockquote>
  17976. </remarks>
  17977. <param name="dx"> the x component to translate by</param>
  17978. <param name="dy"> the y component to translate by</param>
  17979. <returns> this transformation, with an updated matrix</returns>
  17980. </member>
  17981. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Reflect(System.Double,System.Double,System.Double,System.Double)">
  17982. <summary>
  17983. Updates the value of this transformation
  17984. to that of a reflection transformation composed
  17985. with the current value.
  17986. </summary>
  17987. <param name="x0"> the x-ordinate of a point on the line to reflect around</param>
  17988. <param name="y0"> the y-ordinate of a point on the line to reflect around</param>
  17989. <param name="x1"> the x-ordinate of a point on the line to reflect around</param>
  17990. <param name="y1"> the y-ordinate of a point on the line to reflect around</param>
  17991. <returns> this transformation, with an updated matrix</returns>
  17992. </member>
  17993. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Reflect(System.Double,System.Double)">
  17994. <summary>
  17995. Updates the value of this transformation
  17996. to that of a reflection transformation composed
  17997. with the current value.
  17998. </summary>
  17999. <param name="x"> the x-ordinate of the line to reflect around</param>
  18000. <param name="y"> the y-ordinate of the line to reflect around</param>
  18001. <returns> this transformation, with an updated matrix</returns>
  18002. </member>
  18003. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double)">
  18004. <summary>
  18005. Updates the value of this transformation
  18006. to that of a rotation transformation composed
  18007. with the current value.
  18008. </summary>
  18009. <remarks>
  18010. Positive angles correspond to a rotation
  18011. in the counter-clockwise direction.
  18012. </remarks>
  18013. <param name="theta"> the angle to rotate by in radians</param>
  18014. <returns> this transformation, with an updated matrix</returns>
  18015. </member>
  18016. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double)">
  18017. <summary>
  18018. Updates the value of this transformation
  18019. to that of a rotation around the origin composed
  18020. with the current value,
  18021. with the sin and cos of the rotation angle specified directly.
  18022. </summary>
  18023. <param name="sinTheta"> the sine of the angle to rotate by</param>
  18024. <param name="cosTheta"> the cosine of the angle to rotate by</param>
  18025. <returns> this transformation, with an updated matrix</returns>
  18026. </member>
  18027. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double,System.Double)">
  18028. <summary>
  18029. Updates the value of this transformation
  18030. to that of a rotation around a given point composed
  18031. with the current value.
  18032. </summary>
  18033. <remarks>
  18034. Positive angles correspond to a rotation
  18035. in the counter-clockwise direction.
  18036. </remarks>
  18037. <param name="theta"> the angle to rotate by, in radians</param>
  18038. <param name="x"> the x-ordinate of the rotation point</param>
  18039. <param name="y"> the y-ordinate of the rotation point</param>
  18040. <returns> this transformation, with an updated matrix</returns>
  18041. </member>
  18042. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Rotate(System.Double,System.Double,System.Double,System.Double)">
  18043. <summary>
  18044. Updates the value of this transformation
  18045. to that of a rotation around a given point composed
  18046. with the current value,
  18047. with the sin and cos of the rotation angle specified directly.
  18048. </summary>
  18049. <param name="sinTheta"> the sine of the angle to rotate by</param>
  18050. <param name="cosTheta"> the cosine of the angle to rotate by</param>
  18051. <param name="x"> the x-ordinate of the rotation point</param>
  18052. <param name="y"> the y-ordinate of the rotation point</param>
  18053. <returns> this transformation, with an updated matrix</returns>
  18054. </member>
  18055. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Scale(System.Double,System.Double)">
  18056. <summary>
  18057. Updates the value of this transformation
  18058. to that of a scale transformation composed
  18059. with the current value.
  18060. </summary>
  18061. <param name="xScale"> the value to scale by in the x direction</param>
  18062. <param name="yScale"> the value to scale by in the y direction</param>
  18063. <returns> this transformation, with an updated matrix</returns>
  18064. </member>
  18065. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Shear(System.Double,System.Double)">
  18066. <summary>
  18067. Updates the value of this transformation
  18068. to that of a shear transformation composed
  18069. with the current value.
  18070. </summary>
  18071. <param name="xShear"> the value to shear by in the x direction</param>
  18072. <param name="yShear"> the value to shear by in the y direction</param>
  18073. <returns> this transformation, with an updated matrix</returns>
  18074. </member>
  18075. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Translate(System.Double,System.Double)">
  18076. <summary>
  18077. Updates the value of this transformation
  18078. to that of a translation transformation composed
  18079. with the current value.
  18080. </summary>
  18081. <param name="x"> the value to translate by in the x direction</param>
  18082. <param name="y"> the value to translate by in the y direction</param>
  18083. <returns> this transformation, with an updated matrix</returns>
  18084. </member>
  18085. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Compose(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
  18086. <summary>
  18087. Updates this transformation to be
  18088. the composition of this transformation with the given <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation" />.
  18089. </summary>
  18090. <remarks>
  18091. This produces a transformation whose effect
  18092. is equal to applying this transformation
  18093. followed by the argument transformation.
  18094. Mathematically,
  18095. <blockquote><pre>
  18096. A.compose(B) = T<sub>B</sub> x T<sub>A</sub>
  18097. </pre></blockquote>
  18098. </remarks>
  18099. <param name="trans"> an affine transformation</param>
  18100. <returns> this transformation, with an updated matrix</returns>
  18101. </member>
  18102. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ComposeBefore(NetTopologySuite.Geometries.Utilities.AffineTransformation)">
  18103. <summary>
  18104. Updates this transformation to be the composition
  18105. of a given <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation" /> with this transformation.
  18106. </summary>
  18107. <remarks>
  18108. This produces a transformation whose effect
  18109. is equal to applying the argument transformation
  18110. followed by this transformation.
  18111. Mathematically,
  18112. <blockquote><pre>
  18113. A.composeBefore(B) = T<sub>A</sub> x T<sub>B</sub>
  18114. </pre></blockquote>
  18115. </remarks>
  18116. <param name="trans"> an affine transformation</param>
  18117. <returns> this transformation, with an updated matrix</returns>
  18118. </member>
  18119. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18120. <summary>
  18121. Applies this transformation to the <paramref name="src" /> coordinate
  18122. and places the results in the <paramref name="dest" /> coordinate
  18123. (which may be the same as the source).
  18124. </summary>
  18125. <param name="src"> the coordinate to transform</param>
  18126. <param name="dest"> the coordinate to accept the results</param>
  18127. <returns> the <c>dest</c> coordinate</returns>
  18128. </member>
  18129. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.Geometry)">
  18130. <summary>
  18131. Creates a new <see cref="T:NetTopologySuite.Geometries.Geometry"/> which is the result of this transformation applied to the input Geometry.
  18132. </summary>
  18133. <param name="g">A <c>Geometry</c></param>
  18134. <returns>The transformed Geometry</returns>
  18135. </member>
  18136. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Transform(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  18137. <summary>
  18138. Applies this transformation to the i'th coordinate
  18139. in the given CoordinateSequence.
  18140. </summary>
  18141. <param name="seq"> a <c>CoordinateSequence</c></param>
  18142. <param name="i"> the index of the coordinate to transform</param>
  18143. </member>
  18144. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  18145. <summary>
  18146. Transforms the i'th coordinate in the input sequence
  18147. </summary>
  18148. <param name="seq">A <c>CoordinateSequence</c></param>
  18149. <param name="i">The index of the coordinate to transform</param>
  18150. </member>
  18151. <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.Done">
  18152. <summary>
  18153. Reports that this filter should continue to be executed until
  18154. all coordinates have been transformed.
  18155. </summary>
  18156. <returns> false</returns>
  18157. </member>
  18158. <member name="P:NetTopologySuite.Geometries.Utilities.AffineTransformation.IsIdentity">
  18159. <summary>Tests if this transformation is the identity transformation.</summary>
  18160. </member>
  18161. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Equals(System.Object)">
  18162. <summary>
  18163. Tests if an object is an <c>AffineTransformation</c> and has the same matrix as this transformation.
  18164. </summary>
  18165. <param name="obj">An object to test</param>
  18166. <returns>true if the given object is equal to this object</returns>
  18167. </member>
  18168. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.GetHashCode">
  18169. <inheritdoc cref="M:System.Object.GetHashCode"/>
  18170. </member>
  18171. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.ToString">
  18172. <summary>
  18173. Gets a text representation of this transformation.
  18174. The string is of the form:
  18175. <code>
  18176. AffineTransformation[[m00, m01, m02], [m10, m11, m12]]
  18177. </code>
  18178. </summary>
  18179. <returns>A string representing this transformation</returns>
  18180. </member>
  18181. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformation.Clone">
  18182. <summary>
  18183. Clones this transformation
  18184. </summary>
  18185. <returns>A copy of this transformation</returns>
  18186. </member>
  18187. <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder">
  18188. <summary>
  18189. Builds an <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/> defined by a set of control vectors.
  18190. </summary>
  18191. <remarks>
  18192. <para>
  18193. A control vector consists of a source point and a destination point,
  18194. which is the image of the source point under the desired transformation.
  18195. </para>
  18196. <para>
  18197. A transformation is well-defined
  18198. by a set of three control vectors
  18199. if and only if the source points are not collinear.
  18200. (In particular, the degenerate situation
  18201. where two or more source points are identical will not produce a well-defined transformation).
  18202. A well-defined transformation exists and is unique.
  18203. If the control vectors are not well-defined, the system of equations
  18204. defining the transformation matrix entries is not solvable,
  18205. and no transformation can be determined.</para>
  18206. <para>
  18207. No such restriction applies to the destination points.
  18208. However, if the destination points are collinear or non-unique,
  18209. a non-invertible transformations will be generated.
  18210. </para>
  18211. <para>
  18212. This technique of recovering a transformation
  18213. from its effect on known points is used in the Bilinear Interpolated Triangulation
  18214. algorithm for warping planar surfaces.
  18215. </para>
  18216. </remarks>
  18217. <author>Martin Davis</author>
  18218. </member>
  18219. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18220. <summary>
  18221. Constructs a new builder for the transformation defined by the given set of control point mappings.
  18222. </summary>
  18223. <param name="src0">A control point</param>
  18224. <param name="src1">A control point</param>
  18225. <param name="src2">A control point</param>
  18226. <param name="dest0">The image of <paramref name="src0"/> under the required transformation</param>
  18227. <param name="dest1">The image of <paramref name="src1"/> under the required transformation</param>
  18228. <param name="dest2">The image of <paramref name="src2"/> under the required transformation</param>
  18229. </member>
  18230. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.GetTransformation">
  18231. <summary>
  18232. Computes the <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/>
  18233. determined by the control point mappings,
  18234. or <c>null</c> if the control vectors do not determine a well-defined transformation.
  18235. </summary>
  18236. <returns>
  18237. An affine transformation, or <see langword="null"/> if the control vectors do not
  18238. determine a well-defined transformation.
  18239. </returns>
  18240. </member>
  18241. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.Compute">
  18242. <summary>
  18243. Computes the transformation matrix by
  18244. solving the two systems of linear equations
  18245. defined by the control point mappings,
  18246. if this is possible.
  18247. </summary>
  18248. <returns>True if the transformation matrix is solvable</returns>
  18249. </member>
  18250. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationBuilder.Solve(System.Double[])">
  18251. <summary>
  18252. Solves the transformation matrix system of linear equations
  18253. for the given right-hand side vector.
  18254. </summary>
  18255. <param name="b">The vector for the right-hand side of the system</param>
  18256. <returns>The solution vector, or <see langword="null"/> if no solution could be determined.</returns>
  18257. </member>
  18258. <member name="T:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory">
  18259. <summary>
  18260. Supports creating <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/>s defined by various kinds of inputs and transformation mapping rules.
  18261. </summary>
  18262. <author>Martin Davis</author>
  18263. </member>
  18264. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18265. <summary>
  18266. Creates a transformation from a set of three control vectors. A control
  18267. vector consists of a source point and a destination point, which is the
  18268. image of the source point under the desired transformation. Three control
  18269. vectors allows defining a fully general affine transformation.
  18270. </summary>
  18271. <param name="src0"></param>
  18272. <param name="src1"></param>
  18273. <param name="src2"></param>
  18274. <param name="dest0"></param>
  18275. <param name="dest1"></param>
  18276. <param name="dest2"></param>
  18277. <returns>The computed transformation</returns>
  18278. </member>
  18279. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18280. <summary>
  18281. Creates an AffineTransformation defined by a pair of control vectors. A
  18282. control vector consists of a source point and a destination point, which is
  18283. the image of the source point under the desired transformation. The
  18284. computed transformation is a combination of one or more of a uniform scale,
  18285. a rotation, and a translation (i.e. there is no shear component and no
  18286. reflection)
  18287. </summary>
  18288. <param name="src0"></param>
  18289. <param name="src1"></param>
  18290. <param name="dest0"></param>
  18291. <param name="dest1"></param>
  18292. <returns>The computed transformation</returns>
  18293. <returns><c>null</c> if the control vectors do not determine a well-defined transformation</returns>
  18294. </member>
  18295. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18296. <summary>
  18297. Creates an AffineTransformation defined by a single control vector. A
  18298. control vector consists of a source point and a destination point, which is
  18299. the image of the source point under the desired transformation. This
  18300. produces a translation.
  18301. </summary>
  18302. <param name="src0">The start point of the control vector</param>
  18303. <param name="dest0">The end point of the control vector</param>
  18304. <returns>The computed transformation</returns>
  18305. </member>
  18306. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromControlVectors(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  18307. <summary>
  18308. Creates an AffineTransformation defined by a set of control vectors.
  18309. Between one and three vectors must be supplied.
  18310. </summary>
  18311. <param name="src">The source points of the vectors</param>
  18312. <param name="dest">The destination points of the vectors</param>
  18313. <returns>The computed transformation</returns>
  18314. <exception cref="T:System.ArgumentException">if the control vector arrays are too short, long or of different lengths</exception>
  18315. </member>
  18316. <member name="M:NetTopologySuite.Geometries.Utilities.AffineTransformationFactory.CreateFromBaseLines(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  18317. <summary>
  18318. Creates an AffineTransformation defined by a mapping between two baselines.
  18319. The computed transformation consists of:
  18320. <list type="bullet">
  18321. <item><description>a translation from the start point of the source baseline to the start point of the destination baseline,</description></item>
  18322. <item><description>a rotation through the angle between the baselines about the destination start point,</description></item>
  18323. <item><description>and a scaling equal to the ratio of the baseline lengths.</description></item>
  18324. </list>
  18325. If the source baseline has zero length, an identity transformation is returned.
  18326. </summary>
  18327. <param name="src0">The start point of the source baseline</param>
  18328. <param name="src1">The end point of the source baseline</param>
  18329. <param name="dest0">The start point of the destination baseline</param>
  18330. <param name="dest1">The end point of the destination baseline</param>
  18331. <returns></returns>
  18332. </member>
  18333. <member name="T:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter">
  18334. <summary>
  18335. Extracts a representative <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
  18336. from each connected component of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  18337. </summary>
  18338. <version>1.9</version>
  18339. </member>
  18340. <member name="M:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter.GetCoordinates(NetTopologySuite.Geometries.Geometry)">
  18341. <summary>
  18342. Extracts a representative <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
  18343. from each connected component in a geometry.
  18344. <para/>
  18345. If more than one geometry is to be processed, it is more
  18346. efficient to create a single <see cref="T:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter"/>
  18347. instance and pass it to each geometry.
  18348. </summary>
  18349. <param name="geom">The Geometry from which to extract</param>
  18350. <returns>A list of representative Coordinates</returns>
  18351. </member>
  18352. <member name="M:NetTopologySuite.Geometries.Utilities.ComponentCoordinateExtracter.#ctor(System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate})">
  18353. <summary>
  18354. Constructs a LineExtracterFilter with a list in which to store LineStrings found.
  18355. </summary>
  18356. </member>
  18357. <member name="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner">
  18358. <summary>
  18359. Utility to combine just the <see cref="T:NetTopologySuite.Geometries.Envelope"/>s of a list of geometries.
  18360. </summary>
  18361. </member>
  18362. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])">
  18363. <summary>
  18364. Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18365. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18366. the input list.
  18367. </summary>
  18368. <param name="geoms">
  18369. The list of input geometries.
  18370. </param>
  18371. <returns>
  18372. The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18373. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18374. the input list.
  18375. </returns>
  18376. </member>
  18377. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18378. <summary>
  18379. Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18380. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18381. the input list.
  18382. </summary>
  18383. <param name="geoms">
  18384. The list of input geometries.
  18385. </param>
  18386. <returns>
  18387. The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18388. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18389. the input list.
  18390. </returns>
  18391. </member>
  18392. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry(NetTopologySuite.Geometries.Geometry[])">
  18393. <summary>
  18394. Gets the <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])"/>.
  18395. </summary>
  18396. <param name="geoms">
  18397. The list of input geometries.
  18398. </param>
  18399. <returns>
  18400. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(NetTopologySuite.Geometries.Geometry[])"/>.
  18401. </returns>
  18402. </member>
  18403. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18404. <summary>
  18405. Gets the <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})"/>.
  18406. </summary>
  18407. <param name="geoms">
  18408. The list of input geometries.
  18409. </param>
  18410. <returns>
  18411. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})"/>.
  18412. </returns>
  18413. </member>
  18414. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.#ctor(NetTopologySuite.Geometries.Geometry[])">
  18415. <summary>
  18416. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner"/> class.
  18417. </summary>
  18418. <param name="geoms">
  18419. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances to combine.
  18420. </param>
  18421. </member>
  18422. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18423. <summary>
  18424. Initializes a new instance of the <see cref="T:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner"/> class.
  18425. </summary>
  18426. <param name="geoms">
  18427. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> instances to combine.
  18428. </param>
  18429. </member>
  18430. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine">
  18431. <summary>
  18432. Gets the smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18433. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18434. the input list.
  18435. </summary>
  18436. <returns>
  18437. The smallest <see cref="T:NetTopologySuite.Geometries.Envelope"/> within which all input geometries fit, or a
  18438. <see cref="P:NetTopologySuite.Geometries.Envelope.IsNull">null</see> envelope if no non-empty geometries were found in
  18439. the input list.
  18440. </returns>
  18441. </member>
  18442. <member name="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.CombineAsGeometry">
  18443. <summary>
  18444. Gets the <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine"/>.
  18445. </summary>
  18446. <returns>
  18447. The <see cref="T:NetTopologySuite.Geometries.Geometry"/> representation of the result of <see cref="M:NetTopologySuite.Geometries.Utilities.EnvelopeCombiner.Combine"/>.
  18448. </returns>
  18449. </member>
  18450. <member name="T:NetTopologySuite.Geometries.Utilities.Extracter">
  18451. <summary>
  18452. This class offers utility methods to extract single component
  18453. geometries of requested type from ordinary geometries.
  18454. </summary>
  18455. <seealso cref="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter"/>
  18456. <seealso cref="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter"/>
  18457. <seealso cref="T:NetTopologySuite.Geometries.Utilities.PointExtracter"/>
  18458. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
  18459. </member>
  18460. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPoints(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Point})">
  18461. <summary>
  18462. Extracts the <see cref="T:NetTopologySuite.Geometries.Point"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18463. and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18464. </summary>
  18465. <param name="geom">The geometry from which to extract</param>
  18466. <param name="list">The list to add the extracted elements to</param>
  18467. <returns></returns>
  18468. </member>
  18469. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPoints(NetTopologySuite.Geometries.Geometry)">
  18470. <summary>
  18471. Extracts the <see cref="T:NetTopologySuite.Geometries.Point"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18472. and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  18473. </summary>
  18474. <param name="geom">The geometry from which to extract</param>
  18475. </member>
  18476. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetLines(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.LineString})">
  18477. <summary>
  18478. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18479. and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18480. </summary>
  18481. <param name="geom">The geometry from which to extract</param>
  18482. <param name="list">The list to add the extracted elements to</param>
  18483. <returns></returns>
  18484. </member>
  18485. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetLines(NetTopologySuite.Geometries.Geometry)">
  18486. <summary>
  18487. Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18488. and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  18489. </summary>
  18490. <param name="geom">The geometry from which to extract</param>
  18491. </member>
  18492. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPolygons(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Polygon})">
  18493. <summary>
  18494. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18495. and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18496. </summary>
  18497. <param name="geom">The geometry from which to extract</param>
  18498. <param name="list">The list to add the extracted elements to</param>
  18499. <returns></returns>
  18500. </member>
  18501. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter.GetPolygons(NetTopologySuite.Geometries.Geometry)">
  18502. <summary>
  18503. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a single
  18504. <see cref="T:NetTopologySuite.Geometries.Geometry"/> and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  18505. </summary>
  18506. <param name="geom">The geometry from which to extract</param>
  18507. </member>
  18508. <member name="T:NetTopologySuite.Geometries.Utilities.Extracter`1">
  18509. <summary>
  18510. Class to extract single instance geometries of <see cref="!:T"/>
  18511. </summary>
  18512. <typeparam name="T">The type of the geometries to extract</typeparam>
  18513. </member>
  18514. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.GetItems(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{`0})">
  18515. <summary>
  18516. Extracts the <typeparamref name="T"/>-geometry elements from a single
  18517. <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18518. </summary>
  18519. <param name="geom">The geometry from which to extract</param>
  18520. <param name="comps">The list to add the extracted elements to</param>
  18521. <returns><paramref name="comps"/>, extended by <c>T</c>-geometries of <paramref name="geom"/></returns>
  18522. </member>
  18523. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.GetItems(NetTopologySuite.Geometries.Geometry)">
  18524. <summary>
  18525. Extracts the <typeparamref name="T"/>-geometry elements from a single
  18526. <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18527. </summary>
  18528. <param name="geom">The geometry from which to extract</param>
  18529. <returns>A list of <c>T</c>-geometry elements in <paramref name="geom"/></returns>
  18530. </member>
  18531. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.#ctor(System.Collections.Generic.IList{`0})">
  18532. <summary>
  18533. Creates an instance of this class
  18534. </summary>
  18535. <param name="comps">The list to add <typeparamref name="T"/>-geometry elements to</param>
  18536. <exception cref="T:System.InvalidOperationException"></exception>
  18537. </member>
  18538. <member name="M:NetTopologySuite.Geometries.Utilities.Extracter`1.Filter(NetTopologySuite.Geometries.Geometry)">
  18539. <summary>
  18540. Adds <paramref name="geom"/> to the list when it is a <typeparamref name="T"/>-geometry.
  18541. </summary>
  18542. </member>
  18543. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper">
  18544. <summary>
  18545. Maps the members of a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  18546. into another <tt>GeometryCollection</tt> via a defined
  18547. mapping function.
  18548. </summary>
  18549. <author>Martin Davis</author>
  18550. </member>
  18551. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.Map(NetTopologySuite.Geometries.GeometryCollection,System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
  18552. <summary>
  18553. </summary>
  18554. <param name="gc"></param>
  18555. <param name="op"></param>
  18556. <returns></returns>
  18557. </member>
  18558. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.#ctor(System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
  18559. <summary>
  18560. Creates an instance of this class
  18561. </summary>
  18562. <param name="mapOp"></param>
  18563. </member>
  18564. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCollectionMapper.Map(NetTopologySuite.Geometries.GeometryCollection)">
  18565. <summary>
  18566. </summary>
  18567. <param name="gc"></param>
  18568. <returns></returns>
  18569. </member>
  18570. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryCombiner">
  18571. <summary>
  18572. Combines <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to produce a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of the most appropriate type.
  18573. </summary>
  18574. <remarks>
  18575. <para>Input geometries which are already collections will have their elements extracted first.</para>
  18576. <para>No validation of the result geometry is performed.
  18577. (The only case where invalidity is possible is where <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries are combined and result in a self-intersection).</para>
  18578. </remarks>
  18579. <author>mbdavis</author>
  18580. <seealso cref="M:NetTopologySuite.Geometries.GeometryFactory.BuildGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})"/>
  18581. </member>
  18582. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18583. <summary>Combines a collection of geometries.</summary>
  18584. <param name="geoms">The geometries to combine</param>
  18585. <returns>The combined geometry</returns>
  18586. </member>
  18587. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  18588. <summary>
  18589. Combines two geometries.
  18590. </summary>
  18591. <param name="g0">A geometry to combine</param>
  18592. <param name="g1">A geometry to combine</param>
  18593. <returns>The combined geometry</returns>
  18594. </member>
  18595. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  18596. <summary>
  18597. Combines three geometries.
  18598. </summary>
  18599. <param name="g0">A geometry to combine</param>
  18600. <param name="g1">A geometry to combine</param>
  18601. <param name="g2">A geometry to combine</param>
  18602. <returns>The combined geometry</returns>
  18603. </member>
  18604. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.CreateList(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  18605. <summary>
  18606. Creates a list from two items
  18607. </summary>
  18608. <param name="obj0"></param>
  18609. <param name="obj1"></param>
  18610. <returns>A list from two geometries</returns>
  18611. </member>
  18612. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.CreateList(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  18613. <summary>
  18614. Creates a list from three items
  18615. </summary>
  18616. <param name="obj0"></param>
  18617. <param name="obj1"></param>
  18618. <param name="obj2"></param>
  18619. <returns>A list from three geometries</returns>
  18620. </member>
  18621. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryCombiner.SkipEmpty">
  18622. <summary>
  18623. Value indicating whether empty geometries should be skipped
  18624. </summary>
  18625. </member>
  18626. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18627. <summary>
  18628. Creates a new combiner for a collection of geometries
  18629. </summary>
  18630. <param name="geoms">The geometries to combine</param>
  18631. </member>
  18632. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.ExtractFactory(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  18633. <summary>
  18634. Extracts the GeometryFactory used by the geometries in a collection
  18635. </summary>
  18636. <param name="geoms"></param>
  18637. <returns>a GeometryFactory</returns>
  18638. </member>
  18639. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryCombiner.Combine">
  18640. <summary>
  18641. Computes the combination of the input geometries to produce the most appropriate <see cref="T:NetTopologySuite.Geometries.Geometry"/> or <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  18642. </summary>
  18643. <returns>A Geometry which is the combination of the inputs</returns>
  18644. <returns></returns>
  18645. </member>
  18646. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor">
  18647. <summary>
  18648. A class which supports creating new <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  18649. which are modifications of existing ones,
  18650. maintaining the same type structure.
  18651. </summary>
  18652. <remarks>
  18653. Geometry objects are intended to be treated as immutable.
  18654. This class allows you to "modifies" a Geometrys
  18655. by traversing them, applying a user-defined
  18656. <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation"/>, <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateSequenceOperation"/> or <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation"/>
  18657. and creating a new Geometrys with the same structure but
  18658. (possibly) modified components.
  18659. <para>
  18660. Examples of the kinds of modifications which can be made are:
  18661. <list type="bullet">
  18662. <item><description>
  18663. The values of the coordinates may be changed.
  18664. The editor does not check whether changing coordinate values makes the result Geometry invalid
  18665. </description></item>
  18666. <item><description>
  18667. The coordinate lists may be changed (e.g. by adding, deleting or modifying coordinates).
  18668. The modified coordinate lists must be consistent with their original parent component
  18669. (e.g. a <tt>LinearRing</tt> must always have at least 4 coordinates, and the first and last
  18670. coordinate must be equal).
  18671. </description></item>
  18672. <item><description>
  18673. Components of the original point may be deleted
  18674. (e.g. holes may be removed from a Polygon, or LineStrings removed from a MultiLineString).
  18675. Deletions will be propagated up the component tree appropriately.
  18676. </description></item></list>
  18677. </para>
  18678. <para>
  18679. All changes must be consistent with the original Geometry's structure
  18680. (e.g. a <c>Polygon</c> cannot be collapsed into a <c>LineString</c>).
  18681. If changing the structure is required, use a <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>.
  18682. </para>
  18683. <para>
  18684. This class supports creating an edited Geometry
  18685. using a different <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> via the <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor(NetTopologySuite.Geometries.GeometryFactory)"/>
  18686. constructor.
  18687. Examples of situations where this is required is if the geometry is
  18688. transformed to a new SRID and/or a new PrecisionModel.</para>
  18689. <para>
  18690. Usage notes
  18691. <list type="bullet">
  18692. <item><description>The resulting Geometry is not checked for validity.
  18693. If validity needs to be enforced, the new Geometry's
  18694. <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/> method should be called.</description></item>
  18695. <item><description>By default the UserData of the input geometry is not copied to the result.</description></item>
  18696. </list>
  18697. </para>
  18698. </remarks>
  18699. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer"/>
  18700. <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
  18701. </member>
  18702. <member name="F:NetTopologySuite.Geometries.Utilities.GeometryEditor._factory">
  18703. <summary>
  18704. The factory used to create the modified Geometry.
  18705. </summary>
  18706. <remarks>
  18707. If <tt>null</tt> the GeometryFactory of the input is used.
  18708. </remarks>
  18709. </member>
  18710. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor">
  18711. <summary>
  18712. Creates a new GeometryEditor object which will create
  18713. edited <see cref="T:NetTopologySuite.Geometries.Geometry"/> with the same <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> as the input Geometry.
  18714. </summary>
  18715. </member>
  18716. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  18717. <summary>
  18718. Creates a new GeometryEditor object which will create
  18719. edited <see cref="T:NetTopologySuite.Geometries.Geometry"/>s with the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  18720. </summary>
  18721. <param name="factory">The GeometryFactory to create the edited Geometry with.</param>
  18722. </member>
  18723. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryEditor.CopyUserData">
  18724. <summary>
  18725. Gets or sets a value indicating if the User Data is copied to the edit result.
  18726. If so, only the object reference is copied.
  18727. </summary>
  18728. </member>
  18729. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation)">
  18730. <summary>
  18731. Edit the input <c>Geometry</c> with the given edit operation.
  18732. Clients can create subclasses of GeometryEditorOperation or
  18733. CoordinateOperation to perform required modifications.
  18734. </summary>
  18735. <param name="geometry">The Geometry to edit.</param>
  18736. <param name="operation">The edit operation to carry out.</param>
  18737. <returns>A new <c>Geometry</c> which is the result of the editing (which may be empty).</returns>
  18738. </member>
  18739. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation">
  18740. <summary>
  18741. A interface which specifies an edit operation for Geometries.
  18742. </summary>
  18743. </member>
  18744. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
  18745. <summary>
  18746. Edits a Geometry by returning a new Geometry with a modification.
  18747. The returned Geometry may be the input geometry itself.
  18748. It may be <c>null</c> if the geometry is to be deleted.
  18749. </summary>
  18750. <param name="geometry">The Geometry to modify.</param>
  18751. <param name="factory">
  18752. The factory with which to construct the modified Geometry
  18753. (may be different to the factory of the input point).
  18754. </param>
  18755. <returns>A new Geometry which is a modification of the input Geometry.</returns>
  18756. <returns><c>null</c> if the Geometry is to be deleted completely</returns>
  18757. </member>
  18758. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.NoOpGeometryOperation">
  18759. <summary>
  18760. A GeometryEditorOperation which does not modify
  18761. the input geometry.
  18762. This can be used for simple changes of
  18763. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> (including PrecisionModel and SRID).
  18764. </summary>
  18765. <author>mbdavis</author>
  18766. </member>
  18767. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation">
  18768. <summary>
  18769. A GeometryEditorOperation which edits the coordinate list of a <c>Geometry</c>.
  18770. Operates on Geometry subclasses which contains a single coordinate list.
  18771. </summary>
  18772. </member>
  18773. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation.Edit(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
  18774. <summary>
  18775. </summary>
  18776. <param name="geometry"></param>
  18777. <param name="factory"></param>
  18778. <returns></returns>
  18779. </member>
  18780. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateOperation.Edit(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Geometry)">
  18781. <summary>
  18782. Edits the array of <c>Coordinate</c>s from a <c>Geometry</c>.
  18783. </summary>
  18784. <param name="coordinates">The coordinate array to operate on.</param>
  18785. <param name="geometry">The point containing the coordinate list.</param>
  18786. <returns>An edited coordinate array (which may be the same as the input).</returns>
  18787. </member>
  18788. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateSequenceOperation">
  18789. <summary>
  18790. A <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryEditor.IGeometryEditorOperation"/> which edits the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
  18791. of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  18792. <para/>
  18793. Operates on Geometry subclasses which contains a single coordinate list.
  18794. </summary>
  18795. </member>
  18796. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryEditor.CoordinateSequenceOperation.EditSequence">
  18797. <returns>An edited coordinate sequence (which may be the same as the input)</returns>
  18798. </member>
  18799. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter">
  18800. <summary>
  18801. Extracts the components of a given type from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  18802. </summary>
  18803. <seealso cref="T:NetTopologySuite.Geometries.Utilities.PointExtracter"/>
  18804. <seealso cref="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter"/>
  18805. <seealso cref="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter"/>
  18806. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
  18807. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
  18808. </member>
  18809. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract``1(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  18810. <summary>
  18811. Extracts the <c>T</c> components from an <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  18812. </summary>
  18813. <param name="geom">the geometry from which to extract</param>
  18814. <param name="list">the list to add the extracted elements to</param>
  18815. <typeparam name="T">The geometry type to extract</typeparam>
  18816. </member>
  18817. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract``1(NetTopologySuite.Geometries.Geometry)">
  18818. <summary>
  18819. Extracts the <c>T</c> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  18820. </summary>
  18821. <param name="geom">the geometry from which to extract</param>
  18822. </member>
  18823. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract(NetTopologySuite.Geometries.Geometry,System.String)">
  18824. <summary>
  18825. Extracts the components of <tt>geometryType</tt> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18826. </summary>
  18827. <param name="geom">The geometry from which to extract</param>
  18828. <param name="geometryType">Geometry type to extract (null or all white-space means all types)</param>
  18829. </member>
  18830. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter.Extract(NetTopologySuite.Geometries.Geometry,System.String,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  18831. <summary>
  18832. Extracts the components of <tt>geometryType</tt> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18833. and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>
  18834. </summary>
  18835. <param name="geom">The geometry from which to extract</param>
  18836. <param name="geometryType">Geometry type to extract (null or all white-space means all types)</param>
  18837. <param name="list">The list to add the extracted elements to</param>
  18838. </member>
  18839. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName">
  18840. <summary>
  18841. Extracts the components of type <c>T</c> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  18842. </summary>
  18843. </member>
  18844. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.#ctor(System.String,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  18845. <summary>
  18846. Constructs a filter with a list in which to store the elements found.
  18847. </summary>
  18848. <param name="geometryType">Geometry type to extract (null means all types)</param>
  18849. <param name="comps">The list to extract into</param>
  18850. </member>
  18851. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.IsOfType(NetTopologySuite.Geometries.Geometry,System.String)">
  18852. <summary>
  18853. Y
  18854. </summary>
  18855. <param name="geom"></param>
  18856. <param name="geometryType"></param>
  18857. <returns></returns>
  18858. </member>
  18859. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracterByTypeName.Filter(NetTopologySuite.Geometries.Geometry)">
  18860. <inheritdoc cref="M:NetTopologySuite.Geometries.IGeometryFilter.Filter(NetTopologySuite.Geometries.Geometry)"/>
  18861. </member>
  18862. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter`1">
  18863. <summary>
  18864. Extracts the components of type <c>T</c> from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  18865. </summary>
  18866. </member>
  18867. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryExtracter`1.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  18868. <summary>
  18869. Constructs a filter with a list in which to store the elements found.
  18870. </summary>
  18871. <param name="comps">The list to extract into</param>
  18872. </member>
  18873. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryFixer">
  18874. <summary>
  18875. Fixes a geometry to be a valid geometry, while preserving as much as
  18876. possible of the shape and location of the input.
  18877. Validity is determined according to <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>.
  18878. <para/>
  18879. Input geometries are always processed, so even valid inputs may
  18880. have some minor alterations.The output is always a new geometry object.
  18881. <h2>Semantic Rules</h2>
  18882. <list type="number">
  18883. <item><description>Vertices with non-finite X or Y ordinates are removed (as per <see cref="P:NetTopologySuite.Geometries.Coordinate.IsValid"/>)</description></item>
  18884. <item><description>Repeated points are reduced to a single point</description></item>
  18885. <item><description>Empty atomic geometries are valid and are returned unchanged</description></item>
  18886. <item><description>Empty elements are removed from collections</description></item>
  18887. <item><description><c>Point</c>: keep valid coordinate, or EMPTY</description></item>
  18888. <item><description><c>LineString</c>: coordinates are fixed</description></item>
  18889. <item><description><c>LinearRing</c>: coordinates are feixed, keep valid ring or else convert into <c>LineString</c></description></item>
  18890. <item><description><c>Polygon</c>: transform into a valid polygon or multipolygon,
  18891. preserving as much of the extent and vertices as possible.
  18892. <list type="bullet">
  18893. <item><description>Rings are fixed to ensure they are valid</description></item>
  18894. <item><description>Holes intersection the shell are subtracted from the shell</description></item>
  18895. <item><description>Holes outside the shell are converted into polygons</description></item>
  18896. </list></description></item>
  18897. <item><description><c>MultiPolygon</c>: each polygon is fixed,
  18898. then result made non - overlapping (via union)</description></item>
  18899. <item><description><c>GeometryCollection</c>: each element is fixed</description></item>
  18900. <item><description>Collapsed lines and polygons are handled as follows,
  18901. depending on the <c>keepCollapsed</c> setting:
  18902. <list type="bullet">
  18903. <item><description><c>false</c>: (default) collapses are converted to empty geometries
  18904. (and removed if they are elements of collections)</description></item>
  18905. <item><description><c>true</c>: collapses are converted to a valid geometry of lower dimension</description></item>
  18906. </list></description></item>
  18907. </list>
  18908. </summary>
  18909. <author>Martin Davis</author>
  18910. <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>
  18911. </member>
  18912. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Fix(NetTopologySuite.Geometries.Geometry)">
  18913. <summary>
  18914. Fixes a geometry to be valid.
  18915. </summary>
  18916. <param name="geom">The geometry to be fixed</param>
  18917. <returns>The valid fixed geometry</returns>
  18918. </member>
  18919. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Fix(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  18920. <summary>
  18921. Fixes a geometry to be valid, allowing to set a flag controlling how
  18922. single item results from fixed <c>MULTI</c> geometries should be
  18923. returned.
  18924. </summary>
  18925. <param name="geom">The geometry to be fixed</param>
  18926. <param name="isKeepMulti">A flag indicating if <c>MULTI</c> geometries should not
  18927. be converted to single instance types if they consist of only one item.</param>
  18928. <returns>The valid fixed geometry</returns>
  18929. </member>
  18930. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.#ctor(NetTopologySuite.Geometries.Geometry)">
  18931. <summary>Creates a new instance to fix a given geometry</summary>
  18932. <param name="geom">The geometry to be fixed</param>
  18933. </member>
  18934. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryFixer.KeepCollapsed">
  18935. <summary>
  18936. Gets or sets a value indicating whether collapsed
  18937. geometries are converted to empty,
  18938. (which will be removed from collections),
  18939. or to a valid geometry of lower dimension.
  18940. The default is to convert collapses to empty geometries (<c>false</c>).
  18941. </summary>
  18942. </member>
  18943. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryFixer.KeepMulti">
  18944. <summary>
  18945. Gets or sets a value indicating whether collapsed
  18946. geometries are converted to empty,
  18947. (which will be removed from collections),
  18948. or to a valid geometry of lower dimension.
  18949. The default is to convert collapses to empty geometries (<c>false</c>).
  18950. </summary>
  18951. </member>
  18952. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.GetResult">
  18953. <summary>
  18954. Gets the fixed geometry.
  18955. </summary>
  18956. <returns>The fixed geometry</returns>
  18957. </member>
  18958. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.FixCoordinates(NetTopologySuite.Geometries.Coordinate[])">
  18959. <summary>
  18960. Returns a clean copy of the input coordinate array.
  18961. </summary>
  18962. <param name="pts">Coordinates to clean</param>
  18963. <returns>An array of clean coordinates</returns>
  18964. </member>
  18965. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Difference(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
  18966. <summary>Subtracts a list of polygonal geometries from a polygonal geometry.</summary>
  18967. <param name="shell">polygonal geometry for shell</param>
  18968. <param name="holes">polygonal geometries for holes</param>
  18969. <returns>The result geometry</returns>
  18970. </member>
  18971. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryFixer.Union(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
  18972. <summary>
  18973. Unions a list of polygonal geometries.
  18974. Optimizes case of zero or one input geometries.
  18975. Requires that the inputs are net new objects.
  18976. </summary>
  18977. <param name="polys">The polygonal geometries to union</param>
  18978. <returns>The union of the inputs</returns>
  18979. </member>
  18980. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper">
  18981. <summary>
  18982. Methods to map various collections
  18983. of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  18984. via defined mapping functions.
  18985. </summary>
  18986. <author>Martin Davis</author>
  18987. </member>
  18988. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.Map(NetTopologySuite.Geometries.Geometry,System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
  18989. <summary>
  18990. Maps the members of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  18991. (which may be atomic or composite)
  18992. into another <tt>Geometry</tt> of most specific type.
  18993. <tt>null</tt> results are skipped.
  18994. In the case of hierarchical <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s,
  18995. only the first level of members are mapped.
  18996. </summary>
  18997. <param name="geom">The input atomic or composite geometry</param>
  18998. <param name="op">The mapping operation delegate</param>
  18999. <returns>A result collection or geometry of most specific type</returns>
  19000. </member>
  19001. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.Map(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp)">
  19002. <summary>
  19003. Maps the members of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19004. (which may be atomic or composite)
  19005. into another <tt>Geometry</tt> of most specific type.
  19006. <tt>null</tt> results are skipped.
  19007. In the case of hierarchical <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s,
  19008. only the first level of members are mapped.
  19009. </summary>
  19010. <param name="geom">The input atomic or composite geometry</param>
  19011. <param name="op">The mapping operation</param>
  19012. <returns>A result collection or geometry of most specific type</returns>
  19013. </member>
  19014. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.FlatMap(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp)">
  19015. <summary>
  19016. Maps the atomic elements of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19017. (which may be atomic or composite)
  19018. using a <see cref="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp"/> mapping operation
  19019. into an atomic <tt>Geometry</tt> or a flat collection
  19020. of the most specific type.
  19021. <tt>null</tt> and empty values returned from the mapping operation
  19022. are discarded.
  19023. </summary>
  19024. <param name="geom">The geometry to map</param>
  19025. <param name="emptyDim">The dimension of empy geometry to create</param>
  19026. <param name="op">The mapping operation</param>
  19027. <returns>The mapped result</returns>
  19028. </member>
  19029. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp">
  19030. <summary>
  19031. An interface for geometry functions used for mapping.
  19032. </summary>
  19033. <author>Martin Davis</author>
  19034. </member>
  19035. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.IMapOp.Map(NetTopologySuite.Geometries.Geometry)">
  19036. <summary>
  19037. Computes a new geometry value.
  19038. </summary>
  19039. <param name="g">The input geometry</param>
  19040. <returns>A result geometry</returns>
  19041. </member>
  19042. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp">
  19043. <summary>
  19044. Standard implementation of a geometry mapping
  19045. </summary>
  19046. </member>
  19047. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp.#ctor(System.Func{NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry})">
  19048. <summary>
  19049. Creates an instance of this class using the provided mapping operation function
  19050. </summary>
  19051. <param name="mapOp">A mapping operation function</param>
  19052. </member>
  19053. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryMapper.MapOp.Map(NetTopologySuite.Geometries.Geometry)">
  19054. <summary>
  19055. Computes a new geometry value.
  19056. </summary>
  19057. <param name="g">The input geometry</param>
  19058. <returns>A result geometry</returns>
  19059. </member>
  19060. <member name="T:NetTopologySuite.Geometries.Utilities.GeometryTransformer">
  19061. <summary>
  19062. A framework for processes which transform an input <c>Geometry</c> into
  19063. an output <see cref="T:NetTopologySuite.Geometries.Geometry"/>, possibly changing its structure and type(s).
  19064. </summary>
  19065. <remarks>
  19066. <para>
  19067. This class is a framework for implementing subclasses
  19068. which perform transformations on
  19069. various different Geometry subclasses.
  19070. </para>
  19071. <para>
  19072. It provides an easy way of applying specific transformations
  19073. to given point types, while allowing unhandled types to be simply copied.
  19074. Also, the framework handles ensuring that if subcomponents change type
  19075. the parent geometries types change appropriately to maintain valid structure.
  19076. Subclasses will override whichever <c>TransformX</c> methods
  19077. they need to to handle particular Geometry types.
  19078. </para>
  19079. <para>
  19080. A typically usage would be a transformation that may transform <c>Polygons</c> into
  19081. <c>Polygons</c>, <c>LineStrings</c> or <c>Points</c>, depending on the geometry of the input
  19082. (For instance, a simplification operation).
  19083. This class would likely need to override the <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
  19084. method to ensure that if input Polygons change type the result is a <c>GeometryCollection</c>,
  19085. not a <c>MultiPolygon</c>.</para>
  19086. <para>
  19087. The default behaviour of this class is simply to recursively transform
  19088. each Geometry component into an identical object by deep copying down
  19089. to the level of, but not including, coordinates.
  19090. </para>
  19091. <para>
  19092. Note that all <c>Transform<i>XXX</i></c> methods may return <c>null</c>,
  19093. to avoid creating empty point objects. This will be handled correctly
  19094. by the transformer. <c>Transform<i>XXX</i></c> methods should always return valid
  19095. geometry - if they cannot do this they should return <c>null</c>
  19096. (for instance, it may not be possible for a transformLineString implementation
  19097. to return at least two points - in this case, it should return <c>null</c>).
  19098. The <see cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Transform(NetTopologySuite.Geometries.Geometry)"/> method itself will always
  19099. return a non-null Geometry object (but this may be empty).</para>
  19100. </remarks>>
  19101. </member>
  19102. <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Factory">
  19103. <summary>
  19104. The geometry factory
  19105. </summary>
  19106. </member>
  19107. <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.pruneEmptyGeometry">
  19108. <summary>
  19109. <c>true</c> if empty geometries should not be included in the result.
  19110. </summary>
  19111. </member>
  19112. <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer.preserveGeometryCollectionType">
  19113. <summary>
  19114. <c>true</c> if a homogenous collection result
  19115. from a <c>GeometryCollection</c> should still
  19116. be a general GeometryCollection.
  19117. </summary>
  19118. </member>
  19119. <member name="F:NetTopologySuite.Geometries.Utilities.GeometryTransformer._preserveType">
  19120. <summary>
  19121. <c>true</c> if the type of the input should be preserved.
  19122. </summary>
  19123. </member>
  19124. <member name="P:NetTopologySuite.Geometries.Utilities.GeometryTransformer.InputGeometry">
  19125. <summary>
  19126. Makes the input geometry available
  19127. </summary>
  19128. </member>
  19129. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Transform(NetTopologySuite.Geometries.Geometry)">
  19130. <summary>
  19131. </summary>
  19132. <param name="inputGeom"></param>
  19133. <returns></returns>
  19134. </member>
  19135. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.CreateCoordinateSequence(NetTopologySuite.Geometries.Coordinate[])">
  19136. <summary>
  19137. Convenience method which provides standard way of
  19138. creating a <c>CoordinateSequence</c>.
  19139. </summary>
  19140. <param name="coords">The coordinate array to copy.</param>
  19141. <returns>A coordinate sequence for the array.</returns>
  19142. </member>
  19143. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.Copy(NetTopologySuite.Geometries.CoordinateSequence)">
  19144. <summary>
  19145. Convenience method which provides a standard way of copying <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>s.
  19146. </summary>
  19147. <param name="seq">The sequence to copy.</param>
  19148. <returns>A deep copy of the sequence.</returns>
  19149. </member>
  19150. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
  19151. <summary>
  19152. Transforms a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  19153. This method should always return a valid coordinate list for
  19154. the desired result type. (E.g. a coordinate list for a LineString
  19155. must have 0 or at least 2 points).
  19156. If this is not possible, return an empty sequence -
  19157. this will be pruned out.
  19158. </summary>
  19159. <param name="coords">The coordinates to transform</param>
  19160. <param name="parent">The parent geometry</param>
  19161. <returns>The transformed coordinates</returns>
  19162. </member>
  19163. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPoint(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.Geometry)">
  19164. <summary>
  19165. Transforms a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry.
  19166. </summary>
  19167. <param name="geom">The <c>Point</c> to transform</param>
  19168. <param name="parent">The parent geometry</param>
  19169. <returns>A <c>Point</c></returns>
  19170. </member>
  19171. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPoint(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Geometry)">
  19172. <summary>
  19173. Transforms a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry.
  19174. </summary>
  19175. <param name="geom">The <c>MultiPoint</c> to transform</param>
  19176. <param name="parent">The parent geometry</param>
  19177. <returns>A <c>MultiPoint</c></returns>
  19178. </member>
  19179. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
  19180. <summary>
  19181. Transforms a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>.
  19182. <para/>
  19183. The transformation of a <c>LinearRing</c> may result in a coordinate sequence
  19184. which does not form a structurally valid ring (i.e. a degenerate ring of 3 or fewer points).
  19185. In this case a <c>LineString</c> is returned.
  19186. Subclasses may wish to override this method and check for this situation
  19187. (e.g.a subclass may choose to eliminate degenerate linear rings)
  19188. </summary>
  19189. <param name="geom">The <c>LinearRing</c> to transform</param>
  19190. <param name="parent">The parent geometry</param>
  19191. <returns>
  19192. A <c>LinearRing</c> if the transformation resulted in a structurally valid ring, otherwise,
  19193. if the transformation caused the LinearRing to collapse to 3 or fewer points, a <c>LineString</c>
  19194. </returns>
  19195. </member>
  19196. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformLineString(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Geometry)">
  19197. <summary>
  19198. Transforms a <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry.
  19199. </summary>
  19200. <param name="geom">The <c>LineString</c> to transform</param>
  19201. <param name="parent">The parent geometry</param>
  19202. <returns>A <c>LineString</c></returns>
  19203. </member>
  19204. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiLineString(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Geometry)">
  19205. <summary>
  19206. Transforms a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry.
  19207. </summary>
  19208. <param name="geom">The <c>MultiLineString</c> to transform</param>
  19209. <param name="parent">The parent geometry</param>
  19210. <returns>A <c>MultiLineString</c></returns>
  19211. </member>
  19212. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  19213. <summary>
  19214. Transforms a <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry.
  19215. </summary>
  19216. <param name="geom">The <c>Polygon</c> to transform</param>
  19217. <param name="parent">The parent geometry</param>
  19218. <returns>A <c>Polygon</c></returns>
  19219. </member>
  19220. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
  19221. <summary>
  19222. Transforms a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry.
  19223. </summary>
  19224. <param name="geom">The <c>MultiPolygon</c> to transform</param>
  19225. <param name="parent">The parent geometry</param>
  19226. <returns>A <c>MultiPolygon</c></returns>
  19227. </member>
  19228. <member name="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformGeometryCollection(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Geometry)">
  19229. <summary>
  19230. Transforms a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry.
  19231. </summary>
  19232. <param name="geom">The <c>GeometryCollection</c> to transform</param>
  19233. <param name="parent">The parent geometry</param>
  19234. <returns>A <c>GeometryCollection</c></returns>
  19235. </member>
  19236. <member name="T:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter">
  19237. <summary>
  19238. Extracts all the 1-dimensional (<see cref="T:NetTopologySuite.Geometries.LineString"/>) components from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  19239. For polygonal geometries, this will extract all the component <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s.
  19240. If desired, <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s can be forced to be returned as <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
  19241. </summary>
  19242. </member>
  19243. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},``0)">
  19244. <summary>
  19245. Extracts the linear components from a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
  19246. and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
  19247. </summary>
  19248. <param name="geoms">The geometry from which to extract linear components</param>
  19249. <param name="lines">The Collection to add the extracted linear components to</param>
  19250. <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
  19251. </member>
  19252. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},``0,System.Boolean)">
  19253. <summary>
  19254. Extracts the linear components from a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
  19255. and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
  19256. </summary>
  19257. <param name="geoms">The geometry from which to extract linear components</param>
  19258. <param name="lines">The Collection to add the extracted linear components to</param>
  19259. <param name="forceToLineString"></param>
  19260. <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
  19261. </member>
  19262. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0)">
  19263. <summary>
  19264. Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19265. and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
  19266. </summary>
  19267. <param name="geom">The geometry from which to extract linear components</param>
  19268. <param name="lines">The Collection to add the extracted linear components to</param>
  19269. <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
  19270. </member>
  19271. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0,System.Boolean)">
  19272. <summary>
  19273. Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19274. and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
  19275. </summary>
  19276. <param name="geom">The geometry from which to extract linear components</param>
  19277. <param name="lines">The Collection to add the extracted linear components to</param>
  19278. <param name="forceToLineString"></param>
  19279. <returns>The Collection of linear components (LineStrings or LinearRings)</returns>
  19280. </member>
  19281. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines(NetTopologySuite.Geometries.Geometry)">
  19282. <summary>
  19283. Extracts the linear components from a single point.
  19284. If more than one point is to be processed, it is more
  19285. efficient to create a single <c>LineExtracterFilter</c> instance
  19286. and pass it to multiple geometries.
  19287. </summary>
  19288. <param name="geom">The point from which to extract linear components.</param>
  19289. <returns>The list of linear components.</returns>
  19290. </member>
  19291. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetLines(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  19292. <summary>
  19293. Extracts the linear components from a single geometry.
  19294. If more than one geometry is to be processed, it is more
  19295. efficient to create a single <see cref="T:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter"/> instance
  19296. and pass it to multiple geometries.
  19297. </summary>
  19298. <param name="geom">The geometry from which to extract linear components</param>
  19299. <param name="forceToLineString"><c>true</c> if <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s should be converted to <see cref="T:NetTopologySuite.Geometries.LineString"/>s</param>
  19300. <returns>The list of linear components</returns>
  19301. </member>
  19302. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry)">
  19303. <summary>
  19304. Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19305. and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  19306. </summary>
  19307. <param name="geom">The geometry from which to extract</param>
  19308. <returns>A linear geometry</returns>
  19309. </member>
  19310. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  19311. <summary>
  19312. Extracts the linear components from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19313. and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  19314. </summary>
  19315. <param name="geom">The geometry from which to extract</param>
  19316. <param name="forceToLineString"><c>true</c> if <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s should be converted to <see cref="T:NetTopologySuite.Geometries.LineString"/>s</param>
  19317. <returns>A linear geometry</returns>
  19318. </member>
  19319. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  19320. <summary>
  19321. Constructs a LineExtracterFilter with a list in which to store LineStrings found.
  19322. </summary>
  19323. <param name="lines"></param>
  19324. </member>
  19325. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},System.Boolean)">
  19326. <summary>
  19327. Constructs a LineExtracterFilter with a list in which to store LineStrings found.
  19328. </summary>
  19329. <param name="lines"></param>
  19330. <param name="isForcedToLineString"></param>
  19331. </member>
  19332. <member name="P:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.IsForcedToLineString">
  19333. <summary>
  19334. </summary>
  19335. </member>
  19336. <member name="M:NetTopologySuite.Geometries.Utilities.LinearComponentExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
  19337. <summary>
  19338. </summary>
  19339. <param name="geom"></param>
  19340. </member>
  19341. <member name="T:NetTopologySuite.Geometries.Utilities.LineStringExtracter">
  19342. <summary>
  19343. Extracts all the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  19344. </summary>
  19345. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
  19346. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
  19347. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
  19348. </member>
  19349. <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetLines``1(NetTopologySuite.Geometries.Geometry,``0)">
  19350. <summary>
  19351. Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19352. and adds them to the<see cref="T:System.Collections.Generic.ICollection`1"/>.
  19353. </summary>
  19354. <param name="geom">The geometry from which to extract</param>
  19355. <param name="lines">The list to add the extracted elements to</param>
  19356. <returns>The <paramref name="lines"/> list argument</returns>
  19357. </member>
  19358. <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetLines(NetTopologySuite.Geometries.Geometry)">
  19359. <summary>
  19360. Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19361. and returns them in a <see cref="T:System.Collections.Generic.List`1"/>.
  19362. </summary>
  19363. <param name="geom">The geometry from which to extract</param>
  19364. <returns>A list containing the linear elements</returns>
  19365. </member>
  19366. <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.GetGeometry(NetTopologySuite.Geometries.Geometry)">
  19367. <summary>
  19368. Extracts the <see cref="T:NetTopologySuite.Geometries.LineString"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19369. and returns them as either a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  19370. </summary>
  19371. <param name="geom">The geometry from which to extract</param>
  19372. <returns>A linear geometry</returns>
  19373. </member>
  19374. <member name="M:NetTopologySuite.Geometries.Utilities.LineStringExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  19375. <summary>
  19376. Constructs a filter with a list in which to store the elements found.
  19377. </summary>
  19378. </member>
  19379. <member name="T:NetTopologySuite.Geometries.Utilities.Matrix">
  19380. <summary>
  19381. Implements some 2D matrix operations (in particular, solving systems of linear equations).
  19382. </summary>
  19383. <author>Martin Davis</author>
  19384. </member>
  19385. <member name="M:NetTopologySuite.Geometries.Utilities.Matrix.Solve(System.Double[][],System.Double[])">
  19386. <summary>
  19387. Solves a system of equations using Gaussian Elimination.<br/>
  19388. In order to avoid overhead the algorithm runs in-place
  19389. on A - if A should not be modified the client must supply a copy.
  19390. </summary>
  19391. <param name="a">A an nxn matrix in row/column order )modified by this method)</param>
  19392. <param name="b">A vector of length n</param>
  19393. <exception cref="T:System.ArgumentException">if the matrix is the wrong size</exception>
  19394. <returns>
  19395. <list type="bullet">
  19396. <item><description>A vector containing the solution (if any)</description></item>
  19397. <item><description><c>null</c> if the system has no or no unique solution</description></item>
  19398. </list>
  19399. </returns>
  19400. </member>
  19401. <member name="T:NetTopologySuite.Geometries.Utilities.NoninvertibleTransformationException">
  19402. <summary>
  19403. Indicates that an <see cref="T:NetTopologySuite.Geometries.Utilities.AffineTransformation"/> is non-invertible.
  19404. </summary>
  19405. <author>Martin Davis</author>
  19406. </member>
  19407. <member name="T:NetTopologySuite.Geometries.Utilities.PointExtracter">
  19408. <summary>
  19409. Extracts all the 0-dimensional (<c>Point</c>) components from a <c>Geometry</c>.
  19410. </summary>
  19411. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
  19412. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
  19413. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
  19414. </member>
  19415. <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.GetPoints``1(NetTopologySuite.Geometries.Geometry,``0)">
  19416. <summary>
  19417. Extracts the <see cref="T:NetTopologySuite.Geometries.Point"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.ICollection`1"/>.
  19418. </summary>
  19419. <param name="geom">The geometry from which to extract</param>
  19420. <param name="list">The list to add the extracted elements to</param>
  19421. <returns></returns>
  19422. </member>
  19423. <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.GetPoints(NetTopologySuite.Geometries.Geometry)">
  19424. <summary>
  19425. Extracts the <see cref="T:NetTopologySuite.Geometries.Point"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  19426. </summary>
  19427. <param name="geom">the geometry from which to extract</param>
  19428. </member>
  19429. <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  19430. <summary>
  19431. Constructs a PointExtracterFilter with a list in which to store Points found.
  19432. </summary>
  19433. <param name="pts"></param>
  19434. </member>
  19435. <member name="M:NetTopologySuite.Geometries.Utilities.PointExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
  19436. <summary>
  19437. </summary>
  19438. <param name="geom"></param>
  19439. </member>
  19440. <member name="T:NetTopologySuite.Geometries.Utilities.PolygonalExtracter">
  19441. <summary>
  19442. .
  19443. </summary>
  19444. </member>
  19445. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonalExtracter.GetPolygonals``1(NetTopologySuite.Geometries.Geometry,``0)">
  19446. <summary>
  19447. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19448. and adds them to the provided list.
  19449. </summary>
  19450. <param name="geom">The geometry from which to extract</param>
  19451. <param name="list">The list to add the extracted elements to</param>
  19452. </member>
  19453. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonalExtracter.GetPolygonals``1(NetTopologySuite.Geometries.Geometry)">
  19454. <summary>
  19455. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> and <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  19456. and returns them in a list.
  19457. </summary>
  19458. <param name="geom">The geometry from which to extract</param>
  19459. </member>
  19460. <member name="T:NetTopologySuite.Geometries.Utilities.PolygonExtracter">
  19461. <summary>
  19462. Extracts all the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  19463. </summary>
  19464. <seealso cref="T:NetTopologySuite.Geometries.Utilities.GeometryExtracter"/>
  19465. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter"/>
  19466. <seealso cref="T:NetTopologySuite.Geometries.Utilities.Extracter`1"/>
  19467. </member>
  19468. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.GetPolygons(NetTopologySuite.Geometries.Geometry,System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  19469. <summary>
  19470. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> and adds them to the provided <see cref="T:System.Collections.Generic.IList`1"/>.
  19471. </summary>
  19472. <param name="geom">The geometry from which to extract</param>
  19473. <param name="list">The list to add the extracted elements to</param>
  19474. <returns></returns>
  19475. </member>
  19476. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.GetPolygons(NetTopologySuite.Geometries.Geometry)">
  19477. <summary>
  19478. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/> elements from a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> and returns them in a <see cref="T:System.Collections.Generic.IList`1"/>.
  19479. </summary>
  19480. <param name="geom">The geometry from which to extract</param>
  19481. </member>
  19482. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  19483. <summary>
  19484. Constructs a PolygonExtracterFilter with a list in which to store Polygons found.
  19485. </summary>
  19486. <param name="comps"></param>
  19487. </member>
  19488. <member name="M:NetTopologySuite.Geometries.Utilities.PolygonExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
  19489. <summary>
  19490. </summary>
  19491. <param name="geom"></param>
  19492. </member>
  19493. <member name="T:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor">
  19494. <summary>
  19495. A visitor to <see cref="T:NetTopologySuite.Geometries.Geometry"/> elements which components, which
  19496. allows short-circuiting when a defined condition holds.
  19497. </summary>
  19498. </member>
  19499. <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.ApplyTo(NetTopologySuite.Geometries.Geometry)">
  19500. <summary>
  19501. </summary>
  19502. <param name="geom"></param>
  19503. </member>
  19504. <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
  19505. <summary>
  19506. </summary>
  19507. <param name="element"></param>
  19508. </member>
  19509. <member name="M:NetTopologySuite.Geometries.Utilities.ShortCircuitedGeometryVisitor.IsDone">
  19510. <summary>
  19511. Reports whether visiting components can be terminated.
  19512. Once this method returns <see langword="true"/>, it must
  19513. continue to return <see langword="true"/> on every subsequent call.
  19514. </summary>
  19515. <returns>
  19516. <see langword="true"/> if visiting can be terminated.
  19517. </returns>
  19518. </member>
  19519. <member name="T:NetTopologySuite.Geometries.Utilities.SineStarFactory">
  19520. <summary>
  19521. Creates geometries which are shaped like multi-armed stars with each arm shaped like a sine wave.
  19522. These kinds of geometries are useful as a more complex geometry for testing algorithms.
  19523. </summary>
  19524. <author>
  19525. Martin Davis
  19526. </author>
  19527. </member>
  19528. <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.Create(NetTopologySuite.Geometries.Coordinate,System.Double,System.Int32,System.Int32,System.Double)">
  19529. <summary>
  19530. Creates a sine star with the given parameters.
  19531. </summary>
  19532. <param name="origin">The origin point.</param>
  19533. <param name="size">The size of the star.</param>
  19534. <param name="nPts">The number of points in the star.</param>
  19535. <param name="nArms">The number of arms to generate.</param>
  19536. <param name="armLengthRatio">The arm length ratio.</param>
  19537. <returns>A sine star shape.</returns>
  19538. </member>
  19539. <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.#ctor">
  19540. <summary>
  19541. Creates a factory which will create sine stars using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  19542. </summary>
  19543. </member>
  19544. <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  19545. <summary>
  19546. Creates a factory which will create sine stars using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  19547. </summary>
  19548. <param name="geomFact">The factory to use</param>
  19549. </member>
  19550. <member name="P:NetTopologySuite.Geometries.Utilities.SineStarFactory.NumArms">
  19551. <summary>Gets/Sets the number of arms in the star</summary>
  19552. </member>
  19553. <member name="P:NetTopologySuite.Geometries.Utilities.SineStarFactory.ArmLengthRatio">
  19554. <summary>
  19555. Gets or sets the ratio of the length of each arm to the radius of the star.
  19556. A smaller number makes the arms shorter.
  19557. </summary>
  19558. <remarks>Value should be between 0.0 and 1.0</remarks>
  19559. </member>
  19560. <member name="M:NetTopologySuite.Geometries.Utilities.SineStarFactory.CreateSineStar">
  19561. <summary>
  19562. Generates the geometry for the sine star
  19563. </summary>
  19564. <returns>The geometry representing the sine star</returns>
  19565. </member>
  19566. <member name="T:NetTopologySuite.GeometriesGraph.Depth">
  19567. <summary>
  19568. A Depth object records the topological depth of the sides
  19569. of an Edge for up to two Geometries.
  19570. </summary>
  19571. </member>
  19572. <member name="F:NetTopologySuite.GeometriesGraph.Depth.null">
  19573. <summary>
  19574. </summary>
  19575. </member>
  19576. <member name="M:NetTopologySuite.GeometriesGraph.Depth.DepthAtLocation(NetTopologySuite.Geometries.Location)">
  19577. <summary>
  19578. </summary>
  19579. <param name="_location"></param>
  19580. <returns></returns>
  19581. </member>
  19582. <member name="M:NetTopologySuite.GeometriesGraph.Depth.#ctor">
  19583. <summary>
  19584. </summary>
  19585. </member>
  19586. <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDepth(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
  19587. <summary>
  19588. </summary>
  19589. <param name="geomIndex"></param>
  19590. <param name="posIndex"></param>
  19591. <returns></returns>
  19592. </member>
  19593. <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDepth(System.Int32,NetTopologySuite.Geometries.Position)">
  19594. <summary>
  19595. </summary>
  19596. <param name="geomIndex"></param>
  19597. <param name="posIndex"></param>
  19598. <returns></returns>
  19599. </member>
  19600. <member name="M:NetTopologySuite.GeometriesGraph.Depth.SetDepth(System.Int32,NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
  19601. <summary>
  19602. </summary>
  19603. <param name="geomIndex"></param>
  19604. <param name="posIndex"></param>
  19605. <param name="depthValue"></param>
  19606. </member>
  19607. <member name="M:NetTopologySuite.GeometriesGraph.Depth.SetDepth(System.Int32,NetTopologySuite.Geometries.Position,System.Int32)">
  19608. <summary>
  19609. </summary>
  19610. <param name="geomIndex"></param>
  19611. <param name="posIndex"></param>
  19612. <param name="depthValue"></param>
  19613. </member>
  19614. <member name="P:NetTopologySuite.GeometriesGraph.Depth.Item(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
  19615. <summary>
  19616. Calls GetDepth and SetDepth.
  19617. </summary>
  19618. <param name="geomIndex"></param>
  19619. <param name="posIndex"></param>
  19620. <returns></returns>
  19621. </member>
  19622. <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
  19623. <summary>
  19624. </summary>
  19625. <param name="geomIndex"></param>
  19626. <param name="posIndex"></param>
  19627. <returns></returns>
  19628. </member>
  19629. <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetLocation(System.Int32,NetTopologySuite.Geometries.Position)">
  19630. <summary>
  19631. </summary>
  19632. <param name="geomIndex"></param>
  19633. <param name="posIndex"></param>
  19634. <returns></returns>
  19635. </member>
  19636. <member name="M:NetTopologySuite.GeometriesGraph.Depth.Add(System.Int32,NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
  19637. <summary>
  19638. </summary>
  19639. <param name="geomIndex"></param>
  19640. <param name="posIndex"></param>
  19641. <param name="_location"></param>
  19642. </member>
  19643. <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull">
  19644. <summary>
  19645. A Depth object is null (has never been initialized) if all depths are null.
  19646. </summary>
  19647. <returns><c>true</c> if depth is null (has never been initialized)</returns>
  19648. </member>
  19649. <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32)">
  19650. <summary>
  19651. </summary>
  19652. <param name="geomIndex"></param>
  19653. <returns></returns>
  19654. </member>
  19655. <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
  19656. <summary>
  19657. </summary>
  19658. <param name="geomIndex"></param>
  19659. <param name="posIndex"></param>
  19660. <returns></returns>
  19661. </member>
  19662. <member name="M:NetTopologySuite.GeometriesGraph.Depth.IsNull(System.Int32,NetTopologySuite.Geometries.Position)">
  19663. <summary>
  19664. </summary>
  19665. <param name="geomIndex"></param>
  19666. <param name="posIndex"></param>
  19667. <returns></returns>
  19668. </member>
  19669. <member name="M:NetTopologySuite.GeometriesGraph.Depth.Add(NetTopologySuite.GeometriesGraph.Label)">
  19670. <summary>
  19671. </summary>
  19672. <param name="lbl"></param>
  19673. </member>
  19674. <member name="M:NetTopologySuite.GeometriesGraph.Depth.GetDelta(System.Int32)">
  19675. <summary>
  19676. </summary>
  19677. <param name="geomIndex"></param>
  19678. <returns></returns>
  19679. </member>
  19680. <member name="M:NetTopologySuite.GeometriesGraph.Depth.Normalize">
  19681. <summary>
  19682. Normalize the depths for each point, if they are non-null.
  19683. A normalized depth
  19684. has depth values in the set { 0, 1 }.
  19685. Normalizing the depths
  19686. involves reducing the depths by the same amount so that at least
  19687. one of them is 0. If the remaining value is > 0, it is set to 1.
  19688. </summary>
  19689. </member>
  19690. <member name="M:NetTopologySuite.GeometriesGraph.Depth.ToString">
  19691. <summary>
  19692. </summary>
  19693. <returns></returns>
  19694. </member>
  19695. <member name="T:NetTopologySuite.GeometriesGraph.DirectedEdge">
  19696. <summary>
  19697. </summary>
  19698. </member>
  19699. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.DepthFactor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  19700. <summary>
  19701. Computes the factor for the change in depth when moving from one location to another.
  19702. E.g. if crossing from the <see cref="F:NetTopologySuite.Geometries.Location.Interior"/> to the <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>
  19703. the depth decreases, so the factor is -1.
  19704. </summary>
  19705. <param name="currLocation">The current location</param>
  19706. <param name="nextLocation">The next location</param>
  19707. <returns>Change of depth moving from <paramref name="currLocation"/> to <paramref name="nextLocation"/></returns>
  19708. </member>
  19709. <member name="F:NetTopologySuite.GeometriesGraph.DirectedEdge._depth">
  19710. <summary>
  19711. The depth of each side (position) of this edge.
  19712. The 0 element of the array is never used.
  19713. </summary>
  19714. </member>
  19715. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.#ctor(NetTopologySuite.GeometriesGraph.Edge,System.Boolean)">
  19716. <summary>
  19717. </summary>
  19718. <param name="edge"></param>
  19719. <param name="isForward"></param>
  19720. </member>
  19721. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.InResult">
  19722. <summary>
  19723. </summary>
  19724. </member>
  19725. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsInResult">
  19726. <summary>
  19727. </summary>
  19728. </member>
  19729. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Visited">
  19730. <summary>
  19731. </summary>
  19732. </member>
  19733. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsVisited">
  19734. <summary>
  19735. </summary>
  19736. </member>
  19737. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.EdgeRing">
  19738. <summary>
  19739. </summary>
  19740. </member>
  19741. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.MinEdgeRing">
  19742. <summary>
  19743. </summary>
  19744. </member>
  19745. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.GetDepth(NetTopologySuite.GeometriesGraph.Positions)">
  19746. <summary>
  19747. </summary>
  19748. <param name="position"></param>
  19749. <returns></returns>
  19750. </member>
  19751. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.GetDepth(NetTopologySuite.Geometries.Position)">
  19752. <summary>
  19753. </summary>
  19754. <param name="position"></param>
  19755. <returns></returns>
  19756. </member>
  19757. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetDepth(NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
  19758. <summary>
  19759. </summary>
  19760. <param name="position"></param>
  19761. <param name="depthVal"></param>
  19762. </member>
  19763. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetDepth(NetTopologySuite.Geometries.Position,System.Int32)">
  19764. <summary>
  19765. Set depth for a position
  19766. </summary>
  19767. <param name="position">The position to update</param>
  19768. <param name="depthVal">The depth at the provided position</param>
  19769. </member>
  19770. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.DepthDelta">
  19771. <summary>
  19772. </summary>
  19773. </member>
  19774. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.VisitedEdge">
  19775. <summary>
  19776. Gets or sets a value indicating if both Visited
  19777. and Sym.Visited are <c>true</c>.
  19778. <para/>
  19779. Setting the property marks both DirectedEdges attached to a given Edge.
  19780. <para/>
  19781. This is used for edges corresponding to lines, which will only
  19782. appear oriented in a single direction in the result.
  19783. </summary>
  19784. <returns></returns>
  19785. </member>
  19786. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsForward">
  19787. <summary>
  19788. </summary>
  19789. </member>
  19790. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Sym">
  19791. <summary>
  19792. </summary>
  19793. </member>
  19794. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.Next">
  19795. <summary>
  19796. </summary>
  19797. </member>
  19798. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.NextMin">
  19799. <summary>
  19800. </summary>
  19801. </member>
  19802. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsLineEdge">
  19803. <summary>
  19804. Gets a value indicating if this edge is a line edge.
  19805. <para/>It is if
  19806. <list type="bullet">
  19807. <item><description>at least one of the labels is a line label</description></item>
  19808. <item><description>any labels which are not line labels have all Location = Exterior.</description></item>
  19809. </list>
  19810. </summary>
  19811. <returns><c>true</c> if edge is a line edge</returns>
  19812. </member>
  19813. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdge.IsInteriorAreaEdge">
  19814. <summary>
  19815. This is an interior Area edge if
  19816. its label is an Area label for both Geometries
  19817. and for each Geometry both sides are in the interior.
  19818. </summary>
  19819. <returns><c>true</c> if this is an interior Area edge.</returns>
  19820. </member>
  19821. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.ComputeDirectedLabel">
  19822. <summary>
  19823. Compute the label in the appropriate orientation for this DirEdge.
  19824. </summary>
  19825. </member>
  19826. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetEdgeDepths(NetTopologySuite.GeometriesGraph.Positions,System.Int32)">
  19827. <summary>
  19828. Set both edge depths.
  19829. One depth for a given side is provided.
  19830. The other is computed depending on the Location
  19831. transition and the depthDelta of the edge.
  19832. </summary>
  19833. <param name="position">The position to update</param>
  19834. <param name="depth">The depth at the provided position</param>
  19835. </member>
  19836. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.SetEdgeDepths(NetTopologySuite.Geometries.Position,System.Int32)">
  19837. <summary>
  19838. Set both edge depths.
  19839. One depth for a given side is provided.
  19840. The other is computed depending on the Location
  19841. transition and the depthDelta of the edge.
  19842. </summary>
  19843. <param name="position">The position to update</param>
  19844. <param name="depth">The depth at the provided position</param>
  19845. </member>
  19846. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.Write(System.IO.StreamWriter)">
  19847. <summary>
  19848. </summary>
  19849. <param name="outstream"></param>
  19850. </member>
  19851. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdge.WriteEdge(System.IO.StreamWriter)">
  19852. <summary>
  19853. </summary>
  19854. <param name="outstream"></param>
  19855. </member>
  19856. <member name="T:NetTopologySuite.GeometriesGraph.DirectedEdgeStar">
  19857. <summary>
  19858. A DirectedEdgeStar is an ordered list of outgoing DirectedEdges around a node.
  19859. It supports labelling the edges as well as linking the edges to form both
  19860. MaximalEdgeRings and MinimalEdgeRings.
  19861. </summary>
  19862. </member>
  19863. <member name="F:NetTopologySuite.GeometriesGraph.DirectedEdgeStar._resultAreaEdgeList">
  19864. <summary>
  19865. A list of all outgoing edges in the result, in CCW order.
  19866. </summary>
  19867. </member>
  19868. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  19869. <summary>
  19870. Insert a directed edge in the list.
  19871. </summary>
  19872. <param name="ee"></param>
  19873. </member>
  19874. <member name="P:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Label">
  19875. <summary>
  19876. </summary>
  19877. </member>
  19878. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetOutgoingDegree">
  19879. <summary>
  19880. </summary>
  19881. <returns></returns>
  19882. </member>
  19883. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetOutgoingDegree(NetTopologySuite.GeometriesGraph.EdgeRing)">
  19884. <summary>
  19885. </summary>
  19886. <param name="er"></param>
  19887. <returns></returns>
  19888. </member>
  19889. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetRightmostEdge">
  19890. <summary>
  19891. </summary>
  19892. <returns></returns>
  19893. </member>
  19894. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeLabelling(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
  19895. <summary>
  19896. Compute the labelling for all dirEdges in this star, as well
  19897. as the overall labelling.
  19898. </summary>
  19899. <param name="geom"></param>
  19900. </member>
  19901. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.MergeSymLabels">
  19902. <summary>
  19903. For each dirEdge in the star, merge the label .
  19904. </summary>
  19905. </member>
  19906. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.UpdateLabelling(NetTopologySuite.GeometriesGraph.Label)">
  19907. <summary>
  19908. Update incomplete dirEdge labels from the labeling for the node.
  19909. </summary>
  19910. <param name="nodeLabel">The label to apply</param>
  19911. </member>
  19912. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.GetResultAreaEdges">
  19913. <summary>
  19914. </summary>
  19915. <returns></returns>
  19916. </member>
  19917. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkResultDirectedEdges">
  19918. <summary>
  19919. Traverse the star of DirectedEdges, linking the included edges together.
  19920. To link two dirEdges, the next pointer for an incoming dirEdge
  19921. is set to the next outgoing edge.
  19922. DirEdges are only linked if:
  19923. they belong to an area (i.e. they have sides)
  19924. they are marked as being in the result
  19925. Edges are linked in CCW order (the order they are stored).
  19926. This means that rings have their face on the Right
  19927. (in other words, the topological location of the face is given by the RHS label of the DirectedEdge).
  19928. PRECONDITION: No pair of dirEdges are both marked as being in the result.
  19929. </summary>
  19930. </member>
  19931. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkMinimalDirectedEdges(NetTopologySuite.GeometriesGraph.EdgeRing)">
  19932. <summary>
  19933. </summary>
  19934. <param name="er"></param>
  19935. </member>
  19936. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.LinkAllDirectedEdges">
  19937. <summary>
  19938. </summary>
  19939. </member>
  19940. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.FindCoveredLineEdges">
  19941. <summary>
  19942. Traverse the star of edges, maintaining the current location in the result
  19943. area at this node (if any).
  19944. If any L edges are found in the interior of the result, mark them as covered.
  19945. </summary>
  19946. </member>
  19947. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  19948. <summary>
  19949. </summary>
  19950. <param name="de"></param>
  19951. </member>
  19952. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.ComputeDepths(System.Int32,System.Int32,System.Int32)">
  19953. <summary>
  19954. Compute the DirectedEdge depths for a subsequence of the edge array.
  19955. </summary>
  19956. <returns>The last depth assigned (from the R side of the last edge visited).</returns>
  19957. </member>
  19958. <member name="M:NetTopologySuite.GeometriesGraph.DirectedEdgeStar.Write(System.IO.StreamWriter)">
  19959. <summary>
  19960. </summary>
  19961. <param name="outstream"></param>
  19962. </member>
  19963. <member name="T:NetTopologySuite.GeometriesGraph.Edge">
  19964. <summary>
  19965. </summary>
  19966. </member>
  19967. <member name="M:NetTopologySuite.GeometriesGraph.Edge.UpdateIM(NetTopologySuite.GeometriesGraph.Label,NetTopologySuite.Geometries.IntersectionMatrix)">
  19968. <summary>
  19969. Updates an IM from the label for an edge.
  19970. Handles edges from both L and A geometries.
  19971. </summary>
  19972. <param name="im">An intersection matrix</param>
  19973. <param name="label">A label</param>
  19974. </member>
  19975. <member name="M:NetTopologySuite.GeometriesGraph.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Label)">
  19976. <summary>
  19977. </summary>
  19978. <param name="pts"></param>
  19979. <param name="label"></param>
  19980. </member>
  19981. <member name="M:NetTopologySuite.GeometriesGraph.Edge.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  19982. <summary>
  19983. </summary>
  19984. <param name="pts"></param>
  19985. </member>
  19986. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Points">
  19987. <summary>
  19988. </summary>
  19989. </member>
  19990. <member name="P:NetTopologySuite.GeometriesGraph.Edge.NumPoints">
  19991. <summary>
  19992. </summary>
  19993. </member>
  19994. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Name">
  19995. <summary>
  19996. </summary>
  19997. </member>
  19998. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Coordinates">
  19999. <summary>
  20000. </summary>
  20001. </member>
  20002. <member name="M:NetTopologySuite.GeometriesGraph.Edge.GetCoordinate(System.Int32)">
  20003. <summary>
  20004. </summary>
  20005. <param name="i"></param>
  20006. <returns></returns>
  20007. </member>
  20008. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Coordinate">
  20009. <summary>
  20010. </summary>
  20011. </member>
  20012. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Envelope">
  20013. <summary>
  20014. </summary>
  20015. </member>
  20016. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Depth">
  20017. <summary>
  20018. </summary>
  20019. </member>
  20020. <member name="P:NetTopologySuite.GeometriesGraph.Edge.DepthDelta">
  20021. <summary>
  20022. The depthDelta is the change in depth as an edge is crossed from R to L.
  20023. </summary>
  20024. <returns>The change in depth as the edge is crossed from R to L.</returns>
  20025. </member>
  20026. <member name="P:NetTopologySuite.GeometriesGraph.Edge.MaximumSegmentIndex">
  20027. <summary>
  20028. </summary>
  20029. </member>
  20030. <member name="P:NetTopologySuite.GeometriesGraph.Edge.EdgeIntersectionList">
  20031. <summary>
  20032. </summary>
  20033. </member>
  20034. <member name="P:NetTopologySuite.GeometriesGraph.Edge.MonotoneChainEdge">
  20035. <summary>
  20036. </summary>
  20037. </member>
  20038. <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsClosed">
  20039. <summary>
  20040. </summary>
  20041. </member>
  20042. <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsCollapsed">
  20043. <summary>
  20044. An Edge is collapsed if it is an Area edge and it consists of
  20045. two segments which are equal and opposite (eg a zero-width V).
  20046. </summary>
  20047. <returns><c>true</c> if edge is consisting of two segments
  20048. which are equal and of oppose orientation (Zero-width V area edge)
  20049. </returns>
  20050. </member>
  20051. <member name="P:NetTopologySuite.GeometriesGraph.Edge.CollapsedEdge">
  20052. <summary>
  20053. </summary>
  20054. </member>
  20055. <member name="P:NetTopologySuite.GeometriesGraph.Edge.Isolated">
  20056. <summary>
  20057. </summary>
  20058. </member>
  20059. <member name="P:NetTopologySuite.GeometriesGraph.Edge.IsIsolated">
  20060. <summary>
  20061. </summary>
  20062. </member>
  20063. <member name="M:NetTopologySuite.GeometriesGraph.Edge.AddIntersections(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32)">
  20064. <summary>
  20065. Adds EdgeIntersections for one or both
  20066. intersections found for a segment of an edge to the edge intersection list.
  20067. </summary>
  20068. <param name="li">A line intersector</param>
  20069. <param name="segmentIndex">A segment index</param>
  20070. <param name="geomIndex">A geometry index</param>
  20071. </member>
  20072. <member name="M:NetTopologySuite.GeometriesGraph.Edge.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)">
  20073. <summary>
  20074. Add an EdgeIntersection for intersection intIndex.
  20075. An intersection that falls exactly on a vertex of the edge is normalized
  20076. to use the higher of the two possible segmentIndexes.
  20077. </summary>
  20078. <param name="li">A line intersector</param>
  20079. <param name="segmentIndex">A segment index</param>
  20080. <param name="geomIndex">A geometry index</param>
  20081. <param name="intIndex">The intersection index (0 or 1)</param>
  20082. </member>
  20083. <member name="M:NetTopologySuite.GeometriesGraph.Edge.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  20084. <summary>
  20085. Update the IM with the contribution for this component.
  20086. A component only contributes if it has a labelling for both parent geometries.
  20087. </summary>
  20088. <param name="im"></param>
  20089. </member>
  20090. <member name="M:NetTopologySuite.GeometriesGraph.Edge.Equals(System.Object)">
  20091. <summary>
  20092. Equals is defined to be:
  20093. e1 equals e2
  20094. if
  20095. the coordinates of e1 are the same or the reverse of the coordinates in e2.
  20096. </summary>
  20097. <param name="o"></param>
  20098. </member>
  20099. <member name="M:NetTopologySuite.GeometriesGraph.Edge.GetHashCode">
  20100. <inheritdoc cref="M:System.Object.GetHashCode"/>
  20101. </member>
  20102. <member name="M:NetTopologySuite.GeometriesGraph.Edge.Equals(NetTopologySuite.GeometriesGraph.Edge)">
  20103. <summary>
  20104. Equals is defined to be:
  20105. e1 equals e2
  20106. if
  20107. the coordinates of e1 are the same or the reverse of the coordinates in e2.
  20108. </summary>
  20109. <param name="e"></param>
  20110. </member>
  20111. <member name="M:NetTopologySuite.GeometriesGraph.Edge.op_Equality(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge)">
  20112. <summary>
  20113. </summary>
  20114. <param name="obj1"></param>
  20115. <param name="obj2"></param>
  20116. <returns></returns>
  20117. </member>
  20118. <member name="M:NetTopologySuite.GeometriesGraph.Edge.op_Inequality(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge)">
  20119. <summary>
  20120. </summary>
  20121. <param name="obj1"></param>
  20122. <param name="obj2"></param>
  20123. <returns></returns>
  20124. </member>
  20125. <member name="M:NetTopologySuite.GeometriesGraph.Edge.IsPointwiseEqual(NetTopologySuite.GeometriesGraph.Edge)">
  20126. <summary>
  20127. Check if coordinate sequences of the Edges are identical.
  20128. </summary>
  20129. <param name="e">The edge to test</param>
  20130. <returns>
  20131. <c>true</c> if the coordinate sequences of the Edges are identical.
  20132. </returns>
  20133. </member>
  20134. <member name="M:NetTopologySuite.GeometriesGraph.Edge.ToString">
  20135. <inheritdoc cref="M:System.Object.ToString"/>>
  20136. </member>
  20137. <member name="M:NetTopologySuite.GeometriesGraph.Edge.Write(System.IO.TextWriter)">
  20138. <summary>
  20139. </summary>
  20140. <param name="outstream"></param>
  20141. </member>
  20142. <member name="M:NetTopologySuite.GeometriesGraph.Edge.WriteReverse(System.IO.TextWriter)">
  20143. <summary>
  20144. </summary>
  20145. <param name="outstream"></param>
  20146. </member>
  20147. <member name="T:NetTopologySuite.GeometriesGraph.EdgeEnd">
  20148. <summary>
  20149. Models the end of an edge incident on a node.
  20150. </summary>
  20151. <remarks>
  20152. <para>
  20153. EdgeEnds have a direction determined by the direction of the ray from the initial
  20154. point to the next point.
  20155. </para>
  20156. <para>
  20157. EdgeEnds are IComparable under the ordering "a has a greater angle with the x-axis than b".
  20158. This ordering is used to sort EdgeEnds around a node.
  20159. </para>
  20160. </remarks>
  20161. </member>
  20162. <member name="F:NetTopologySuite.GeometriesGraph.EdgeEnd._label">
  20163. <summary>
  20164. </summary>
  20165. </member>
  20166. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
  20167. <summary>
  20168. </summary>
  20169. <param name="edge"></param>
  20170. </member>
  20171. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  20172. <summary>
  20173. </summary>
  20174. <param name="edge"></param>
  20175. <param name="p0"></param>
  20176. <param name="p1"></param>
  20177. </member>
  20178. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.#ctor(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.Label)">
  20179. <summary>
  20180. </summary>
  20181. <param name="edge"></param>
  20182. <param name="p0"></param>
  20183. <param name="p1"></param>
  20184. <param name="label"></param>
  20185. </member>
  20186. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.Init(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  20187. <summary>
  20188. </summary>
  20189. <param name="p0"></param>
  20190. <param name="p1"></param>
  20191. </member>
  20192. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Edge">
  20193. <summary>
  20194. </summary>
  20195. </member>
  20196. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Label">
  20197. <summary>
  20198. </summary>
  20199. </member>
  20200. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Coordinate">
  20201. <summary>
  20202. </summary>
  20203. </member>
  20204. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.DirectedCoordinate">
  20205. <summary>
  20206. </summary>
  20207. </member>
  20208. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Quadrant">
  20209. <summary>
  20210. </summary>
  20211. </member>
  20212. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.QuadrantEx">
  20213. <summary>
  20214. Gets a value indicating the <c>Quadrant</c> this <c>EdgeEnd</c> lies in.
  20215. </summary>
  20216. </member>
  20217. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Dx">
  20218. <summary>
  20219. </summary>
  20220. </member>
  20221. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Dy">
  20222. <summary>
  20223. </summary>
  20224. </member>
  20225. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEnd.Node">
  20226. <summary>
  20227. </summary>
  20228. </member>
  20229. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.CompareTo(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20230. <summary>
  20231. </summary>
  20232. <param name="e"></param>
  20233. <returns></returns>
  20234. </member>
  20235. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.CompareDirection(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20236. <summary>
  20237. Implements the total order relation:
  20238. a has a greater angle with the positive x-axis than b.
  20239. <para/>
  20240. Using the obvious algorithm of simply computing the angle is not robust,
  20241. since the angle calculation is obviously susceptible to round off.
  20242. <para/>
  20243. A robust algorithm is:
  20244. <list type="bullet">
  20245. <item><description>first compare the quadrant. If the quadrants
  20246. are different, it it trivial to determine which vector is "greater".</description></item>
  20247. <item><description>if the vectors lie in the same quadrant, the computeOrientation function
  20248. can be used to decide the relative orientation of the vectors.</description></item>
  20249. </list>
  20250. </summary>
  20251. <param name="e">An EdgeEnd</param>
  20252. <returns>The <see cref="T:NetTopologySuite.Algorithm.OrientationIndex"/> of <paramref name="e"/> compared to <c>this</c> <see cref="T:NetTopologySuite.GeometriesGraph.EdgeEnd"/>.</returns>
  20253. </member>
  20254. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.ComputeLabel(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  20255. <summary>
  20256. Subclasses should override this if they are using labels
  20257. </summary>
  20258. <param name="boundaryNodeRule"></param>
  20259. </member>
  20260. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.Write(System.IO.StreamWriter)">
  20261. <summary>
  20262. </summary>
  20263. <param name="outstream"></param>
  20264. </member>
  20265. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEnd.ToString">
  20266. <inheritdoc cref="M:System.Object.ToString"/>
  20267. </member>
  20268. <member name="T:NetTopologySuite.GeometriesGraph.EdgeEndStar">
  20269. <summary>
  20270. A EdgeEndStar is an ordered list of EdgeEnds around a node.
  20271. They are maintained in CCW order (starting with the positive x-axis) around the node
  20272. for efficient lookup and topology building.
  20273. </summary>
  20274. </member>
  20275. <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar.edgeMap">
  20276. <summary>
  20277. A map which maintains the edges in sorted order around the node.
  20278. </summary>
  20279. </member>
  20280. <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar.edgeList">
  20281. <summary>
  20282. A list of all outgoing edges in the result, in CCW order.
  20283. </summary>
  20284. </member>
  20285. <member name="F:NetTopologySuite.GeometriesGraph.EdgeEndStar._ptInAreaLocation">
  20286. <summary>
  20287. The location of the point for this star in Geometry i Areas.
  20288. </summary>
  20289. </member>
  20290. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20291. <summary>
  20292. Insert a EdgeEnd into this EdgeEndStar.
  20293. </summary>
  20294. <param name="e">An <c>EdgeEnd</c></param>
  20295. </member>
  20296. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.InsertEdgeEnd(NetTopologySuite.GeometriesGraph.EdgeEnd,NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20297. <summary>
  20298. Insert an EdgeEnd into the map, and clear the edgeList cache,
  20299. since the list of edges has now changed.
  20300. </summary>
  20301. <param name="e">An EdgeEnd</param>
  20302. <param name="obj">An EdgeEnd</param>
  20303. </member>
  20304. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Coordinate">
  20305. <returns>
  20306. The coordinate for the node this star is based at.
  20307. </returns>
  20308. </member>
  20309. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Degree">
  20310. <summary>
  20311. </summary>
  20312. </member>
  20313. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetEnumerator">
  20314. <summary>
  20315. Iterator access to the ordered list of edges is optimized by
  20316. copying the map collection to a list. (This assumes that
  20317. once an iterator is requested, it is likely that insertion into
  20318. the map is complete).
  20319. </summary>
  20320. <returns>Access to ordered list of edges.</returns>
  20321. </member>
  20322. <member name="P:NetTopologySuite.GeometriesGraph.EdgeEndStar.Edges">
  20323. <summary>
  20324. </summary>
  20325. </member>
  20326. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetNextCW(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20327. <summary>
  20328. </summary>
  20329. <param name="ee"></param>
  20330. <returns></returns>
  20331. </member>
  20332. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ComputeLabelling(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
  20333. <summary>
  20334. </summary>
  20335. <param name="geomGraph"></param>
  20336. </member>
  20337. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ComputeEdgeEndLabels(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  20338. <summary>
  20339. </summary>
  20340. </member>
  20341. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.GetLocation(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.GeometryGraph[])">
  20342. <summary>
  20343. </summary>
  20344. <param name="geomIndex"></param>
  20345. <param name="p"></param>
  20346. <param name="geom"></param>
  20347. <returns></returns>
  20348. </member>
  20349. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.IsAreaLabelsConsistent(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  20350. <summary>
  20351. </summary>
  20352. </member>
  20353. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.CheckAreaLabelsConsistent(System.Int32)">
  20354. <summary>
  20355. </summary>
  20356. <param name="geomIndex"></param>
  20357. <returns></returns>
  20358. </member>
  20359. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.PropagateSideLabels(System.Int32)">
  20360. <summary>
  20361. </summary>
  20362. <param name="geomIndex"></param>
  20363. </member>
  20364. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.FindIndex(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  20365. <summary>
  20366. </summary>
  20367. <param name="eSearch"></param>
  20368. <returns></returns>
  20369. </member>
  20370. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.Write(System.IO.StreamWriter)">
  20371. <summary>
  20372. </summary>
  20373. <param name="outstream"></param>
  20374. </member>
  20375. <member name="M:NetTopologySuite.GeometriesGraph.EdgeEndStar.ToString">
  20376. <inheritdoc cref="M:System.Object.ToString"/>>
  20377. </member>
  20378. <member name="T:NetTopologySuite.GeometriesGraph.EdgeIntersection">
  20379. <summary>
  20380. An EdgeIntersection represents a point on an
  20381. edge which intersects with another edge.
  20382. The intersection may either be a single point, or a line segment
  20383. (in which case this point is the start of the line segment)
  20384. The label attached to this intersection point applies to
  20385. the edge from this point forwards, until the next
  20386. intersection or the end of the edge.
  20387. The intersection point must be precise.
  20388. </summary>
  20389. </member>
  20390. <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.Coordinate">
  20391. <summary>
  20392. The point of intersection.
  20393. </summary>
  20394. </member>
  20395. <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.SegmentIndex">
  20396. <summary>
  20397. The index of the containing line segment in the parent edge.
  20398. </summary>
  20399. </member>
  20400. <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersection.Distance">
  20401. <summary>
  20402. The edge distance of this point along the containing line segment.
  20403. </summary>
  20404. </member>
  20405. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.#ctor(NetTopologySuite.Geometries.Coordinate,System.Int32,System.Double)">
  20406. <summary>
  20407. Creates an instance of this class
  20408. </summary>
  20409. <param name="coord">The point of intersection</param>
  20410. <param name="segmentIndex">The index of the containing line segment in the parent edge</param>
  20411. <param name="dist">The edge distance or this point along the containing line segment</param>
  20412. </member>
  20413. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.CompareTo(System.Object)">
  20414. <inheritdoc cref="M:System.IComparable.CompareTo(System.Object)"/>
  20415. </member>
  20416. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.Compare(System.Int32,System.Double)">
  20417. <summary>
  20418. Comparison with segment and distance.
  20419. </summary>
  20420. <param name="segmentIndex">The index of the containing line segment</param>
  20421. <param name="dist">The distance of this point along the containing line segment</param>
  20422. <returns>
  20423. <c>-1</c> this EdgeIntersection is located before the argument location,
  20424. <c>0</c> this EdgeIntersection is at the argument location,
  20425. <c>1</c> this EdgeIntersection is located after the argument location.
  20426. </returns>
  20427. </member>
  20428. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.IsEndPoint(System.Int32)">
  20429. <summary>
  20430. </summary>
  20431. <param name="maxSegmentIndex"></param>
  20432. <returns></returns>
  20433. </member>
  20434. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.Write(System.IO.StreamWriter)">
  20435. <summary>
  20436. </summary>
  20437. <param name="outstream"></param>
  20438. </member>
  20439. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersection.ToString">
  20440. <inheritdoc cref="M:System.Object.ToString"/>
  20441. </member>
  20442. <member name="T:NetTopologySuite.GeometriesGraph.EdgeIntersectionList">
  20443. <summary>
  20444. A list of edge intersections along an Edge.
  20445. </summary>
  20446. </member>
  20447. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
  20448. <summary>
  20449. </summary>
  20450. <param name="edge"></param>
  20451. </member>
  20452. <member name="P:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Count">
  20453. <summary>
  20454. </summary>
  20455. </member>
  20456. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Add(NetTopologySuite.Geometries.Coordinate,System.Int32,System.Double)">
  20457. <summary>
  20458. Adds an intersection into the list, if it isn't already there.
  20459. The input segmentIndex and dist are expected to be normalized.
  20460. </summary>
  20461. <param name="intPt">The point of intersection</param>
  20462. <param name="segmentIndex">The index of the containing line segment in the parent edge</param>
  20463. <param name="dist">The edge distance of this point along the containing line segment</param>
  20464. <returns>The EdgeIntersection found or added.</returns>
  20465. </member>
  20466. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.GetEnumerator">
  20467. <summary>
  20468. Returns an iterator of EdgeIntersections.
  20469. </summary>
  20470. </member>
  20471. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.IsIntersection(NetTopologySuite.Geometries.Coordinate)">
  20472. <summary>
  20473. </summary>
  20474. <param name="pt"></param>
  20475. <returns></returns>
  20476. </member>
  20477. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.AddEndpoints">
  20478. <summary>
  20479. Adds entries for the first and last points of the edge to the list.
  20480. </summary>
  20481. </member>
  20482. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.AddSplitEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
  20483. <summary>
  20484. Creates new edges for all the edges that the intersections in this
  20485. list split the parent edge into.
  20486. Adds the edges to the input list (this is so a single list
  20487. can be used to accumulate all split edges for a Geometry).
  20488. </summary>
  20489. <param name="edgeList"></param>
  20490. </member>
  20491. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.CreateSplitEdge(NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
  20492. <summary>
  20493. Create a new "split edge" with the section of points between
  20494. (and including) the two intersections.
  20495. The label for the new edge is the same as the label for the parent edge.
  20496. </summary>
  20497. <param name="ei0"></param>
  20498. <param name="ei1"></param>
  20499. </member>
  20500. <member name="M:NetTopologySuite.GeometriesGraph.EdgeIntersectionList.Write(System.IO.StreamWriter)">
  20501. <summary>
  20502. </summary>
  20503. <param name="outstream"></param>
  20504. </member>
  20505. <member name="T:NetTopologySuite.GeometriesGraph.EdgeList">
  20506. <summary>
  20507. A EdgeList is a list of Edges. It supports locating edges
  20508. that are point-wise equals to a target edge.
  20509. </summary>
  20510. </member>
  20511. <member name="F:NetTopologySuite.GeometriesGraph.EdgeList._ocaMap">
  20512. <summary>
  20513. An index of the edges, for fast lookup.
  20514. </summary>
  20515. </member>
  20516. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Remove(NetTopologySuite.GeometriesGraph.Edge)">
  20517. <summary>
  20518. Remove the selected Edge element from the list if present.
  20519. </summary>
  20520. <param name="e">Edge element to remove from list</param>
  20521. </member>
  20522. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Add(NetTopologySuite.GeometriesGraph.Edge)">
  20523. <summary>
  20524. Insert an edge unless it is already in the list.
  20525. </summary>
  20526. <param name="e">An <c>Edge</c></param>
  20527. </member>
  20528. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.AddAll(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  20529. <summary>
  20530. </summary>
  20531. <param name="edgeColl"></param>
  20532. </member>
  20533. <member name="P:NetTopologySuite.GeometriesGraph.EdgeList.Edges">
  20534. <summary>
  20535. </summary>
  20536. </member>
  20537. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.FindEqualEdge(NetTopologySuite.GeometriesGraph.Edge)">
  20538. <summary>
  20539. If there is an edge equal to e already in the list, return it.
  20540. Otherwise return null.
  20541. </summary>
  20542. <param name="e">An <c>Edge</c></param>
  20543. <returns>
  20544. The equal edge, if there is one already in the list,
  20545. <c>null</c> otherwise.
  20546. </returns>
  20547. </member>
  20548. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.GetEnumerator">
  20549. <summary>
  20550. </summary>
  20551. <returns></returns>
  20552. </member>
  20553. <member name="P:NetTopologySuite.GeometriesGraph.EdgeList.Item(System.Int32)">
  20554. <summary>
  20555. </summary>
  20556. <param name="index"></param>
  20557. <returns></returns>
  20558. </member>
  20559. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Get(System.Int32)">
  20560. <summary>
  20561. </summary>
  20562. <param name="i"></param>
  20563. <returns></returns>
  20564. </member>
  20565. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.FindEdgeIndex(NetTopologySuite.GeometriesGraph.Edge)">
  20566. <summary>
  20567. If the edge e is already in the list, return its index.
  20568. </summary>
  20569. <param name="e">An <c>Edge</c></param>
  20570. <returns>
  20571. The index, if e is already in the list,
  20572. <c>-1</c> otherwise.
  20573. </returns>
  20574. </member>
  20575. <member name="M:NetTopologySuite.GeometriesGraph.EdgeList.Write(System.IO.StreamWriter)">
  20576. <summary>
  20577. </summary>
  20578. <param name="outstream"></param>
  20579. </member>
  20580. <member name="T:NetTopologySuite.GeometriesGraph.EdgeNodingValidator">
  20581. <summary>
  20582. Validates that a collection of <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/> is correctly noded.
  20583. Throws an appropriate exception if an noding error is found.
  20584. <remarks>
  20585. Uses <see cref="T:NetTopologySuite.Noding.FastNodingValidator"/> to perform the validation.
  20586. </remarks>
  20587. </summary>
  20588. </member>
  20589. <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.CheckValid(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  20590. <summary>
  20591. Checks whether the supplied <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/>s are correctly noded.
  20592. </summary>
  20593. <param name="edges">an enumeration of Edges.</param>
  20594. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the SegmentStrings are not correctly noded</exception>
  20595. </member>
  20596. <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.ToSegmentStrings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  20597. <summary>
  20598. Builds an enumeration of segment strings from the provided <paramref name="edges"/>.
  20599. </summary>
  20600. <param name="edges">An enumeration of <c>Edge</c>s</param>
  20601. <returns>An enumeration of <c>ISegmentString</c>s</returns>
  20602. </member>
  20603. <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  20604. <summary>
  20605. Creates a new validator for the given collection of <see cref="T:NetTopologySuite.GeometriesGraph.Edge"/>s.
  20606. </summary>
  20607. </member>
  20608. <member name="M:NetTopologySuite.GeometriesGraph.EdgeNodingValidator.CheckValid">
  20609. <summary>
  20610. Checks whether the supplied edges are correctly noded.
  20611. </summary>
  20612. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the SegmentStrings are not correctly noded</exception>
  20613. </member>
  20614. <member name="T:NetTopologySuite.GeometriesGraph.EdgeRing">
  20615. <summary>
  20616. </summary>
  20617. </member>
  20618. <member name="F:NetTopologySuite.GeometriesGraph.EdgeRing.startDe">
  20619. <summary>
  20620. The directed edge which starts the list of edges for this EdgeRing.
  20621. </summary>
  20622. </member>
  20623. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.GeometryFactory">
  20624. <summary>
  20625. A <c>GeometryFactory</c> to use.
  20626. </summary>
  20627. </member>
  20628. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
  20629. <summary>
  20630. Creates an instance of this class using the provided <paramref name="start"/> and <paramref name="geometryFactory"/>.
  20631. </summary>
  20632. <param name="start">The start <c>DirectedEdge</c> for the <c>EdgeRing</c> </param>
  20633. <param name="geometryFactory">A <c>GeometryFactory</c></param>
  20634. </member>
  20635. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsIsolated">
  20636. <summary>
  20637. Gets a value indicating if this <c>EdgeRing</c> is isolated
  20638. </summary>
  20639. </member>
  20640. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsHole">
  20641. <summary>
  20642. Gets a value indicating if this <c>EdgeRing</c> is a hole of a <c>Polygon</c>
  20643. </summary>
  20644. </member>
  20645. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.GetCoordinate(System.Int32)">
  20646. <summary>
  20647. Access a <c>Coordinate</c> of this <c>EdgeRing</c> by its index.
  20648. </summary>
  20649. <param name="i">The index of the <c>Coordinate</c></param>
  20650. <returns>The <c>Coordinate</c> at index <paramref name="i"/></returns>
  20651. </member>
  20652. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.LinearRing">
  20653. <summary>
  20654. Gets the geometry representation of this <c>EdgeRing</c>
  20655. </summary>
  20656. </member>
  20657. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Label">
  20658. <summary>
  20659. Gets a value indicating the topological relationship of this <c>EdgeRing</c>
  20660. </summary>
  20661. </member>
  20662. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.IsShell">
  20663. <summary>
  20664. </summary>
  20665. </member>
  20666. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Shell">
  20667. <summary>
  20668. </summary>
  20669. </member>
  20670. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.AddHole(NetTopologySuite.GeometriesGraph.EdgeRing)">
  20671. <summary>
  20672. Add an <c>EdgeRing</c> representing a hole
  20673. </summary>
  20674. <param name="ring">The ring to add</param>
  20675. </member>
  20676. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
  20677. <summary>
  20678. Create the <c>Polygon</c> described by this <c>EdgeRing</c>
  20679. </summary>
  20680. <param name="geometryFactory">The <c>GeometryFactory</c> to use.</param>
  20681. <returns>A <c>Polygon</c></returns>
  20682. </member>
  20683. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputeRing">
  20684. <summary>
  20685. Compute a LinearRing from the point list previously collected.
  20686. Test if the ring is a hole (i.e. if it is CCW) and set the hole flag
  20687. accordingly.
  20688. </summary>
  20689. </member>
  20690. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  20691. <summary>
  20692. </summary>
  20693. <param name="de"></param>
  20694. <returns></returns>
  20695. </member>
  20696. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
  20697. <summary>
  20698. </summary>
  20699. <param name="de"></param>
  20700. <param name="er"></param>
  20701. </member>
  20702. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.Edges">
  20703. <summary>
  20704. Returns the list of DirectedEdges that make up this EdgeRing.
  20705. </summary>
  20706. <returns>A list of <c>DirectedEdge</c>s</returns>
  20707. </member>
  20708. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputePoints(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  20709. <summary>
  20710. Collect all the points from the DirectedEdges of this ring into a contiguous list.
  20711. </summary>
  20712. <param name="start"></param>
  20713. </member>
  20714. <member name="P:NetTopologySuite.GeometriesGraph.EdgeRing.MaxNodeDegree">
  20715. <summary>
  20716. </summary>
  20717. </member>
  20718. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ComputeMaxNodeDegree">
  20719. <summary>
  20720. </summary>
  20721. </member>
  20722. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.SetInResult">
  20723. <summary>
  20724. </summary>
  20725. </member>
  20726. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.MergeLabel(NetTopologySuite.GeometriesGraph.Label)">
  20727. <summary>
  20728. </summary>
  20729. <param name="deLabel"></param>
  20730. </member>
  20731. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.MergeLabel(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
  20732. <summary>
  20733. Merge the RHS label from a DirectedEdge into the label for this EdgeRing.
  20734. The DirectedEdge label may be null. This is acceptable - it results
  20735. from a node which is NOT an intersection node between the Geometries
  20736. (e.g. the end node of a LinearRing). In this case the DirectedEdge label
  20737. does not contribute any information to the overall labelling, and is simply skipped.
  20738. </summary>
  20739. <param name="deLabel"></param>
  20740. <param name="geomIndex"></param>
  20741. </member>
  20742. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.AddPoints(NetTopologySuite.GeometriesGraph.Edge,System.Boolean,System.Boolean)">
  20743. <summary>
  20744. </summary>
  20745. <param name="edge"></param>
  20746. <param name="isForward"></param>
  20747. <param name="isFirstEdge"></param>
  20748. </member>
  20749. <member name="M:NetTopologySuite.GeometriesGraph.EdgeRing.ContainsPoint(NetTopologySuite.Geometries.Coordinate)">
  20750. <summary>
  20751. This method will cause the ring to be computed.
  20752. It will also check any holes, if they have been assigned.
  20753. </summary>
  20754. <param name="p">The point to test</param>
  20755. <returns><c>true</c> if the ring contains point <paramref name="p"/></returns>
  20756. </member>
  20757. <member name="T:NetTopologySuite.GeometriesGraph.GeometryGraph">
  20758. <summary>
  20759. A GeometryGraph is a graph that models a given Geometry.
  20760. </summary>
  20761. </member>
  20762. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.DetermineBoundary(NetTopologySuite.Algorithm.IBoundaryNodeRule,System.Int32)">
  20763. <summary>
  20764. Determine boundary
  20765. </summary>
  20766. <param name="boundaryNodeRule">The boundary node rule to apply for determination of the boundary</param>
  20767. <param name="boundaryCount">The number of component boundaries that a point occurs in.</param>
  20768. <returns><see cref="F:NetTopologySuite.Geometries.Location.Boundary"/> or <see cref="F:NetTopologySuite.Geometries.Location.Interior"/></returns>
  20769. </member>
  20770. <member name="F:NetTopologySuite.GeometriesGraph.GeometryGraph._lineEdgeMap">
  20771. <summary>
  20772. The lineEdgeMap is a map of the linestring components of the
  20773. parentGeometry to the edges which are derived from them.
  20774. This is used to efficiently perform findEdge queries
  20775. </summary>
  20776. </member>
  20777. <member name="F:NetTopologySuite.GeometriesGraph.GeometryGraph._useBoundaryDeterminationRule">
  20778. <summary>
  20779. If this flag is true, the Boundary Determination Rule will used when deciding
  20780. whether nodes are in the boundary or not
  20781. </summary>
  20782. </member>
  20783. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.CreateEdgeSetIntersector">
  20784. <summary>
  20785. </summary>
  20786. <returns></returns>
  20787. </member>
  20788. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.#ctor(System.Int32,NetTopologySuite.Geometries.Geometry)">
  20789. <summary>
  20790. </summary>
  20791. <param name="argIndex"></param>
  20792. <param name="parentGeom"></param>
  20793. </member>
  20794. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.#ctor(System.Int32,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  20795. <summary>
  20796. </summary>
  20797. <param name="argIndex"></param>
  20798. <param name="parentGeom"></param>
  20799. <param name="boundaryNodeRule"></param>
  20800. </member>
  20801. <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.HasTooFewPoints">
  20802. <summary>
  20803. </summary>
  20804. </member>
  20805. <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.InvalidPoint">
  20806. <summary>
  20807. </summary>
  20808. </member>
  20809. <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.Geometry">
  20810. <summary>
  20811. </summary>
  20812. </member>
  20813. <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.BoundaryNodeRule">
  20814. <summary>
  20815. Gets the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> used with this geometry graph.
  20816. </summary>
  20817. </member>
  20818. <member name="P:NetTopologySuite.GeometriesGraph.GeometryGraph.BoundaryNodes">
  20819. <summary>
  20820. </summary>
  20821. </member>
  20822. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.GetBoundaryPoints">
  20823. <summary>
  20824. </summary>
  20825. <returns></returns>
  20826. </member>
  20827. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.FindEdge(NetTopologySuite.Geometries.LineString)">
  20828. <summary>
  20829. </summary>
  20830. <param name="line"></param>
  20831. <returns></returns>
  20832. </member>
  20833. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSplitEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
  20834. <summary>
  20835. </summary>
  20836. <param name="edgelist"></param>
  20837. </member>
  20838. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.Add(NetTopologySuite.Geometries.Geometry)">
  20839. <summary>
  20840. </summary>
  20841. <param name="g"></param>
  20842. </member>
  20843. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPoint(NetTopologySuite.Geometries.Point)">
  20844. <summary>
  20845. Add a Point to the graph.
  20846. </summary>
  20847. <param name="p"></param>
  20848. </member>
  20849. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPolygonRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  20850. <summary>
  20851. Adds a polygon ring to the graph. Empty rings are ignored.
  20852. The left and right topological location arguments assume that the ring is oriented CW.
  20853. If the ring is in the opposite orientation,
  20854. the left and right locations must be interchanged.
  20855. </summary>
  20856. <param name="lr"></param>
  20857. <param name="cwLeft"></param>
  20858. <param name="cwRight"></param>
  20859. </member>
  20860. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPolygon(NetTopologySuite.Geometries.Polygon)">
  20861. <summary>
  20862. </summary>
  20863. <param name="p"></param>
  20864. </member>
  20865. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddLineString(NetTopologySuite.Geometries.LineString)">
  20866. <summary>
  20867. </summary>
  20868. <param name="line"></param>
  20869. </member>
  20870. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddEdge(NetTopologySuite.GeometriesGraph.Edge)">
  20871. <summary>
  20872. Add an Edge computed externally. The label on the Edge is assumed
  20873. to be correct.
  20874. </summary>
  20875. <param name="e">An <c>Edge</c></param>
  20876. </member>
  20877. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddPoint(NetTopologySuite.Geometries.Coordinate)">
  20878. <summary>
  20879. Add a point computed externally. The point is assumed to be a
  20880. Point Geometry part, which has a location of INTERIOR.
  20881. </summary>
  20882. <param name="pt">A <c>Coordinate</c></param>
  20883. </member>
  20884. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSelfNodes(NetTopologySuite.Algorithm.LineIntersector,System.Boolean)">
  20885. <summary>
  20886. Compute self-nodes, taking advantage of the Geometry type to
  20887. minimize the number of intersection tests. (E.g. rings are
  20888. not tested for self-intersection, since they are assumed to be valid).
  20889. </summary>
  20890. <param name="li">The <c>LineIntersector</c> to use.</param>
  20891. <param name="computeRingSelfNodes">If <c>false</c>, intersection checks are optimized to not test rings for self-intersection.</param>
  20892. <returns>The computed SegmentIntersector, containing information about the intersections found.</returns>
  20893. </member>
  20894. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeSelfNodes(NetTopologySuite.Algorithm.LineIntersector,System.Boolean,System.Boolean)">
  20895. <summary>
  20896. Compute self-nodes, taking advantage of the Geometry type to
  20897. minimize the number of intersection tests. (E.g.rings are
  20898. not tested for self-intersection, since they are assumed to be valid).
  20899. </summary >
  20900. <param name="li">The <c>LineIntersector</c> to use</param>
  20901. <param name="computeRingSelfNodes">If <c>false</c>, intersection checks are optimized to not test rings for self-intersection</param>
  20902. <param name="isDoneIfProperInt">Short-circuit the intersection computation if a proper intersection is found</param>
  20903. </member>
  20904. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.ComputeEdgeIntersections(NetTopologySuite.GeometriesGraph.GeometryGraph,NetTopologySuite.Algorithm.LineIntersector,System.Boolean)">
  20905. <summary>
  20906. </summary>
  20907. <param name="g"></param>
  20908. <param name="li"></param>
  20909. <param name="includeProper"></param>
  20910. <returns></returns>
  20911. </member>
  20912. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.InsertPoint(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Location)">
  20913. <summary>
  20914. </summary>
  20915. <param name="argIndex"></param>
  20916. <param name="coord"></param>
  20917. <param name="onLocation"></param>
  20918. </member>
  20919. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.InsertBoundaryPoint(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  20920. <summary>
  20921. Adds candidate boundary points using the current <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
  20922. This is used to add the boundary
  20923. points of dim-1 geometries (Curves/MultiCurves).
  20924. </summary>
  20925. <param name="argIndex"></param>
  20926. <param name="coord"></param>
  20927. </member>
  20928. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddSelfIntersectionNodes(System.Int32)">
  20929. <summary>
  20930. </summary>
  20931. <param name="argIndex"></param>
  20932. </member>
  20933. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.AddSelfIntersectionNode(System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Location)">
  20934. <summary>
  20935. Add a node for a self-intersection.
  20936. If the node is a potential boundary node (e.g. came from an edge which
  20937. is a boundary) then insert it as a potential boundary node.
  20938. Otherwise, just add it as a regular node.
  20939. </summary>
  20940. <param name="argIndex"></param>
  20941. <param name="coord"></param>
  20942. <param name="loc"></param>
  20943. </member>
  20944. <member name="M:NetTopologySuite.GeometriesGraph.GeometryGraph.Locate(NetTopologySuite.Geometries.Coordinate)">
  20945. <summary>
  20946. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> of the given <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in this geometry.
  20947. </summary>
  20948. <param name="pt">The point to test</param>
  20949. <returns>
  20950. The location of the point in the geometry
  20951. </returns>
  20952. </member>
  20953. <member name="T:NetTopologySuite.GeometriesGraph.GraphComponent">
  20954. <summary>
  20955. A GraphComponent is the parent class for the objects'
  20956. that form a graph. Each GraphComponent can carry a
  20957. Label.
  20958. </summary>
  20959. </member>
  20960. <member name="F:NetTopologySuite.GeometriesGraph.GraphComponent._label">
  20961. <summary>
  20962. </summary>
  20963. </member>
  20964. <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.#ctor">
  20965. <summary>
  20966. </summary>
  20967. </member>
  20968. <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.#ctor(NetTopologySuite.GeometriesGraph.Label)">
  20969. <summary>
  20970. </summary>
  20971. <param name="label"></param>
  20972. </member>
  20973. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label">
  20974. <summary>
  20975. </summary>
  20976. </member>
  20977. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.InResult">
  20978. <summary>
  20979. </summary>
  20980. </member>
  20981. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsInResult">
  20982. <summary>
  20983. IsInResult indicates if this component has already been included in the result.
  20984. </summary>
  20985. </member>
  20986. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Covered">
  20987. <summary>
  20988. </summary>
  20989. </member>
  20990. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsCovered">
  20991. <summary>
  20992. </summary>
  20993. </member>
  20994. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsCoveredSet">
  20995. <summary>
  20996. </summary>
  20997. </member>
  20998. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Visited">
  20999. <summary>
  21000. </summary>
  21001. </member>
  21002. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsVisited">
  21003. <summary>
  21004. </summary>
  21005. </member>
  21006. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.Coordinate">
  21007. <summary>
  21008. </summary>
  21009. <returns>
  21010. A coordinate in this component (or null, if there are none).
  21011. </returns>
  21012. </member>
  21013. <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  21014. <summary>
  21015. Compute the contribution to an IM for this component.
  21016. </summary>
  21017. <param name="im">An <c>IntersectionMatrix</c></param>
  21018. </member>
  21019. <member name="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsIsolated">
  21020. <summary>
  21021. An isolated component is one that does not intersect or touch any other
  21022. component. This is the case if the label has valid locations for
  21023. only a single Geometry.
  21024. </summary>
  21025. <returns><c>true</c> if this component is isolated.</returns>
  21026. </member>
  21027. <member name="M:NetTopologySuite.GeometriesGraph.GraphComponent.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  21028. <summary>
  21029. Update the IM with the contribution for this component.
  21030. A component only contributes if it has a labelling for both parent geometries.
  21031. </summary>
  21032. <param name="im">An <c>IntersectionMatrix</c></param>
  21033. </member>
  21034. <member name="T:NetTopologySuite.GeometriesGraph.Index.EdgeSetIntersector">
  21035. <summary>
  21036. An <c>EdgeSetIntersector</c> computes all the intersections between the
  21037. edges in the set. It adds the computed intersections to each edge
  21038. they are found on. It may be used in two scenarios:
  21039. determining the internal intersections between a single set of edges
  21040. determining the mutual intersections between two different sets of edges
  21041. It uses a <c>SegmentIntersector</c> to compute the intersections between
  21042. segments and to record statistics about what kinds of intersections were found.
  21043. </summary>
  21044. </member>
  21045. <member name="M:NetTopologySuite.GeometriesGraph.Index.EdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
  21046. <summary>
  21047. Computes all self-intersections between edges in a set of edges,
  21048. allowing client to choose whether self-intersections are computed.
  21049. </summary>
  21050. <param name="edges">A list of edges to test for intersections.</param>
  21051. <param name="si">The <c>SegmentIntersector</c> to use</param>
  21052. <param name="testAllSegments"><c>true</c> if self-intersections are to be tested as well.</param>
  21053. </member>
  21054. <member name="M:NetTopologySuite.GeometriesGraph.Index.EdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21055. <summary>
  21056. Computes all mutual intersections between two sets of edges.
  21057. </summary>
  21058. <param name="edges0">A set of edges</param>
  21059. <param name="edges1">A set of edges</param>
  21060. <param name="si">The <c>SegmentIntersector</c> to use</param>
  21061. </member>
  21062. <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChain">
  21063. <summary>
  21064. </summary>
  21065. </member>
  21066. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChain.#ctor(NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32)">
  21067. <summary>
  21068. </summary>
  21069. <param name="mce"></param>
  21070. <param name="chainIndex"></param>
  21071. </member>
  21072. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChain.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.MonotoneChain,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21073. <summary>
  21074. </summary>
  21075. <param name="mc"></param>
  21076. <param name="si"></param>
  21077. </member>
  21078. <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge">
  21079. <summary>
  21080. MonotoneChains are a way of partitioning the segments of an edge to
  21081. allow for fast searching of intersections.
  21082. They have the following properties:
  21083. the segments within a monotone chain will never intersect each other, and
  21084. the envelope of any contiguous subset of the segments in a monotone chain
  21085. is simply the envelope of the endpoints of the subset.
  21086. Property 1 means that there is no need to test pairs of segments from within
  21087. the same monotone chain for intersection.
  21088. Property 2 allows
  21089. binary search to be used to find the intersection points of two monotone chains.
  21090. For many types of real-world data, these properties eliminate a large number of
  21091. segment comparisons, producing substantial speed gains.
  21092. </summary>
  21093. </member>
  21094. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.#ctor(NetTopologySuite.GeometriesGraph.Edge)">
  21095. <summary>
  21096. </summary>
  21097. <param name="e"></param>
  21098. </member>
  21099. <member name="P:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.Coordinates">
  21100. <summary>
  21101. </summary>
  21102. </member>
  21103. <member name="P:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.StartIndexes">
  21104. <summary>
  21105. </summary>
  21106. </member>
  21107. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.GetMinX(System.Int32)">
  21108. <summary>
  21109. </summary>
  21110. <param name="chainIndex"></param>
  21111. <returns></returns>
  21112. </member>
  21113. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.GetMaxX(System.Int32)">
  21114. <summary>
  21115. </summary>
  21116. <param name="chainIndex"></param>
  21117. <returns></returns>
  21118. </member>
  21119. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersects(NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21120. <summary>
  21121. </summary>
  21122. <param name="mce"></param>
  21123. <param name="si"></param>
  21124. </member>
  21125. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersectsForChain(System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21126. <summary>
  21127. </summary>
  21128. <param name="chainIndex0"></param>
  21129. <param name="mce"></param>
  21130. <param name="chainIndex1"></param>
  21131. <param name="si"></param>
  21132. </member>
  21133. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.ComputeIntersectsForChain(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21134. <summary>
  21135. </summary>
  21136. <param name="start0"></param>
  21137. <param name="end0"></param>
  21138. <param name="mce"></param>
  21139. <param name="start1"></param>
  21140. <param name="end1"></param>
  21141. <param name="ei"></param>
  21142. </member>
  21143. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge.Overlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.MonotoneChainEdge,System.Int32,System.Int32)">
  21144. <summary>
  21145. Tests whether the envelopes of two chain sections overlap (intersect).
  21146. </summary>
  21147. <returns><c>true</c> if the section envelopes overlap</returns>
  21148. </member>
  21149. <member name="T:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer">
  21150. <summary>
  21151. MonotoneChains are a way of partitioning the segments of an edge to
  21152. allow for fast searching of intersections.
  21153. <para>
  21154. Specifically, a sequence of contiguous line segments
  21155. is a monotone chain if all the vectors defined by the oriented segments
  21156. lies in the same quadrant.
  21157. </para><para>
  21158. Monotone Chains have the following useful properties:
  21159. the segments within a monotone chain will never intersect each other, and
  21160. the envelope of any contiguous subset of the segments in a monotone chain
  21161. is simply the envelope of the endpoints of the subset.
  21162. Property 1 means that there is no need to test pairs of segments from within
  21163. the same monotone chain for intersection.
  21164. Property 2 allows
  21165. binary search to be used to find the intersection points of two monotone chains.
  21166. For many types of real-world data, these properties eliminate a large number of
  21167. segment comparisons, producing substantial speed gains.
  21168. </para>
  21169. <para>
  21170. Note that due to the efficient intersection test, there is no need to limit the size
  21171. of chains to obtain fast performance.
  21172. </para>
  21173. </summary>
  21174. </member>
  21175. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.GetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
  21176. <summary>
  21177. Computes the startpoints (and endpoints) of all in monotone chains in this edge
  21178. </summary>
  21179. <param name="pts">An array of points</param>
  21180. <returns>An array of startpoints (and endpoints) of monotone chains</returns>
  21181. </member>
  21182. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.OLDGetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
  21183. <summary>
  21184. </summary>
  21185. <param name="pts"></param>
  21186. <returns></returns>
  21187. </member>
  21188. <member name="M:NetTopologySuite.GeometriesGraph.Index.MonotoneChainIndexer.FindChainEnd(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  21189. <summary>
  21190. Searches for the end of a <c>MonotoneChain</c>
  21191. </summary>
  21192. <param name="pts">An array of <c>Coordinate</c>s</param>
  21193. <param name="start">The start index of the chain to find the end for</param>
  21194. <returns>
  21195. The index of the last point in the monotone chain.
  21196. </returns>
  21197. </member>
  21198. <member name="T:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector">
  21199. <summary>
  21200. Computes the intersection of line segments,
  21201. and adds the intersection to the edges containing the segments.
  21202. </summary>
  21203. </member>
  21204. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsAdjacentSegments(System.Int32,System.Int32)">
  21205. <summary>
  21206. </summary>
  21207. <param name="i1"></param>
  21208. <param name="i2"></param>
  21209. <returns></returns>
  21210. </member>
  21211. <member name="F:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.NumTests">
  21212. <summary>
  21213. Testing only.
  21214. </summary>
  21215. </member>
  21216. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.#ctor(NetTopologySuite.Algorithm.LineIntersector,System.Boolean,System.Boolean)">
  21217. <summary>
  21218. </summary>
  21219. <param name="li"></param>
  21220. <param name="includeProper"></param>
  21221. <param name="recordIsolated"></param>
  21222. </member>
  21223. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.SetBoundaryNodes(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
  21224. <summary>
  21225. </summary>
  21226. <param name="bdyNodes0"></param>
  21227. <param name="bdyNodes1"></param>
  21228. </member>
  21229. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsDoneIfProperInt">
  21230. <summary>
  21231. Sets a flag if the segment intersector is done when a proper intersection has been found.
  21232. </summary>
  21233. <remarks>Has no effect anymore.</remarks>
  21234. </member>
  21235. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsDone">
  21236. <summary>
  21237. Gets a value indicating that the segment intersector is finished.
  21238. </summary>
  21239. <remarks>Always returns <c>false</c></remarks>
  21240. </member>
  21241. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.ProperIntersectionPoint">
  21242. <returns>
  21243. The proper intersection point, or <c>null</c> if none was found.
  21244. </returns>
  21245. </member>
  21246. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasIntersection">
  21247. <summary>
  21248. </summary>
  21249. </member>
  21250. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasProperIntersection">
  21251. <summary>
  21252. A proper intersection is an intersection which is interior to at least two
  21253. line segments. Note that a proper intersection is not necessarily
  21254. in the interior of the entire Geometry, since another edge may have
  21255. an endpoint equal to the intersection, which according to SFS semantics
  21256. can result in the point being on the Boundary of the Geometry.
  21257. </summary>
  21258. <returns>Indicates a proper intersection with an interior to at least two line segments</returns>
  21259. </member>
  21260. <member name="P:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.HasProperInteriorIntersection">
  21261. <summary>
  21262. A proper interior intersection is a proper intersection which is not
  21263. contained in the set of boundary nodes set for this SegmentIntersector.
  21264. </summary>
  21265. <returns>Indicates a proper interior intersection</returns>
  21266. </member>
  21267. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsTrivialIntersection(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
  21268. <summary>
  21269. A trivial intersection is an apparent self-intersection which in fact
  21270. is simply the point shared by adjacent line segments.
  21271. Note that closed edges require a special check for the point shared by the beginning
  21272. and end segments.
  21273. </summary>
  21274. <param name="e0">An Edge</param>
  21275. <param name="segIndex0">The segment index of <paramref name="e0"/></param>
  21276. <param name="e1">Another Edge</param>
  21277. <param name="segIndex1">The segment index of <paramref name="e1"/></param>
  21278. </member>
  21279. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.AddIntersections(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
  21280. <summary>
  21281. This method is called by clients of the EdgeIntersector class to test for and add
  21282. intersections for two segments of the edges being intersected.
  21283. Note that clients (such as MonotoneChainEdges) may choose not to intersect
  21284. certain pairs of segments for efficiency reasons.
  21285. </summary>
  21286. <param name="e0"></param>
  21287. <param name="segIndex0"></param>
  21288. <param name="e1"></param>
  21289. <param name="segIndex1"></param>
  21290. </member>
  21291. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsBoundaryPoint(NetTopologySuite.Algorithm.LineIntersector,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node}[])">
  21292. <summary>
  21293. </summary>
  21294. <param name="li"></param>
  21295. <param name="bdyNodes"></param>
  21296. <returns></returns>
  21297. </member>
  21298. <member name="M:NetTopologySuite.GeometriesGraph.Index.SegmentIntersector.IsBoundaryPointInternal(NetTopologySuite.Algorithm.LineIntersector,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Node})">
  21299. <summary>
  21300. </summary>
  21301. <param name="li"></param>
  21302. <param name="bdyNodes"></param>
  21303. <returns></returns>
  21304. </member>
  21305. <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector">
  21306. <summary>
  21307. Finds all intersections in one or two sets of edges,
  21308. using the straightforward method of
  21309. comparing all segments.
  21310. This algorithm is too slow for production use, but is useful for testing purposes.
  21311. </summary>
  21312. </member>
  21313. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
  21314. <summary>
  21315. </summary>
  21316. <param name="edges"></param>
  21317. <param name="si"></param>
  21318. <param name="testAllSegments"></param>
  21319. </member>
  21320. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21321. <summary>
  21322. </summary>
  21323. <param name="edges0"></param>
  21324. <param name="edges1"></param>
  21325. <param name="si"></param>
  21326. </member>
  21327. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleEdgeSetIntersector.ComputeIntersects(NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Edge,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21328. <summary>
  21329. Performs a brute-force comparison of every segment in each Edge.
  21330. This has n^2 performance, and is about 100 times slower than using
  21331. monotone chains.
  21332. </summary>
  21333. <param name="e0"></param>
  21334. <param name="e1"></param>
  21335. <param name="si"></param>
  21336. </member>
  21337. <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector">
  21338. <summary>
  21339. Finds all intersections in one or two sets of edges,
  21340. using an x-axis sweepline algorithm in conjunction with Monotone Chains.
  21341. While still O(n^2) in the worst case, this algorithm
  21342. drastically improves the average-case time.
  21343. The use of MonotoneChains as the items in the index
  21344. seems to offer an improvement in performance over a sweep-line alone.
  21345. </summary>
  21346. </member>
  21347. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
  21348. <summary>
  21349. </summary>
  21350. <param name="edges"></param>
  21351. <param name="si"></param>
  21352. <param name="testAllSegments"></param>
  21353. </member>
  21354. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21355. <summary>
  21356. </summary>
  21357. <param name="edges0"></param>
  21358. <param name="edges1"></param>
  21359. <param name="si"></param>
  21360. </member>
  21361. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  21362. <summary>
  21363. </summary>
  21364. <param name="edges"></param>
  21365. </member>
  21366. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge},System.Object)">
  21367. <summary>
  21368. </summary>
  21369. <param name="edges"></param>
  21370. <param name="edgeSet"></param>
  21371. </member>
  21372. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.AddEdge(NetTopologySuite.GeometriesGraph.Edge,System.Object)">
  21373. <summary>
  21374. </summary>
  21375. <param name="edge"></param>
  21376. <param name="edgeSet"></param>
  21377. </member>
  21378. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.PrepareEvents">
  21379. <summary>
  21380. Because Delete Events have a link to their corresponding Insert event,
  21381. it is possible to compute exactly the range of events which must be
  21382. compared to a given Insert event object.
  21383. </summary>
  21384. </member>
  21385. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21386. <summary>
  21387. </summary>
  21388. <param name="si"></param>
  21389. </member>
  21390. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleMCSweepLineIntersector.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21391. <summary>
  21392. </summary>
  21393. <param name="start"></param>
  21394. <param name="end"></param>
  21395. <param name="ev0"></param>
  21396. <param name="si"></param>
  21397. </member>
  21398. <member name="T:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector">
  21399. <summary>
  21400. Finds all intersections in one or two sets of edges,
  21401. using a simple x-axis sweepline algorithm.
  21402. While still O(n^2) in the worst case, this algorithm
  21403. drastically improves the average-case time.
  21404. </summary>
  21405. </member>
  21406. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,System.Boolean)">
  21407. <summary>
  21408. </summary>
  21409. <param name="edges"></param>
  21410. <param name="si"></param>
  21411. <param name="testAllSegments"></param>
  21412. </member>
  21413. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge},NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21414. <summary>
  21415. </summary>
  21416. <param name="edges0"></param>
  21417. <param name="edges1"></param>
  21418. <param name="si"></param>
  21419. </member>
  21420. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  21421. <summary>
  21422. </summary>
  21423. <param name="edges"></param>
  21424. </member>
  21425. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge},System.Object)">
  21426. <summary>
  21427. </summary>
  21428. <param name="edges"></param>
  21429. <param name="edgeSet"></param>
  21430. </member>
  21431. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.Add(NetTopologySuite.GeometriesGraph.Edge,System.Object)">
  21432. <summary>
  21433. </summary>
  21434. <param name="edge"></param>
  21435. <param name="edgeSet"></param>
  21436. </member>
  21437. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.PrepareEvents">
  21438. <summary>
  21439. Because DELETE events have a link to their corresponding INSERT event,
  21440. it is possible to compute exactly the range of events which must be
  21441. compared to a given INSERT event object.
  21442. </summary>
  21443. </member>
  21444. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21445. <summary>
  21446. </summary>
  21447. <param name="si"></param>
  21448. </member>
  21449. <member name="M:NetTopologySuite.GeometriesGraph.Index.SimpleSweepLineIntersector.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21450. <summary>
  21451. </summary>
  21452. <param name="start"></param>
  21453. <param name="end"></param>
  21454. <param name="ev0"></param>
  21455. <param name="si"></param>
  21456. </member>
  21457. <member name="T:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent">
  21458. <summary>
  21459. </summary>
  21460. </member>
  21461. <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.#ctor(System.Object,System.Double,System.Object)">
  21462. <summary>
  21463. Creates an INSERT event.
  21464. </summary>
  21465. <param name="label">The edge set label for this object.</param>
  21466. <param name="x">The event location</param>
  21467. <param name="obj">the object being inserted</param>
  21468. </member>
  21469. <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.#ctor(System.Double,NetTopologySuite.GeometriesGraph.Index.SweepLineEvent)">
  21470. <summary>
  21471. Creates a DELETE event.
  21472. </summary>
  21473. <param name="x">The event location</param>
  21474. <param name="insertEvent">The corresponding INSERT event</param>
  21475. </member>
  21476. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.IsInsert">
  21477. <summary>
  21478. </summary>
  21479. </member>
  21480. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.IsDelete">
  21481. <summary>
  21482. </summary>
  21483. </member>
  21484. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.InsertEvent">
  21485. <summary>
  21486. </summary>
  21487. </member>
  21488. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.DeleteEventIndex">
  21489. <summary>
  21490. </summary>
  21491. </member>
  21492. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.Object">
  21493. <summary>
  21494. </summary>
  21495. </member>
  21496. <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineEvent.CompareTo(System.Object)">
  21497. <summary>
  21498. Events are ordered first by their x-value, and then by their eventType.
  21499. Insert events are sorted before Delete events, so that
  21500. items whose Insert and Delete events occur at the same x-value will be
  21501. correctly handled.
  21502. </summary>
  21503. <param name="o"></param>
  21504. </member>
  21505. <member name="T:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment">
  21506. <summary>
  21507. </summary>
  21508. </member>
  21509. <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.#ctor(NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
  21510. <summary>
  21511. </summary>
  21512. <param name="edge"></param>
  21513. <param name="ptIndex"></param>
  21514. </member>
  21515. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.MinX">
  21516. <summary>
  21517. </summary>
  21518. </member>
  21519. <member name="P:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.MaxX">
  21520. <summary>
  21521. </summary>
  21522. </member>
  21523. <member name="M:NetTopologySuite.GeometriesGraph.Index.SweepLineSegment.ComputeIntersections(NetTopologySuite.GeometriesGraph.Index.SweepLineSegment,NetTopologySuite.GeometriesGraph.Index.SegmentIntersector)">
  21524. <summary>
  21525. </summary>
  21526. <param name="ss"></param>
  21527. <param name="si"></param>
  21528. </member>
  21529. <member name="T:NetTopologySuite.GeometriesGraph.Label">
  21530. <summary>
  21531. A <c>Label</c> indicates the topological relationship of a component
  21532. of a topology graph to a given <c>Geometry</c>.
  21533. This class supports labels for relationships to two <c>Geometry</c>s,
  21534. which is sufficient for algorithms for binary operations.
  21535. Topology graphs support the concept of labeling nodes and edges in the graph.
  21536. The label of a node or edge specifies its topological relationship to one or
  21537. more geometries. (In fact, since NTS operations have only two arguments labels
  21538. are required for only two geometries). A label for a node or edge has one or
  21539. two elements, depending on whether the node or edge occurs in one or both of the
  21540. input <c>Geometry</c>s. Elements contain attributes which categorize the
  21541. topological location of the node or edge relative to the parent
  21542. <c>Geometry</c>; that is, whether the node or edge is in the interior,
  21543. boundary or exterior of the <c>Geometry</c>. Attributes have a value
  21544. from the set <c>{Interior, Boundary, Exterior}</c>. In a node each
  21545. element has a single attribute <c>On</c>. For an edge each element has a
  21546. triplet of attributes <c>Left, On, Right</c>.
  21547. It is up to the client code to associate the 0 and 1 <c>TopologyLocation</c>s
  21548. with specific geometries.
  21549. </summary>
  21550. </member>
  21551. <member name="M:NetTopologySuite.GeometriesGraph.Label.ToLineLabel(NetTopologySuite.GeometriesGraph.Label)">
  21552. <summary>
  21553. Converts a Label to a Line label (that is, one with no side Location).
  21554. </summary>
  21555. <param name="label">Label to convert.</param>
  21556. <returns>Label as Line label.</returns>
  21557. </member>
  21558. <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.Geometries.Location)">
  21559. <summary>
  21560. Construct a Label with a single location for both Geometries.
  21561. Initialize the locations to Null.
  21562. </summary>
  21563. <param name="onLoc">A location value</param>
  21564. </member>
  21565. <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(System.Int32,NetTopologySuite.Geometries.Location)">
  21566. <summary>
  21567. Construct a Label with a single location for both Geometries.
  21568. Initialize the location for the Geometry index.
  21569. </summary>
  21570. <param name="geomIndex">A geometry index, <c>0</c>, or <c>1</c>.</param>
  21571. <param name="onLoc">A location value for <b>On</b></param>
  21572. </member>
  21573. <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  21574. <summary>
  21575. Construct a Label with On, Left and Right locations for both Geometries.
  21576. Initialize the locations for both Geometries to the given values.
  21577. </summary>
  21578. <param name="onLoc">A location value for <b>On</b></param>
  21579. <param name="leftLoc">A location value for <b>Left</b></param>
  21580. <param name="rightLoc">A location value for <b>Right</b></param>
  21581. </member>
  21582. <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  21583. <summary>
  21584. Construct a Label with On, Left and Right locations for both Geometries.
  21585. Initialize the locations for the given Geometry index.
  21586. </summary>
  21587. <param name="geomIndex">A geometry index, <c>0</c>, or <c>1</c>.</param>
  21588. <param name="onLoc">A location value for <b>On</b></param>
  21589. <param name="leftLoc">A location value for <b>Left</b></param>
  21590. <param name="rightLoc">A location value for <b>Right</b></param>
  21591. </member>
  21592. <member name="M:NetTopologySuite.GeometriesGraph.Label.#ctor(NetTopologySuite.GeometriesGraph.Label)">
  21593. <summary>
  21594. Construct a Label with the same values as the argument Label.
  21595. </summary>
  21596. <param name="lbl">A <c>Label</c></param>
  21597. </member>
  21598. <member name="M:NetTopologySuite.GeometriesGraph.Label.Flip">
  21599. <summary>
  21600. Performs <see cref="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Flip"/> on both
  21601. <see cref="T:NetTopologySuite.GeometriesGraph.TopologyLocation"/>s of this <c>Label</c>
  21602. </summary>
  21603. </member>
  21604. <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions)">
  21605. <summary>
  21606. </summary>
  21607. <param name="geomIndex"></param>
  21608. <param name="posIndex"></param>
  21609. <returns></returns>
  21610. </member>
  21611. <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32,NetTopologySuite.Geometries.Position)">
  21612. <summary>
  21613. </summary>
  21614. <param name="geomIndex"></param>
  21615. <param name="posIndex"></param>
  21616. <returns></returns>
  21617. </member>
  21618. <member name="M:NetTopologySuite.GeometriesGraph.Label.GetLocation(System.Int32)">
  21619. <summary>
  21620. </summary>
  21621. <param name="geomIndex"></param>
  21622. <returns></returns>
  21623. </member>
  21624. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
  21625. <summary>
  21626. </summary>
  21627. <param name="geomIndex"></param>
  21628. <param name="posIndex"></param>
  21629. <param name="_location"></param>
  21630. </member>
  21631. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location)">
  21632. <summary>
  21633. </summary>
  21634. <param name="geomIndex"></param>
  21635. <param name="posIndex"></param>
  21636. <param name="_location"></param>
  21637. </member>
  21638. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetLocation(System.Int32,NetTopologySuite.Geometries.Location)">
  21639. <summary>
  21640. </summary>
  21641. <param name="geomIndex"></param>
  21642. <param name="_location"></param>
  21643. </member>
  21644. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocations(System.Int32,NetTopologySuite.Geometries.Location)">
  21645. <summary>
  21646. </summary>
  21647. <param name="geomIndex"></param>
  21648. <param name="_location"></param>
  21649. </member>
  21650. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocationsIfNull(System.Int32,NetTopologySuite.Geometries.Location)">
  21651. <summary>
  21652. </summary>
  21653. <param name="geomIndex"></param>
  21654. <param name="_location"></param>
  21655. </member>
  21656. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetAllLocationsIfNull(NetTopologySuite.Geometries.Location)">
  21657. <summary>
  21658. </summary>
  21659. <param name="_location"></param>
  21660. </member>
  21661. <member name="M:NetTopologySuite.GeometriesGraph.Label.Merge(NetTopologySuite.GeometriesGraph.Label)">
  21662. <summary>
  21663. Merge this label with another one.
  21664. Merging updates any null attributes of this label with the attributes from <paramref name="lbl"/>.
  21665. </summary>
  21666. <param name="lbl">The <c>Label</c> to merge</param>
  21667. </member>
  21668. <member name="M:NetTopologySuite.GeometriesGraph.Label.SetGeometryLocation(System.Int32,NetTopologySuite.GeometriesGraph.TopologyLocation)">
  21669. <summary>
  21670. </summary>
  21671. <param name="geomIndex"></param>
  21672. <param name="tl"></param>
  21673. </member>
  21674. <member name="P:NetTopologySuite.GeometriesGraph.Label.GeometryCount">
  21675. <summary>
  21676. </summary>
  21677. </member>
  21678. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsNull(System.Int32)">
  21679. <summary>
  21680. </summary>
  21681. <param name="geomIndex"></param>
  21682. <returns></returns>
  21683. </member>
  21684. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsAnyNull(System.Int32)">
  21685. <summary>
  21686. </summary>
  21687. <param name="geomIndex"></param>
  21688. <returns></returns>
  21689. </member>
  21690. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsArea">
  21691. <summary>
  21692. </summary>
  21693. <returns></returns>
  21694. </member>
  21695. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsArea(System.Int32)">
  21696. <summary>
  21697. </summary>
  21698. <param name="geomIndex"></param>
  21699. <returns></returns>
  21700. </member>
  21701. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsLine(System.Int32)">
  21702. <summary>
  21703. </summary>
  21704. <param name="geomIndex"></param>
  21705. <returns></returns>
  21706. </member>
  21707. <member name="M:NetTopologySuite.GeometriesGraph.Label.IsEqualOnSide(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
  21708. <summary>
  21709. </summary>
  21710. <param name="lbl"></param>
  21711. <param name="side"></param>
  21712. <returns></returns>
  21713. </member>
  21714. <member name="M:NetTopologySuite.GeometriesGraph.Label.AllPositionsEqual(System.Int32,NetTopologySuite.Geometries.Location)">
  21715. <summary>
  21716. </summary>
  21717. <param name="geomIndex"></param>
  21718. <param name="loc"></param>
  21719. <returns></returns>
  21720. </member>
  21721. <member name="M:NetTopologySuite.GeometriesGraph.Label.ToLine(System.Int32)">
  21722. <summary>
  21723. Converts one GeometryLocation to a Line location.
  21724. </summary>
  21725. <param name="geomIndex">The index of the <c>TopologyLocation</c> to convert (<c>0</c> or <c>1</c>)</param>
  21726. </member>
  21727. <member name="M:NetTopologySuite.GeometriesGraph.Label.ToString">
  21728. <summary>
  21729. </summary>
  21730. <returns></returns>
  21731. </member>
  21732. <member name="T:NetTopologySuite.GeometriesGraph.Node">
  21733. <summary>
  21734. </summary>
  21735. </member>
  21736. <member name="F:NetTopologySuite.GeometriesGraph.Node._coord">
  21737. <summary>
  21738. Only non-null if this node is precise.
  21739. </summary>
  21740. </member>
  21741. <member name="M:NetTopologySuite.GeometriesGraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.EdgeEndStar)">
  21742. <summary>
  21743. </summary>
  21744. <param name="coord"></param>
  21745. <param name="edges"></param>
  21746. </member>
  21747. <member name="P:NetTopologySuite.GeometriesGraph.Node.Coordinate">
  21748. <summary>
  21749. Gets a value indicating the position of this
  21750. </summary>
  21751. <returns>The position of this <c>Node</c></returns>
  21752. </member>
  21753. <member name="P:NetTopologySuite.GeometriesGraph.Node.Edges">
  21754. <summary>
  21755. Gets a value indicating the <c>EdgeEndStar</c> of this <c>Node</c>
  21756. </summary>
  21757. <returns>The <c>EdgeEndStar</c> of this <c>Node</c></returns>
  21758. </member>
  21759. <member name="M:NetTopologySuite.GeometriesGraph.Node.IsIncidentEdgeInResult">
  21760. <summary>
  21761. Tests whether any incident edge is flagged as
  21762. being in the result.
  21763. This test can be used to determine if the node is in the result,
  21764. since if any incident edge is in the result, the node must be in the result as well.
  21765. </summary>
  21766. <returns><c>true</c> if any incident edge in the in the result
  21767. </returns>
  21768. </member>
  21769. <member name="P:NetTopologySuite.GeometriesGraph.Node.IsIsolated">
  21770. <inheritdoc cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.IsIsolated"/>
  21771. </member>
  21772. <member name="M:NetTopologySuite.GeometriesGraph.Node.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  21773. <inheritdoc cref="M:NetTopologySuite.GeometriesGraph.GraphComponent.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)"/>
  21774. <remarks>
  21775. Basic nodes do not compute IMs.
  21776. </remarks>
  21777. </member>
  21778. <member name="M:NetTopologySuite.GeometriesGraph.Node.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  21779. <summary>
  21780. Add the edge to the list of edges at this node.
  21781. </summary>
  21782. <param name="e">An <c>EdgeEnd</c></param>
  21783. </member>
  21784. <member name="M:NetTopologySuite.GeometriesGraph.Node.MergeLabel(NetTopologySuite.GeometriesGraph.Node)">
  21785. <summary>
  21786. Merges <paramref name="n"/>'s <see cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label"/> with this <c>Node</c>'s <c>Label</c>.
  21787. </summary>
  21788. <param name="n">A <c>Node</c></param>
  21789. </member>
  21790. <member name="M:NetTopologySuite.GeometriesGraph.Node.MergeLabel(NetTopologySuite.GeometriesGraph.Label)">
  21791. <summary>
  21792. To merge labels for two nodes,
  21793. the merged location for each LabelElement is computed.
  21794. The location for the corresponding node LabelElement is set to the result,
  21795. as long as the location is non-null.
  21796. </summary>
  21797. <param name="label">The <c>Label</c> to merge</param>
  21798. </member>
  21799. <member name="M:NetTopologySuite.GeometriesGraph.Node.SetLabel(System.Int32,NetTopologySuite.Geometries.Location)">
  21800. <summary>
  21801. </summary>
  21802. <param name="argIndex"></param>
  21803. <param name="onLocation"></param>
  21804. </member>
  21805. <member name="M:NetTopologySuite.GeometriesGraph.Node.SetLabelBoundary(System.Int32)">
  21806. <summary>
  21807. Updates the label of a node to BOUNDARY,
  21808. obeying the mod-2 boundaryDetermination rule.
  21809. </summary>
  21810. <param name="argIndex">An index for a <see cref="T:NetTopologySuite.GeometriesGraph.TopologyLocation"/> (<c>0</c> or <c>1</c>)</param>
  21811. </member>
  21812. <member name="M:NetTopologySuite.GeometriesGraph.Node.ComputeMergedLocation(NetTopologySuite.GeometriesGraph.Label,System.Int32)">
  21813. <summary>
  21814. The location for a given eltIndex for a node will be one
  21815. of { Null, Interior, Boundary }.
  21816. A node may be on both the boundary and the interior of a point;
  21817. in this case, the rule is that the node is considered to be in the boundary.
  21818. The merged location is the maximum of the two input values.
  21819. </summary>
  21820. <param name="label2"></param>
  21821. <param name="eltIndex"></param>
  21822. </member>
  21823. <member name="M:NetTopologySuite.GeometriesGraph.Node.Write(System.IO.TextWriter)">
  21824. <summary>
  21825. </summary>
  21826. <param name="outstream"></param>
  21827. </member>
  21828. <member name="M:NetTopologySuite.GeometriesGraph.Node.ToString">
  21829. <summary>
  21830. </summary>
  21831. <returns></returns>
  21832. </member>
  21833. <member name="T:NetTopologySuite.GeometriesGraph.NodeFactory">
  21834. <summary>
  21835. A Factory to create <see cref="T:NetTopologySuite.GeometriesGraph.Node"/>s.
  21836. </summary>
  21837. </member>
  21838. <member name="M:NetTopologySuite.GeometriesGraph.NodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
  21839. <summary>
  21840. The basic node constructor does not allow for incident edges.
  21841. </summary>
  21842. <param name="coord">A <c>Coordinate</c></param>
  21843. <returns>The created <c>Node</c></returns>
  21844. </member>
  21845. <member name="T:NetTopologySuite.GeometriesGraph.NodeMap">
  21846. <summary>
  21847. A map of nodes, indexed by the coordinate of the node.
  21848. </summary>
  21849. </member>
  21850. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.#ctor(NetTopologySuite.GeometriesGraph.NodeFactory)">
  21851. <summary>
  21852. Creates an instance of this class using the provided <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>.
  21853. </summary>
  21854. <param name="nodeFact">A factory to create <c>Node</c>s</param>
  21855. </member>
  21856. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.AddNode(NetTopologySuite.Geometries.Coordinate)">
  21857. <summary>
  21858. This method expects that a node has a coordinate value.
  21859. </summary>
  21860. <param name="coord">A <c>Coordinate</c></param>
  21861. <returns>The <c>Node</c> for the provided <c>Coordinate</c> <paramref name="coord"/></returns>
  21862. </member>
  21863. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.AddNode(NetTopologySuite.GeometriesGraph.Node)">
  21864. <summary>
  21865. Adds a <c>Node</c> to this <c>NodeMap</c>.
  21866. If a <c>Node</c> with the same <see cref="P:NetTopologySuite.GeometriesGraph.Node.Coordinate"/>
  21867. is already present in this <c>NodeMap</c>,
  21868. their <see cref="P:NetTopologySuite.GeometriesGraph.GraphComponent.Label"/>s are merged.
  21869. </summary>
  21870. <param name="n">The <c>Node</c> to add</param>
  21871. <returns>Either <paramref name="n"/> or a <c>Node</c> with merged <c>Label</c>s</returns>
  21872. </member>
  21873. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  21874. <summary>
  21875. Adds a node for the start point of this EdgeEnd
  21876. (if one does not already exist in this map).
  21877. Adds the EdgeEnd to the (possibly new) node.
  21878. </summary>
  21879. <param name="e">An <c>EdgeEnd</c></param>
  21880. </member>
  21881. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Find(NetTopologySuite.Geometries.Coordinate)">
  21882. <summary>
  21883. Searches for a <c>Node</c> at <paramref name="coord"/> position.
  21884. </summary>
  21885. <param name="coord">A <c>Coordinate</c></param>
  21886. <returns>
  21887. The node if found; <c>null</c> otherwise.
  21888. </returns>
  21889. </member>
  21890. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.GetEnumerator">
  21891. <summary>
  21892. </summary>
  21893. <returns></returns>
  21894. </member>
  21895. <member name="P:NetTopologySuite.GeometriesGraph.NodeMap.Values">
  21896. <summary>
  21897. </summary>
  21898. </member>
  21899. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.GetBoundaryNodes(System.Int32)">
  21900. <summary>
  21901. </summary>
  21902. <param name="geomIndex"></param>
  21903. <returns></returns>
  21904. </member>
  21905. <member name="M:NetTopologySuite.GeometriesGraph.NodeMap.Write(System.IO.StreamWriter)">
  21906. <summary>
  21907. </summary>
  21908. <param name="outstream"></param>
  21909. </member>
  21910. <member name="T:NetTopologySuite.GeometriesGraph.PlanarGraph">
  21911. <summary>
  21912. The computation of the <c>IntersectionMatrix</c> relies on the use of a structure
  21913. called a "topology graph". The topology graph contains nodes and edges
  21914. corresponding to the nodes and line segments of a <c>Geometry</c>. Each
  21915. node and edge in the graph is labeled with its topological location relative to
  21916. the source point.
  21917. Note that there is no requirement that points of self-intersection be a vertex.
  21918. Thus to obtain a correct topology graph, <c>Geometry</c>s must be
  21919. self-noded before constructing their graphs.
  21920. Two fundamental operations are supported by topology graphs:
  21921. Computing the intersections between all the edges and nodes of a single graph
  21922. Computing the intersections between the edges and nodes of two different graphs
  21923. </summary>
  21924. </member>
  21925. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkResultDirectedEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
  21926. <summary>
  21927. For nodes in the Collection, link the DirectedEdges at the node that are in the result.
  21928. This allows clients to link only a subset of nodes in the graph, for
  21929. efficiency (because they know that only a subset is of interest).
  21930. </summary>
  21931. <param name="nodes">A collection of <c>Node</c>s</param>
  21932. </member>
  21933. <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph._edges">
  21934. <summary>
  21935. </summary>
  21936. </member>
  21937. <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph._nodes">
  21938. <summary>
  21939. </summary>
  21940. </member>
  21941. <member name="F:NetTopologySuite.GeometriesGraph.PlanarGraph.edgeEndList">
  21942. <summary>
  21943. </summary>
  21944. </member>
  21945. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.#ctor(NetTopologySuite.GeometriesGraph.NodeFactory)">
  21946. <summary>
  21947. Creates an instance of this class using the provided <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>
  21948. </summary>
  21949. <param name="nodeFact">A factory to create <c>Node</c>s</param>
  21950. </member>
  21951. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.#ctor">
  21952. <summary>
  21953. Creates an instance of this class using the default <see cref="T:NetTopologySuite.GeometriesGraph.NodeFactory"/>.
  21954. </summary>
  21955. </member>
  21956. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.GetEdgeEnumerator">
  21957. <summary>
  21958. </summary>
  21959. <returns></returns>
  21960. </member>
  21961. <member name="P:NetTopologySuite.GeometriesGraph.PlanarGraph.EdgeEnds">
  21962. <summary>
  21963. </summary>
  21964. </member>
  21965. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.IsBoundaryNode(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  21966. <summary>
  21967. </summary>
  21968. <param name="geomIndex"></param>
  21969. <param name="coord"></param>
  21970. <returns></returns>
  21971. </member>
  21972. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.InsertEdge(NetTopologySuite.GeometriesGraph.Edge)">
  21973. <summary>
  21974. </summary>
  21975. <param name="e"></param>
  21976. </member>
  21977. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.Add(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  21978. <summary>
  21979. </summary>
  21980. <param name="e"></param>
  21981. </member>
  21982. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.GetNodeEnumerator">
  21983. <summary>
  21984. </summary>
  21985. <returns></returns>
  21986. </member>
  21987. <member name="P:NetTopologySuite.GeometriesGraph.PlanarGraph.Nodes">
  21988. <summary>
  21989. </summary>
  21990. </member>
  21991. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddNode(NetTopologySuite.GeometriesGraph.Node)">
  21992. <summary>
  21993. </summary>
  21994. <param name="node"></param>
  21995. <returns></returns>
  21996. </member>
  21997. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddNode(NetTopologySuite.Geometries.Coordinate)">
  21998. <summary>
  21999. </summary>
  22000. <param name="coord"></param>
  22001. <returns></returns>
  22002. </member>
  22003. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.Find(NetTopologySuite.Geometries.Coordinate)">
  22004. <summary>
  22005. Searches for a <c>Node</c> at <c>Coordinate</c> position <paramref name="coord"/>
  22006. </summary>
  22007. <param name="coord">A <c>Coordinate</c> position</param>
  22008. <returns>
  22009. The node if found; <c>null</c> otherwise
  22010. </returns>
  22011. </member>
  22012. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.AddEdges(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
  22013. <summary>
  22014. Add a set of edges to the graph. For each edge two DirectedEdges
  22015. will be created. DirectedEdges are NOT linked by this method.
  22016. </summary>
  22017. <param name="edgesToAdd">A set of <c>Edge</c>s to add.</param>
  22018. </member>
  22019. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkResultDirectedEdges">
  22020. <summary>
  22021. Link the DirectedEdges at the nodes of the graph.
  22022. This allows clients to link only a subset of nodes in the graph, for
  22023. efficiency (because they know that only a subset is of interest).
  22024. </summary>
  22025. </member>
  22026. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.LinkAllDirectedEdges">
  22027. <summary>
  22028. Link the DirectedEdges at the nodes of the graph.
  22029. This allows clients to link only a subset of nodes in the graph, for
  22030. efficiency (because they know that only a subset is of interest).
  22031. </summary>
  22032. </member>
  22033. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdgeEnd(NetTopologySuite.GeometriesGraph.Edge)">
  22034. <summary>
  22035. Returns the EdgeEnd which has edge e as its base edge
  22036. (MD 18 Feb 2002 - this should return a pair of edges).
  22037. </summary>
  22038. <param name="e">An <c>Edge</c></param>
  22039. <returns> The edge, if found <c>null</c> if the edge was not found.</returns>
  22040. </member>
  22041. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdge(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  22042. <summary>
  22043. Returns the edge whose first two coordinates are p0 and p1.
  22044. </summary>
  22045. <param name="p0">The 1st <c>Coordinate</c></param>
  22046. <param name="p1">The 2nd <c>Coordinate</c></param>
  22047. <returns> The edge, if found <c>null</c> if the edge was not found.</returns>
  22048. </member>
  22049. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.FindEdgeInSameDirection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  22050. <summary>
  22051. Returns the edge which starts at p0 and whose first segment is
  22052. parallel to p1.
  22053. </summary>
  22054. <param name="p0">Starting <c>Coordinate</c></param>
  22055. <param name="p1"><c>Coordinate</c> used to establish direction</param>
  22056. <returns>The matching edge, if found <c>null</c> if the edge was not found.</returns>
  22057. </member>
  22058. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.MatchInSameDirection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  22059. <summary>
  22060. The coordinate pairs match if they define line segments lying in the same direction.
  22061. E.g. the segments are parallel and in the same quadrant
  22062. (as opposed to parallel and opposite!).
  22063. </summary>
  22064. <param name="p0"></param>
  22065. <param name="p1"></param>
  22066. <param name="ep0"></param>
  22067. <param name="ep1"></param>
  22068. </member>
  22069. <member name="M:NetTopologySuite.GeometriesGraph.PlanarGraph.WriteEdges(System.IO.StreamWriter)">
  22070. <summary>
  22071. </summary>
  22072. <param name="outstream"></param>
  22073. </member>
  22074. <member name="T:NetTopologySuite.GeometriesGraph.Positions">
  22075. <summary>
  22076. </summary>
  22077. </member>
  22078. <member name="F:NetTopologySuite.GeometriesGraph.Positions.On">
  22079. <summary>
  22080. An indicator that a Location is <c>on</c> a GraphComponent (0)
  22081. </summary>
  22082. </member>
  22083. <member name="F:NetTopologySuite.GeometriesGraph.Positions.Left">
  22084. <summary>
  22085. An indicator that a Location is to the <c>left</c> of a GraphComponent (1)
  22086. </summary>
  22087. </member>
  22088. <member name="F:NetTopologySuite.GeometriesGraph.Positions.Right">
  22089. <summary>
  22090. An indicator that a Location is to the <c>right</c> of a GraphComponent (2)
  22091. </summary>
  22092. </member>
  22093. <member name="F:NetTopologySuite.GeometriesGraph.Positions.Parallel">
  22094. <summary>
  22095. An indicator that a Location is <c>is parallel to x-axis</c> of a GraphComponent (-1)
  22096. /// </summary>
  22097. </member>
  22098. <member name="T:NetTopologySuite.GeometriesGraph.Position">
  22099. <summary>
  22100. A Position indicates the position of a Location relative to a graph component
  22101. (Node, Edge, or Area).
  22102. </summary>
  22103. </member>
  22104. <member name="M:NetTopologySuite.GeometriesGraph.Position.Opposite(NetTopologySuite.GeometriesGraph.Positions)">
  22105. <summary>
  22106. Returns Positions.Left if the position is Positions.Right,
  22107. Positions.Right if the position is Left, or the position
  22108. otherwise.
  22109. </summary>
  22110. <param name="position"></param>
  22111. </member>
  22112. <member name="T:NetTopologySuite.GeometriesGraph.QuadrantOp">
  22113. <summary>
  22114. Utility functions for working with quadrants, which are numbered as follows:
  22115. <para>
  22116. 1 | 0
  22117. --+--
  22118. 2 | 3
  22119. </para>
  22120. </summary>
  22121. </member>
  22122. <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.NE">
  22123. <summary>
  22124. North-East
  22125. </summary>
  22126. </member>
  22127. <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.NW">
  22128. <summary>
  22129. North-West
  22130. </summary>
  22131. </member>
  22132. <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.SW">
  22133. <summary>
  22134. South-West
  22135. </summary>
  22136. </member>
  22137. <member name="F:NetTopologySuite.GeometriesGraph.QuadrantOp.SE">
  22138. <summary>
  22139. South-East
  22140. </summary>
  22141. </member>
  22142. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.#ctor">
  22143. <summary>
  22144. Only static methods!
  22145. </summary>
  22146. </member>
  22147. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.Quadrant(System.Double,System.Double)">
  22148. <summary>
  22149. Returns the quadrant of a directed line segment (specified as x and y
  22150. displacements, which cannot both be 0).
  22151. </summary>
  22152. <param name="dx"></param>
  22153. <param name="dy"></param>
  22154. <exception cref="T:System.ArgumentException">If the displacements are both 0</exception>
  22155. </member>
  22156. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.Quadrant(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  22157. <summary>
  22158. Returns the quadrant of a directed line segment from p0 to p1.
  22159. </summary>
  22160. <param name="p0"></param>
  22161. <param name="p1"></param>
  22162. <exception cref="T:System.ArgumentException"> if the points are equal</exception>
  22163. </member>
  22164. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsOpposite(System.Int32,System.Int32)">
  22165. <summary>
  22166. Returns true if the quadrants are 1 and 3, or 2 and 4.
  22167. </summary>
  22168. <param name="quad1"></param>
  22169. <param name="quad2"></param>
  22170. </member>
  22171. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.CommonHalfPlane(System.Int32,System.Int32)">
  22172. <summary>
  22173. Returns the right-hand quadrant of the halfplane defined by the two quadrants,
  22174. or -1 if the quadrants are opposite, or the quadrant if they are identical.
  22175. </summary>
  22176. <param name="quad1"></param>
  22177. <param name="quad2"></param>
  22178. </member>
  22179. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsInHalfPlane(System.Int32,System.Int32)">
  22180. <summary>
  22181. Returns whether the given quadrant lies within the given halfplane (specified
  22182. by its right-hand quadrant).
  22183. </summary>
  22184. <param name="quad"></param>
  22185. <param name="halfPlane"></param>
  22186. </member>
  22187. <member name="M:NetTopologySuite.GeometriesGraph.QuadrantOp.IsNorthern(System.Int32)">
  22188. <summary>
  22189. Returns true if the given quadrant is 0 or 1.
  22190. </summary>
  22191. <param name="quad"></param>
  22192. </member>
  22193. <member name="T:NetTopologySuite.GeometriesGraph.TopologyLocation">
  22194. <summary>
  22195. A TopologyLocation is the labelling of a
  22196. GraphComponent's topological relationship to a single Geometry.
  22197. </summary>
  22198. <remarks>
  22199. If the parent component is an area edge, each side and the edge itself
  22200. have a topological location. These locations are named:
  22201. <list type="table">
  22202. <item><term>On</term><description>on the edge</description></item>
  22203. <item><term>Left</term><description>left-hand side of the edge</description></item>
  22204. <item><term>Right</term><description>right-hand side</description></item>
  22205. </list>
  22206. <para>
  22207. If the parent component is a line edge or node, there is a single
  22208. topological relationship attribute, On.</para>
  22209. <para>
  22210. The possible values of a topological location are
  22211. { <see cref="F:NetTopologySuite.Geometries.Location.Null"/>, <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>, <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>, <see cref="F:NetTopologySuite.Geometries.Location.Interior"/> }</para>
  22212. <para>
  22213. The labelling is stored in an array _location[j] where
  22214. where j has the values On, Left, Right.
  22215. </para>
  22216. </remarks>
  22217. </member>
  22218. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location[])">
  22219. <summary>
  22220. </summary>
  22221. <param name="location"></param>
  22222. </member>
  22223. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  22224. <summary>
  22225. Constructs a TopologyLocation specifying how points on, to the left of, and to the
  22226. right of some GraphComponent relate to some Geometry. Possible values for the
  22227. parameters are Location.Null, Location.Exterior, Location.Boundary,
  22228. and Location.Interior.
  22229. </summary>
  22230. <param name="on"><c>Location</c> for <b>On</b> position</param>
  22231. <param name="left"><c>Location</c> for <b>Left</b> position</param>
  22232. <param name="right"><c>Location</c> for <b>Right</b> position</param>
  22233. </member>
  22234. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.Geometries.Location)">
  22235. <summary>
  22236. </summary>
  22237. <param name="on"></param>
  22238. </member>
  22239. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.#ctor(NetTopologySuite.GeometriesGraph.TopologyLocation)">
  22240. <summary>
  22241. </summary>
  22242. <param name="gl"></param>
  22243. </member>
  22244. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Init(System.Int32)">
  22245. <summary>
  22246. </summary>
  22247. <param name="size"></param>
  22248. </member>
  22249. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Get(NetTopologySuite.GeometriesGraph.Positions)">
  22250. <summary>
  22251. </summary>
  22252. <param name="posIndex"></param>
  22253. <returns></returns>
  22254. </member>
  22255. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Get(NetTopologySuite.Geometries.Position)">
  22256. <summary>
  22257. </summary>
  22258. <param name="posIndex"></param>
  22259. <returns></returns>
  22260. </member>
  22261. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.Item(NetTopologySuite.GeometriesGraph.Positions)">
  22262. <summary>
  22263. Get calls Get(Positions posIndex),
  22264. Set calls SetLocation(Positions locIndex, Location locValue)
  22265. </summary>
  22266. <param name="posIndex"></param>
  22267. <returns></returns>
  22268. </member>
  22269. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.Item(NetTopologySuite.Geometries.Position)">
  22270. <summary>
  22271. Get calls Get(Positions posIndex),
  22272. Set calls SetLocation(Positions locIndex, Location locValue)
  22273. </summary>
  22274. <param name="posIndex"></param>
  22275. <returns></returns>
  22276. </member>
  22277. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsNull">
  22278. <returns>
  22279. <c>true</c> if all locations are Null.
  22280. </returns>
  22281. </member>
  22282. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsAnyNull">
  22283. <returns>
  22284. <c>true</c> if any locations are Null.
  22285. </returns>
  22286. </member>
  22287. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.IsEqualOnSide(NetTopologySuite.GeometriesGraph.TopologyLocation,System.Int32)">
  22288. <summary>
  22289. </summary>
  22290. <param name="le"></param>
  22291. <param name="locIndex"></param>
  22292. <returns></returns>
  22293. </member>
  22294. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsArea">
  22295. <summary>
  22296. </summary>
  22297. </member>
  22298. <member name="P:NetTopologySuite.GeometriesGraph.TopologyLocation.IsLine">
  22299. <summary>
  22300. </summary>
  22301. </member>
  22302. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Flip">
  22303. <summary>
  22304. </summary>
  22305. </member>
  22306. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetAllLocations(NetTopologySuite.Geometries.Location)">
  22307. <summary>
  22308. </summary>
  22309. <param name="locValue"></param>
  22310. </member>
  22311. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetAllLocationsIfNull(NetTopologySuite.Geometries.Location)">
  22312. <summary>
  22313. </summary>
  22314. <param name="locValue"></param>
  22315. </member>
  22316. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.GeometriesGraph.Positions,NetTopologySuite.Geometries.Location)">
  22317. <summary>
  22318. </summary>
  22319. <param name="locIndex"></param>
  22320. <param name="locValue"></param>
  22321. </member>
  22322. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location)">
  22323. <summary>
  22324. </summary>
  22325. <param name="locIndex"></param>
  22326. <param name="locValue"></param>
  22327. </member>
  22328. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocation(NetTopologySuite.Geometries.Location)">
  22329. <summary>
  22330. </summary>
  22331. <param name="locValue"></param>
  22332. </member>
  22333. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.GetLocations">
  22334. <summary>
  22335. </summary>
  22336. <returns></returns>
  22337. </member>
  22338. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocations(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  22339. <summary>
  22340. </summary>
  22341. <param name="on"></param>
  22342. <param name="left"></param>
  22343. <param name="right"></param>
  22344. </member>
  22345. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.SetLocations(NetTopologySuite.GeometriesGraph.TopologyLocation)">
  22346. <summary>
  22347. </summary>
  22348. <param name="gl"></param>
  22349. </member>
  22350. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.AllPositionsEqual(NetTopologySuite.Geometries.Location)">
  22351. <summary>
  22352. </summary>
  22353. <param name="loc"></param>
  22354. <returns></returns>
  22355. </member>
  22356. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.Merge(NetTopologySuite.GeometriesGraph.TopologyLocation)">
  22357. <summary>
  22358. Merge updates only the Null attributes of this object
  22359. with the attributes of another.
  22360. </summary>
  22361. </member>
  22362. <member name="M:NetTopologySuite.GeometriesGraph.TopologyLocation.ToString">
  22363. <summary>
  22364. </summary>
  22365. <returns></returns>
  22366. </member>
  22367. <member name="T:NetTopologySuite.Index.ArrayListVisitor">
  22368. <summary>
  22369. Builds an array of all visited items.
  22370. </summary>
  22371. </member>
  22372. <member name="T:NetTopologySuite.Index.ArrayListVisitor`1">
  22373. <summary>
  22374. Builds an array of all visited items.
  22375. </summary>
  22376. </member>
  22377. <member name="M:NetTopologySuite.Index.ArrayListVisitor`1.VisitItem(`0)">
  22378. <summary>
  22379. Visits an item.
  22380. </summary>
  22381. <param name="item">The item to visit.</param>
  22382. </member>
  22383. <member name="P:NetTopologySuite.Index.ArrayListVisitor`1.Items">
  22384. <summary>
  22385. Gets the array of visited items.
  22386. </summary>
  22387. </member>
  22388. <member name="T:NetTopologySuite.Index.Bintree.Bintree`1">
  22389. <summary>
  22390. An <c>BinTree</c> (or "Binary Interval Tree")
  22391. is a 1-dimensional version of a quadtree.
  22392. It indexes 1-dimensional intervals (which may
  22393. be the projection of 2-D objects on an axis).
  22394. It supports range searching
  22395. (where the range may be a single point).
  22396. </summary>
  22397. <remarks>
  22398. <para>
  22399. This structure is dynamic -
  22400. new items can be added at any time,
  22401. and it will support deletion of items
  22402. (although this is not currently implemented).
  22403. </para>
  22404. <para>
  22405. This implementation does not require specifying the extent of the inserted
  22406. items beforehand. It will automatically expand to accommodate any extent
  22407. of dataset.</para>
  22408. <para>This index is different to the Interval Tree of Edelsbrunner
  22409. or the Segment Tree of Bentley.</para>
  22410. </remarks>
  22411. </member>
  22412. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.EnsureExtent(NetTopologySuite.Index.Bintree.Interval,System.Double)">
  22413. <summary>
  22414. Ensure that the Interval for the inserted item has non-zero extents.
  22415. Use the current minExtent to pad it, if necessary.
  22416. </summary>
  22417. </member>
  22418. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.#ctor">
  22419. <summary>
  22420. </summary>
  22421. </member>
  22422. <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.Depth">
  22423. <summary>
  22424. </summary>
  22425. </member>
  22426. <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.Count">
  22427. <summary>
  22428. </summary>
  22429. </member>
  22430. <member name="P:NetTopologySuite.Index.Bintree.Bintree`1.NodeSize">
  22431. <summary>
  22432. Compute the total number of nodes in the tree.
  22433. </summary>
  22434. <returns>The number of nodes in the tree.</returns>
  22435. </member>
  22436. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Insert(NetTopologySuite.Index.Bintree.Interval,`0)">
  22437. <summary>
  22438. </summary>
  22439. <param name="itemInterval"></param>
  22440. <param name="item"></param>
  22441. </member>
  22442. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Remove(NetTopologySuite.Index.Bintree.Interval,`0)">
  22443. <summary>
  22444. Removes a single item from the tree.
  22445. </summary>
  22446. <param name="itemInterval">itemEnv the Envelope of the item to be removed</param>
  22447. <param name="item">the item to remove</param>
  22448. <returns><c>true</c> if the item was found (and thus removed)</returns>
  22449. </member>
  22450. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.GetEnumerator">
  22451. <summary>
  22452. </summary>
  22453. <returns></returns>
  22454. </member>
  22455. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(System.Double)">
  22456. <summary>
  22457. </summary>
  22458. <param name="x"></param>
  22459. <returns></returns>
  22460. </member>
  22461. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(NetTopologySuite.Index.Bintree.Interval)">
  22462. <summary>
  22463. Queries the tree to find all candidate items which
  22464. may overlap the query interval.
  22465. If the query interval is <tt>null</tt>, all items in the tree are found.
  22466. <c>min</c> and <c>max</c> may be the same value.
  22467. </summary>
  22468. <param name="interval">The interval to query for or <c>null</c></param>
  22469. </member>
  22470. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.Query(NetTopologySuite.Index.Bintree.Interval,System.Collections.Generic.ICollection{`0})">
  22471. <summary>
  22472. Adds items in the tree which potentially overlap the query interval
  22473. to the given collection.
  22474. If the query interval is <c>null</c>, add all items in the tree.
  22475. </summary>
  22476. <param name="interval">A query interval, or <c>null</c></param>
  22477. <param name="foundItems">The candidate items found</param>
  22478. </member>
  22479. <member name="M:NetTopologySuite.Index.Bintree.Bintree`1.CollectStats(NetTopologySuite.Index.Bintree.Interval)">
  22480. <summary>
  22481. </summary>
  22482. <param name="interval"></param>
  22483. </member>
  22484. <member name="T:NetTopologySuite.Index.Bintree.Interval">
  22485. <summary>
  22486. Represents an (1-dimensional) closed interval on the Real number line.
  22487. </summary>
  22488. </member>
  22489. <member name="P:NetTopologySuite.Index.Bintree.Interval.Min">
  22490. <summary>
  22491. Gets or sets a value indicating the minimum value of the closed interval.
  22492. </summary>
  22493. </member>
  22494. <member name="P:NetTopologySuite.Index.Bintree.Interval.Max">
  22495. <summary>
  22496. Gets or sets a value indicating the maximum value of the closed interval.
  22497. </summary>
  22498. </member>
  22499. <member name="P:NetTopologySuite.Index.Bintree.Interval.Width">
  22500. <summary>
  22501. Gets the width of the interval (<see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/> - <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>)
  22502. </summary>
  22503. </member>
  22504. <member name="P:NetTopologySuite.Index.Bintree.Interval.Centre">
  22505. <summary>
  22506. Gets the centre of the interval (<see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/> + <see cref="P:NetTopologySuite.Index.Bintree.Interval.Width"/> * 0.5d)
  22507. </summary>
  22508. </member>
  22509. <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor">
  22510. <summary>
  22511. Creates a new interval instance, setting <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>=<see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/>=0d;
  22512. </summary>
  22513. </member>
  22514. <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor(System.Double,System.Double)">
  22515. <summary>
  22516. Creates a new interval instance, setting <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>=<paramref name="min"/> and <see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/>=<paramref name="max"/>;
  22517. </summary>
  22518. <param name="min">The minimum value</param>
  22519. <param name="max">The maximum value</param>
  22520. </member>
  22521. <member name="M:NetTopologySuite.Index.Bintree.Interval.#ctor(NetTopologySuite.Index.Bintree.Interval)">
  22522. <summary>
  22523. Creates a new interval instance, setting <see cref="P:NetTopologySuite.Index.Bintree.Interval.Min"/>=<paramref name="interval.Min.Min"/> and <see cref="P:NetTopologySuite.Index.Bintree.Interval.Max"/>=<paramref name="interval.Max.Max"/>.
  22524. </summary>
  22525. <param name="interval"></param>
  22526. </member>
  22527. <member name="M:NetTopologySuite.Index.Bintree.Interval.Init(System.Double,System.Double)">
  22528. <summary>
  22529. Method to initialize the interval with the given <paramref name="min"/> and <paramref name="max"/> values. <br/>
  22530. If <paramref name="max"/> &lt; <paramref name="min"/>, their values are exchanged.
  22531. </summary>
  22532. <param name="min">The minimum value</param>
  22533. <param name="max">The maximum value</param>
  22534. </member>
  22535. <member name="M:NetTopologySuite.Index.Bintree.Interval.ExpandToInclude(NetTopologySuite.Index.Bintree.Interval)">
  22536. <summary>
  22537. Method to expand this interval to contain <paramref name="interval"/>.
  22538. </summary>
  22539. <param name="interval">The interval to contain.</param>
  22540. </member>
  22541. <member name="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(NetTopologySuite.Index.Bintree.Interval)">
  22542. <summary>
  22543. Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> overlaps <paramref name="interval"/>.
  22544. </summary>
  22545. <param name="interval">The interval to test</param>
  22546. <returns><c>true</c> if this interval overlaps <paramref name="interval"/></returns>
  22547. </member>
  22548. <member name="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(System.Double,System.Double)">
  22549. <summary>
  22550. Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> overlaps the interval R[<paramref name="min"/>, <paramref name="max"/>].
  22551. </summary>
  22552. <param name="min">The mimimum value of the interval</param>
  22553. <param name="max">The maximum value of the interval</param>
  22554. <returns><c>true</c> if this interval overlaps the interval R[<paramref name="min"/>, <paramref name="max"/>]</returns>
  22555. </member>
  22556. <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(NetTopologySuite.Index.Bintree.Interval)">
  22557. <summary>
  22558. Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains <paramref name="interval"/>.
  22559. </summary>
  22560. <remarks>This is more rigid than <see cref="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(NetTopologySuite.Index.Bintree.Interval)"/></remarks>
  22561. <param name="interval">The interval to test</param>
  22562. <returns><c>true</c> if this interval contains <paramref name="interval"/></returns>
  22563. </member>
  22564. <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(System.Double,System.Double)">
  22565. <summary>
  22566. Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains the interval R[<paramref name="min"/>, <paramref name="max"/>].
  22567. </summary>
  22568. <remarks>This is more rigid than <see cref="M:NetTopologySuite.Index.Bintree.Interval.Overlaps(System.Double,System.Double)"/></remarks>
  22569. <param name="min">The mimimum value of the interval</param>
  22570. <param name="max">The maximum value of the interval</param>
  22571. <returns><c>true</c> if this interval contains the interval R[<paramref name="min"/>, <paramref name="max"/>]</returns>
  22572. </member>
  22573. <member name="M:NetTopologySuite.Index.Bintree.Interval.Contains(System.Double)">
  22574. <summary>
  22575. Function to test if this <see cref="T:NetTopologySuite.Index.Bintree.Interval"/> contains the value <paramref name="p"/>.
  22576. </summary>
  22577. <param name="p">The value to test</param>
  22578. <returns><c>true</c> if this interval contains the value <paramref name="p"/></returns>
  22579. </member>
  22580. <member name="T:NetTopologySuite.Index.Bintree.Key">
  22581. <summary>
  22582. A Key is a unique identifier for a node in a tree.
  22583. It contains a lower-left point and a level number. The level number
  22584. is the power of two for the size of the node envelope.
  22585. </summary>
  22586. </member>
  22587. <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeLevel(NetTopologySuite.Index.Bintree.Interval)">
  22588. <summary>
  22589. </summary>
  22590. <param name="interval"></param>
  22591. <returns></returns>
  22592. </member>
  22593. <member name="M:NetTopologySuite.Index.Bintree.Key.#ctor(NetTopologySuite.Index.Bintree.Interval)">
  22594. <summary>
  22595. </summary>
  22596. <param name="interval"></param>
  22597. </member>
  22598. <member name="P:NetTopologySuite.Index.Bintree.Key.Point">
  22599. <summary>
  22600. </summary>
  22601. </member>
  22602. <member name="P:NetTopologySuite.Index.Bintree.Key.Level">
  22603. <summary>
  22604. </summary>
  22605. </member>
  22606. <member name="P:NetTopologySuite.Index.Bintree.Key.Interval">
  22607. <summary>
  22608. </summary>
  22609. </member>
  22610. <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeKey(NetTopologySuite.Index.Bintree.Interval)">
  22611. <summary>
  22612. Return a square envelope containing the argument envelope,
  22613. whose extent is a power of two and which is based at a power of 2.
  22614. </summary>
  22615. <param name="itemInterval"></param>
  22616. </member>
  22617. <member name="M:NetTopologySuite.Index.Bintree.Key.ComputeInterval(System.Int32,NetTopologySuite.Index.Bintree.Interval)">
  22618. <summary>
  22619. </summary>
  22620. <param name="level"></param>
  22621. <param name="itemInterval"></param>
  22622. </member>
  22623. <member name="T:NetTopologySuite.Index.Bintree.Node`1">
  22624. <summary>
  22625. A node of a <c>Bintree</c>.
  22626. </summary>
  22627. </member>
  22628. <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateNode(NetTopologySuite.Index.Bintree.Interval)">
  22629. <summary>
  22630. Creates a node
  22631. </summary>
  22632. <param name="itemInterval">The interval of the node item</param>
  22633. <returns>A new node</returns>
  22634. </member>
  22635. <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateExpanded(NetTopologySuite.Index.Bintree.Node{`0},NetTopologySuite.Index.Bintree.Interval)">
  22636. <summary>
  22637. Creates a larger node, that contains both <paramref name="node.Interval.Interval"/> and <paramref name="addInterval"/>
  22638. If <paramref name="node"/> is <c>null</c>, a node for <paramref name="addInterval"/> is created.
  22639. </summary>
  22640. <param name="node">The original node</param>
  22641. <param name="addInterval">The additional interval</param>
  22642. <returns>A new node</returns>
  22643. </member>
  22644. <member name="M:NetTopologySuite.Index.Bintree.Node`1.#ctor(NetTopologySuite.Index.Bintree.Interval,System.Int32)">
  22645. <summary>
  22646. Creates a new node instance
  22647. </summary>
  22648. <param name="interval">The node's interval</param>
  22649. <param name="level">The node's level</param>
  22650. </member>
  22651. <member name="P:NetTopologySuite.Index.Bintree.Node`1.Interval">
  22652. <summary>
  22653. Gets the node's <see cref="P:NetTopologySuite.Index.Bintree.Node`1.Interval"/>
  22654. </summary>
  22655. </member>
  22656. <member name="M:NetTopologySuite.Index.Bintree.Node`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
  22657. <summary>
  22658. </summary>
  22659. <param name="itemInterval"></param>
  22660. <returns></returns>
  22661. </member>
  22662. <member name="M:NetTopologySuite.Index.Bintree.Node`1.GetNode(NetTopologySuite.Index.Bintree.Interval)">
  22663. <summary>
  22664. Returns the subnode containing the envelope.
  22665. Creates the node if
  22666. it does not already exist.
  22667. </summary>
  22668. <param name="searchInterval"></param>
  22669. </member>
  22670. <member name="M:NetTopologySuite.Index.Bintree.Node`1.Find(NetTopologySuite.Index.Bintree.Interval)">
  22671. <summary>
  22672. Returns the smallest existing
  22673. node containing the envelope.
  22674. </summary>
  22675. <param name="searchInterval"></param>
  22676. </member>
  22677. <member name="M:NetTopologySuite.Index.Bintree.Node`1.Insert(NetTopologySuite.Index.Bintree.Node{`0})">
  22678. <summary>
  22679. </summary>
  22680. <param name="node"></param>
  22681. </member>
  22682. <member name="M:NetTopologySuite.Index.Bintree.Node`1.GetSubnode(System.Int32)">
  22683. <summary>
  22684. Get the subnode for the index.
  22685. If it doesn't exist, create it.
  22686. </summary>
  22687. </member>
  22688. <member name="M:NetTopologySuite.Index.Bintree.Node`1.CreateSubnode(System.Int32)">
  22689. <summary>
  22690. </summary>
  22691. <param name="index"></param>
  22692. <returns></returns>
  22693. </member>
  22694. <member name="T:NetTopologySuite.Index.Bintree.NodeBase`1">
  22695. <summary>
  22696. The base class for nodes in a <c>Bintree</c>.
  22697. </summary>
  22698. </member>
  22699. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.GetSubnodeIndex(NetTopologySuite.Index.Bintree.Interval,System.Double)">
  22700. <summary>
  22701. Returns the index of the subnode that wholely contains the given interval.
  22702. If none does, returns -1.
  22703. </summary>
  22704. <param name="interval"></param>
  22705. <param name="centre"></param>
  22706. </member>
  22707. <member name="F:NetTopologySuite.Index.Bintree.NodeBase`1._items">
  22708. <summary>
  22709. </summary>
  22710. </member>
  22711. <member name="F:NetTopologySuite.Index.Bintree.NodeBase`1.Subnode">
  22712. <summary>
  22713. Subnodes are numbered as follows:
  22714. 0 | 1
  22715. .
  22716. </summary>
  22717. </member>
  22718. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Items">
  22719. <summary>
  22720. </summary>
  22721. </member>
  22722. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.Add(`0)">
  22723. <summary>
  22724. </summary>
  22725. <param name="item"></param>
  22726. </member>
  22727. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.AddAllItems(System.Collections.Generic.IList{`0})">
  22728. <summary>
  22729. </summary>
  22730. <param name="items"></param>
  22731. <returns></returns>
  22732. </member>
  22733. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
  22734. <summary>
  22735. </summary>
  22736. <param name="interval"></param>
  22737. <returns></returns>
  22738. </member>
  22739. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.AddAllItemsFromOverlapping(NetTopologySuite.Index.Bintree.Interval,System.Collections.Generic.ICollection{`0})">
  22740. <summary>
  22741. Adds items in the tree which potentially overlap the query interval
  22742. to the given collection.
  22743. If the query interval is <tt>null</tt>, add all items in the tree.
  22744. </summary>
  22745. <param name="interval">A query interval, or <c>null</c></param>
  22746. <param name="resultItems">The candidate items found</param>
  22747. </member>
  22748. <member name="M:NetTopologySuite.Index.Bintree.NodeBase`1.Remove(NetTopologySuite.Index.Bintree.Interval,`0)">
  22749. <summary>
  22750. Removes a single item from this subtree.
  22751. </summary>
  22752. <param name="itemInterval">The envelope containing the item</param>
  22753. <param name="item">The item to remove</param>
  22754. <returns><c>true</c> if the item was found and removed</returns>
  22755. </member>
  22756. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.IsPrunable">
  22757. <summary>
  22758. Gets whether this node is prunable
  22759. </summary>
  22760. </member>
  22761. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.HasChildren">
  22762. <summary>
  22763. Gets whether this node has any children
  22764. </summary>
  22765. </member>
  22766. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.HasItems">
  22767. <summary>
  22768. </summary>
  22769. </member>
  22770. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Depth">
  22771. <summary>
  22772. Gets whether this node has any subnodes
  22773. </summary>
  22774. </member>
  22775. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.Count">
  22776. <summary>
  22777. </summary>
  22778. </member>
  22779. <member name="P:NetTopologySuite.Index.Bintree.NodeBase`1.NodeCount">
  22780. <summary>
  22781. </summary>
  22782. </member>
  22783. <member name="T:NetTopologySuite.Index.Bintree.Root`1">
  22784. <summary>
  22785. The root node of a single <c>Bintree</c>.
  22786. It is centred at the origin,
  22787. and does not have a defined extent.
  22788. </summary>
  22789. </member>
  22790. <member name="M:NetTopologySuite.Index.Bintree.Root`1.Insert(NetTopologySuite.Index.Bintree.Interval,`0)">
  22791. <summary>
  22792. Insert an item into the tree this is the root of.
  22793. </summary>
  22794. <param name="itemInterval"></param>
  22795. <param name="item"></param>
  22796. </member>
  22797. <member name="M:NetTopologySuite.Index.Bintree.Root`1.InsertContained(NetTopologySuite.Index.Bintree.Node{`0},NetTopologySuite.Index.Bintree.Interval,`0)">
  22798. <summary>
  22799. Insert an item which is known to be contained in the tree rooted at
  22800. the given Node. Lower levels of the tree will be created
  22801. if necessary to hold the item.
  22802. </summary>
  22803. <param name="tree"></param>
  22804. <param name="itemInterval"></param>
  22805. <param name="item"></param>
  22806. </member>
  22807. <member name="M:NetTopologySuite.Index.Bintree.Root`1.IsSearchMatch(NetTopologySuite.Index.Bintree.Interval)">
  22808. <summary>
  22809. The root node matches all searches.
  22810. </summary>
  22811. <param name="interval"></param>
  22812. </member>
  22813. <member name="T:NetTopologySuite.Index.Chain.MonotoneChain">
  22814. <summary>
  22815. MonotoneChains are a way of partitioning the segments of a linestring to
  22816. allow for fast searching of intersections.
  22817. </summary>
  22818. <remarks>
  22819. <para>
  22820. They have the following properties:
  22821. <list type="bullet">
  22822. <item><description>the segments within a monotone chain never intersect each other</description></item>
  22823. <item><description>the envelope of any contiguous subset of the segments in a monotone chain
  22824. is equal to the envelope of the endpoints of the subset.</description></item>
  22825. </list>
  22826. </para>
  22827. <para>
  22828. Property 1 means that there is no need to test pairs of segments from within
  22829. the same monotone chain for intersection.</para>
  22830. <para>Property 2 allows an efficient
  22831. binary search to be used to find the intersection points of two monotone chains.
  22832. For many types of real-world data, these properties eliminate a large number of
  22833. segment comparisons, producing substantial speed gains.</para>
  22834. <para>
  22835. One of the goals of this implementation of MonotoneChains is to be
  22836. as space and time efficient as possible. One design choice that aids this
  22837. is that a MonotoneChain is based on a subarray of a list of points.
  22838. This means that new arrays of points (potentially very large) do not
  22839. have to be allocated.</para>
  22840. <para>
  22841. MonotoneChains support the following kinds of queries:
  22842. <list type="table">
  22843. <item>Envelope select</item><description>determine all the segments in the chain which
  22844. intersect a given envelope.</description>
  22845. <item>Overlap</item><description>determine all the pairs of segments in two chains whose
  22846. envelopes overlap.</description>
  22847. </list>
  22848. </para>
  22849. <para>
  22850. This implementation of MonotoneChains uses the concept of internal iterators
  22851. (<see cref="T:NetTopologySuite.Index.Chain.MonotoneChainSelectAction"/> and <see cref="T:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction"/>)
  22852. to return the resultsets for the above queries.
  22853. This has time and space advantages, since it
  22854. is not necessary to build lists of instantiated objects to represent the segments
  22855. returned by the query.
  22856. Queries made in this manner are thread-safe.
  22857. </para>
  22858. <para>
  22859. MonotoneChains support being assigned an integer id value
  22860. to provide a total ordering for a set of chains.
  22861. This can be used during some kinds of processing to
  22862. avoid redundant comparisons
  22863. (i.e.by comparing only chains where the first id is less than the second).
  22864. </para>
  22865. <para>
  22866. MonotoneChains support using an tolerance distance for overlap tests.
  22867. This allows reporting overlap in situations where
  22868. intersection snapping is being used.
  22869. If this is used the chain envelope must be computed
  22870. providing an expansion distance using <see cref="M:NetTopologySuite.Index.Chain.MonotoneChain.GetEnvelope(System.Double)"/>.
  22871. </para>
  22872. </remarks>
  22873. </member>
  22874. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Int32,System.Object)">
  22875. <summary>
  22876. Creates a new MonotoneChain based on the given array of points.
  22877. </summary>
  22878. <param name="pts">The points containing the chain</param>
  22879. <param name="start">The index of the first coordinate in the chain</param>
  22880. <param name="end">The index of the last coordinate in the chain </param>
  22881. <param name="context">A user-defined data object</param>
  22882. </member>
  22883. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Id">
  22884. <summary>
  22885. Gets or sets the Id of this chain
  22886. </summary>
  22887. <remarks>
  22888. Useful for assigning an ordering to a set of
  22889. chains, which can be used to avoid redundant processing.
  22890. </remarks>
  22891. </member>
  22892. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.OverlapDistance">
  22893. <summary>
  22894. Gets or sets the overlap distance used in overlap tests
  22895. with other chains.
  22896. </summary>
  22897. </member>
  22898. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Context">
  22899. <summary>
  22900. Gets the chain's user-defined context data value.
  22901. </summary>
  22902. </member>
  22903. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Envelope">
  22904. <summary>
  22905. Gets the envelope of this chain
  22906. </summary>
  22907. </member>
  22908. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.GetEnvelope(System.Double)">
  22909. <summary>
  22910. Gets the envelope for this chain,
  22911. expanded by a given distance.
  22912. </summary>
  22913. <param name="expansionDistance">Distance to expand the envelope by</param>
  22914. <returns>The expanded envelope of the chain</returns>
  22915. </member>
  22916. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.StartIndex">
  22917. <summary>
  22918. Gets the index of the start of the monotone chain
  22919. in the underlying array of points.
  22920. </summary>
  22921. </member>
  22922. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.EndIndex">
  22923. <summary>
  22924. Gets the index of the end of the monotone chain
  22925. in the underlying array of points.
  22926. </summary>
  22927. </member>
  22928. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.GetLineSegment(System.Int32,NetTopologySuite.Geometries.LineSegment@)">
  22929. <summary>
  22930. Gets the line segment starting at <paramref name="index"/>
  22931. </summary>
  22932. <param name="index">The index of the segment</param>
  22933. <param name="ls">The line segment to extract to</param>
  22934. </member>
  22935. <member name="P:NetTopologySuite.Index.Chain.MonotoneChain.Coordinates">
  22936. <summary>
  22937. Return the subsequence of coordinates forming this chain.
  22938. Allocates a new array to hold the Coordinates.
  22939. </summary>
  22940. </member>
  22941. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Select(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.Chain.MonotoneChainSelectAction)">
  22942. <summary>
  22943. Determine all the line segments in the chain whose envelopes overlap
  22944. the searchEnvelope, and process them.
  22945. </summary>
  22946. <remarks>
  22947. The monotone chain search algorithm attempts to optimize
  22948. performance by not calling the select action on chain segments
  22949. which it can determine are not in the search envelope.
  22950. However, it *may* call the select action on segments
  22951. which do not intersect the search envelope.
  22952. This saves on the overhead of checking envelope intersection
  22953. each time, since clients may be able to do this more efficiently.
  22954. </remarks>
  22955. <param name="searchEnv">The search envelope</param>
  22956. <param name="mcs">The select action to execute on selected segments</param>
  22957. </member>
  22958. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeSelect(NetTopologySuite.Geometries.Envelope,System.Int32,System.Int32,NetTopologySuite.Index.Chain.MonotoneChainSelectAction)">
  22959. <summary>
  22960. </summary>
  22961. <param name="searchEnv"></param>
  22962. <param name="start0"></param>
  22963. <param name="end0"></param>
  22964. <param name="mcs"></param>
  22965. </member>
  22966. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeOverlaps(NetTopologySuite.Index.Chain.MonotoneChain,NetTopologySuite.Index.Chain.MonotoneChainOverlapAction)">
  22967. <summary>
  22968. Determines the line segments in two chains which may overlap,
  22969. and passes them to an overlap action.
  22970. </summary>
  22971. <remarks>
  22972. The monotone chain search algorithm attempts to optimize
  22973. performance by not calling the overlap action on chain segments
  22974. which it can determine do not overlap.
  22975. However, it* may* call the overlap action on segments
  22976. which do not actually interact.
  22977. This saves on the overhead of checking intersection
  22978. each time, since clients may be able to do this more efficiently.
  22979. </remarks>
  22980. <param name="mc">The chain to compare to</param>
  22981. <param name="mco">The overlap action to execute on selected segments</param>
  22982. </member>
  22983. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeOverlaps(NetTopologySuite.Index.Chain.MonotoneChain,System.Double,NetTopologySuite.Index.Chain.MonotoneChainOverlapAction)">
  22984. <summary>
  22985. Determines the line segments in two chains which may overlap,
  22986. using an overlap distance tolerance,
  22987. and passes them to an overlap action.
  22988. </summary>
  22989. <param name="mc">The chain to compare to</param>
  22990. <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
  22991. <param name="mco">The overlap action to execute on selected segments</param>
  22992. </member>
  22993. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.ComputeOverlaps(System.Int32,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,System.Int32,System.Double,NetTopologySuite.Index.Chain.MonotoneChainOverlapAction)">
  22994. <summary>
  22995. Uses an efficient mutual binary search strategy
  22996. to determine which pairs of chain segments
  22997. may overlap, and calls the given overlap action on them.
  22998. </summary>
  22999. <param name="start0">The start index of this chain section</param>
  23000. <param name="end0">The end index of this chain section</param>
  23001. <param name="mc">The target monotone chain</param>
  23002. <param name="start1">The start index of the target chain section</param>
  23003. <param name="end1">The end index of the target chain section</param>
  23004. <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
  23005. <param name="mco">The overlap action to execute on selected segments</param>
  23006. </member>
  23007. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Overlaps(System.Int32,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,System.Int32,System.Double)">
  23008. <summary>
  23009. Tests whether the envelope of a section of the chain
  23010. overlaps(intersects) the envelope of a section of another target chain.
  23011. This test is efficient due to the monotonicity property
  23012. of the sections(i.e.the envelopes can be are determined
  23013. from the section endpoints
  23014. rather than a full scan).
  23015. </summary>
  23016. <param name="start0">The start index of this chain section</param>
  23017. <param name="end0">The end index of this chain section</param>
  23018. <param name="mc">The target monotone chain</param>
  23019. <param name="start1">The start index of the target chain section</param>
  23020. <param name="end1">The end index of the target chain section</param>
  23021. <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
  23022. <returns><c>true</c> if the section envelopes overlap</returns>
  23023. </member>
  23024. <member name="M:NetTopologySuite.Index.Chain.MonotoneChain.Overlaps(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  23025. <param name="p1">The 1st coordinate of the 1st segment</param>
  23026. <param name="p2">The 2nd coordinate of the 1st segment</param>
  23027. <param name="q1">The 1st coordinate of the 2nd segment</param>
  23028. <param name="q2">The 2nd coordinate of the 2nd segment</param>
  23029. <param name="overlapTolerance">The overlap tolerance distance (may be 0)</param>
  23030. </member>
  23031. <member name="T:NetTopologySuite.Index.Chain.MonotoneChainBuilder">
  23032. <summary>
  23033. Constructs <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s
  23034. for sequences of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  23035. </summary>
  23036. </member>
  23037. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.#ctor">
  23038. <summary>
  23039. Only static methods!
  23040. </summary>
  23041. </member>
  23042. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChains(NetTopologySuite.Geometries.Coordinate[])">
  23043. <summary>
  23044. Computes a list of the <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s
  23045. for a list of coordinates.
  23046. </summary>
  23047. <param name="pts">The list of points to compute chains for</param>
  23048. <returns>A list of the monotone chains for the points</returns>
  23049. </member>
  23050. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChains(NetTopologySuite.Geometries.Coordinate[],System.Object)">
  23051. <summary>
  23052. Return a list of the <c>MonotoneChain</c>s
  23053. for the given list of coordinates.
  23054. </summary>
  23055. <param name="pts">The list of points to compute chains for</param>
  23056. <param name="context">A data object to attach to each chain</param>
  23057. <returns>A list of the monotone chains for the points</returns>
  23058. </member>
  23059. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.GetChainStartIndices(NetTopologySuite.Geometries.Coordinate[])">
  23060. <summary>
  23061. Return an array containing lists of start/end indexes of the monotone chains
  23062. for the given list of coordinates.
  23063. The last entry in the array points to the end point of the point array,
  23064. for use as a sentinel.
  23065. </summary>
  23066. <param name="pts"></param>
  23067. </member>
  23068. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainBuilder.FindChainEnd(NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  23069. <summary>
  23070. Finds the index of the last point in a monotone chain
  23071. starting at a given point.
  23072. Any repeated points (0-length segments) will be included
  23073. in the monotone chain returned.
  23074. </summary>
  23075. <param name="pts">The coordinates</param>
  23076. <param name="start">The start index</param>
  23077. <returns>
  23078. The index of the last point in the monotone chain starting at <c>start</c>.
  23079. </returns>
  23080. </member>
  23081. <member name="T:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction">
  23082. <summary>
  23083. The action for the internal iterator for performing
  23084. overlap queries on a MonotoneChain.
  23085. </summary>
  23086. </member>
  23087. <member name="F:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.overlapSeg1">
  23088. <summary>
  23089. </summary>
  23090. </member>
  23091. <member name="F:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.overlapSeg2">
  23092. <summary>
  23093. </summary>
  23094. </member>
  23095. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.Overlap(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
  23096. <summary>
  23097. This function can be overridden if the original chains are needed.
  23098. </summary>
  23099. <param name="mc1"></param>
  23100. <param name="start1">The index of the start of the overlapping segment from mc1.</param>
  23101. <param name="mc2"></param>
  23102. <param name="start2">The index of the start of the overlapping segment from mc2.</param>
  23103. </member>
  23104. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainOverlapAction.Overlap(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  23105. <summary>
  23106. This is a convenience function which can be overridden to obtain the actual
  23107. line segments which overlap.
  23108. </summary>
  23109. <param name="seg1"></param>
  23110. <param name="seg2"></param>
  23111. </member>
  23112. <member name="T:NetTopologySuite.Index.Chain.MonotoneChainSelectAction">
  23113. <summary>
  23114. The action for the internal iterator for performing
  23115. envelope select queries on a MonotoneChain.
  23116. </summary>
  23117. </member>
  23118. <member name="F:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.SelectedSegment">
  23119. <summary>
  23120. </summary>
  23121. </member>
  23122. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.Select(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
  23123. <summary>
  23124. This method is overridden to process a segment
  23125. in the context of the parent chain.
  23126. </summary>
  23127. <param name="mc">The parent chain</param>
  23128. <param name="startIndex">The index of the start vertex of the segment being processed</param>
  23129. </member>
  23130. <member name="M:NetTopologySuite.Index.Chain.MonotoneChainSelectAction.Select(NetTopologySuite.Geometries.LineSegment)">
  23131. <summary>
  23132. This is a convenience method which can be overridden to obtain the actual
  23133. line segment which is selected.
  23134. </summary>
  23135. <param name="seg"></param>
  23136. </member>
  23137. <member name="T:NetTopologySuite.Index.HPRtree.HPRtree`1">
  23138. <summary>
  23139. A Hilbert-Packed R-tree. This is a static R-tree
  23140. which is packed by using the Hilbert ordering
  23141. of the tree items.
  23142. <para/>
  23143. The tree is constructed by sorting the items
  23144. by the Hilbert code of the midpoint of their envelope.
  23145. Then, a set of internal layers is created recursively
  23146. as follows:
  23147. <list type="bullet">
  23148. <item><term>The items/nodes of the previous are partitioned into blocks of size <c>nodeCapacity</c></term></item>
  23149. <item><term>For each block a layer node is created with range equal to the envelope of the items/nodess in the block</term></item>
  23150. </list>
  23151. The internal layers are stored using an array to
  23152. store the node bounds.
  23153. The link between a node and its children is
  23154. stored implicitly in the indexes of the array.
  23155. For efficiency, the offsets to the layers
  23156. within the node array are pre-computed and stored.
  23157. <para/>
  23158. NOTE: Based on performance testing,
  23159. the HPRtree is somewhat faster than the STRtree.
  23160. It should also be more memory-efficent,
  23161. due to fewer object allocations.
  23162. <para/>
  23163. However, it is not clear whether this
  23164. will produce a significant improvement
  23165. for use in JTS operations.
  23166. </summary>
  23167. <seealso cref="T:NetTopologySuite.Index.Strtree.STRtree`1"/>
  23168. <author>Martin Davis</author>
  23169. </member>
  23170. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.#ctor">
  23171. <summary>
  23172. Creates a new index with the default node capacity.
  23173. </summary>
  23174. </member>
  23175. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.#ctor(System.Int32)">
  23176. <summary>
  23177. Creates a new index with the given node capacity.
  23178. </summary>
  23179. <param name="nodeCapacity">The node capacity to use</param>
  23180. </member>
  23181. <member name="P:NetTopologySuite.Index.HPRtree.HPRtree`1.Count">
  23182. <summary>Gets the number of items in the index.</summary>
  23183. <returns>The number of items</returns>
  23184. </member>
  23185. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
  23186. <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Insert(NetTopologySuite.Geometries.Envelope,`0)" />
  23187. </member>
  23188. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Query(NetTopologySuite.Geometries.Envelope)">
  23189. <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope)" />
  23190. </member>
  23191. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  23192. <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})" />
  23193. </member>
  23194. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
  23195. <inheritdoc cref="M:NetTopologySuite.Index.ISpatialIndex`1.Remove(NetTopologySuite.Geometries.Envelope,`0)" />
  23196. <remarks>Not supported, will always return <c>false</c></remarks>
  23197. </member>
  23198. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.Build">
  23199. <summary>
  23200. Builds the index, if not already built.
  23201. </summary>
  23202. </member>
  23203. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.NumNodesToCover(System.Int32,System.Int32)">
  23204. <summary>
  23205. Computes the number of blocks (nodes) required to
  23206. cover a given number of children.
  23207. </summary>
  23208. <param name="nChild"></param>
  23209. <param name="nodeCapacity"></param>
  23210. <returns>the number of nodes needed to cover the children</returns>
  23211. </member>
  23212. <member name="M:NetTopologySuite.Index.HPRtree.HPRtree`1.GetBounds">
  23213. <summary>
  23214. Gets the extents of the internal index nodes
  23215. </summary>
  23216. <returns>A list of the internal node extents</returns>
  23217. </member>
  23218. <member name="P:NetTopologySuite.Index.HPRtree.Item`1.Value">
  23219. <remarks>
  23220. This property is named Item in JTS
  23221. </remarks>
  23222. </member>
  23223. <member name="M:NetTopologySuite.Index.HPRtree.Item`1.ToString">
  23224. <inheritdoc cref="M:System.Object.ToString"/>
  23225. </member>
  23226. <member name="T:NetTopologySuite.Index.IIndexVisitor">
  23227. <summary>
  23228. A visitor for nodes and items in an index.
  23229. </summary>
  23230. </member>
  23231. <member name="M:NetTopologySuite.Index.IIndexVisitor.VisitItem(System.Object)">
  23232. <summary>
  23233. </summary>
  23234. <param name="item"></param>
  23235. </member>
  23236. <member name="T:NetTopologySuite.Index.IItemVisitor`1">
  23237. <summary>
  23238. A visitor for items in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>.
  23239. </summary>
  23240. </member>
  23241. <member name="M:NetTopologySuite.Index.IItemVisitor`1.VisitItem(`0)">
  23242. <summary>
  23243. Visits an item in the index.
  23244. </summary>
  23245. <param name="item">The index item to be visited.</param>
  23246. </member>
  23247. <member name="T:NetTopologySuite.Index.ILimitingItemVisitor`1">
  23248. <summary>
  23249. A visitor for items in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>
  23250. <para><b>Not used, commited by accident!</b></para>
  23251. </summary>
  23252. <typeparam name="T">The type of the items in the index</typeparam>
  23253. [Obsolete]
  23254. </member>
  23255. <member name="P:NetTopologySuite.Index.ILimitingItemVisitor`1.IsDone">
  23256. <summary>
  23257. Gets a value indicating if no more items need to be visited
  23258. </summary>
  23259. </member>
  23260. <member name="M:NetTopologySuite.Index.IntervalRTree.IntervalRTreeNode`1.ToString">
  23261. <inheritdoc cref="M:System.Object.ToString"/>
  23262. </member>
  23263. <member name="T:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1">
  23264. <summary>
  23265. A static index on a set of 1-dimensional intervals,
  23266. using an R-Tree packed based on the order of the interval midpoints.
  23267. </summary>
  23268. <remarks>
  23269. It supports range searching,
  23270. where the range is an interval of the real line (which may be a single point).
  23271. A common use is to index 1-dimensional intervals which
  23272. are the projection of 2-D objects onto an axis of the coordinate system.
  23273. <para>
  23274. This index structure is <i>static</i>
  23275. - items cannot be added or removed once the first query has been made.
  23276. The advantage of this characteristic is that the index performance
  23277. can be optimized based on a fixed set of items.
  23278. </para>
  23279. <author>Martin Davis</author>
  23280. </remarks>
  23281. </member>
  23282. <member name="F:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1._root">
  23283. <summary>
  23284. If root is null that indicates
  23285. that the tree has not yet been built,
  23286. OR nothing has been added to the tree.
  23287. In both cases, the tree is still open for insertions.
  23288. </summary>
  23289. </member>
  23290. <member name="M:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1.Insert(System.Double,System.Double,`0)">
  23291. <summary>
  23292. Adds an item to the index which is associated with the given interval
  23293. </summary>
  23294. <param name="min">The lower bound of the item interval</param>
  23295. <param name="max">The upper bound of the item interval</param>
  23296. <param name="item">The item to insert</param>
  23297. <exception cref="T:System.InvalidOperationException">if the index has already been queried</exception>
  23298. </member>
  23299. <member name="M:NetTopologySuite.Index.IntervalRTree.SortedPackedIntervalRTree`1.Query(System.Double,System.Double,NetTopologySuite.Index.IItemVisitor{`0})">
  23300. <summary>
  23301. Search for intervals in the index which intersect the given closed interval
  23302. and apply the visitor to them.
  23303. </summary>
  23304. <param name="min">The lower bound of the query interval</param>
  23305. <param name="max">The upper bound of the query interval</param>
  23306. <param name="visitor">The visitor to pass any matched items to</param>
  23307. </member>
  23308. <member name="T:NetTopologySuite.Index.ISpatialIndex`1">
  23309. <summary>
  23310. The basic insertion and query operations supported by classes
  23311. implementing spatial index algorithms.
  23312. A spatial index typically provides a primary filter for range rectangle queries. A
  23313. secondary filter is required to test for exact intersection. Of course, this
  23314. secondary filter may consist of other tests besides intersection, such as
  23315. testing other kinds of spatial relationships.
  23316. </summary>
  23317. </member>
  23318. <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
  23319. <summary>
  23320. Adds a spatial item with an extent specified by the given <c>Envelope</c> to the index.
  23321. </summary>
  23322. </member>
  23323. <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope)">
  23324. <summary>
  23325. Queries the index for all items whose extents intersect the given search <c>Envelope</c>
  23326. Note that some kinds of indexes may also return objects which do not in fact
  23327. intersect the query envelope.
  23328. </summary>
  23329. <param name="searchEnv">The envelope to query for.</param>
  23330. <returns>A list of the items found by the query.</returns>
  23331. </member>
  23332. <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  23333. <summary>
  23334. Queries the index for all items whose extents intersect the given search <see cref="T:NetTopologySuite.Geometries.Envelope" />,
  23335. and applies an <see cref="T:NetTopologySuite.Index.IItemVisitor`1" /> to them.
  23336. Note that some kinds of indexes may also return objects which do not in fact
  23337. intersect the query envelope.
  23338. </summary>
  23339. <param name="searchEnv">The envelope to query for.</param>
  23340. <param name="visitor">A visitor object to apply to the items found.</param>
  23341. </member>
  23342. <member name="M:NetTopologySuite.Index.ISpatialIndex`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
  23343. <summary>
  23344. Removes a single item from the tree.
  23345. </summary>
  23346. <param name="itemEnv">The Envelope of the item to remove.</param>
  23347. <param name="item">The item to remove.</param>
  23348. <returns> <c>true</c> if the item was found.</returns>
  23349. </member>
  23350. <member name="T:NetTopologySuite.Index.KdTree.IKdNodeVisitor`1">
  23351. <summary>
  23352. A visitor for <see cref="T:NetTopologySuite.Index.KdTree.KdNode`1"/>s in a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/> index.
  23353. </summary>
  23354. <version>1.7</version>
  23355. </member>
  23356. <member name="M:NetTopologySuite.Index.KdTree.IKdNodeVisitor`1.Visit(NetTopologySuite.Index.KdTree.KdNode{`0})">
  23357. <summary>
  23358. Visits a node.
  23359. </summary>
  23360. <param name="node">The node to visit</param>
  23361. </member>
  23362. <member name="T:NetTopologySuite.Index.KdTree.KdNode`1">
  23363. <summary>
  23364. A node of a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>, which represents one or more points in the same location.
  23365. </summary>
  23366. <typeparam name="T">The type of the object</typeparam>
  23367. <author>dskea</author>
  23368. </member>
  23369. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.#ctor(System.Double,System.Double,`0)">
  23370. <summary>
  23371. Creates a new KdNode.
  23372. </summary>
  23373. <param name="x">coordinate of point</param>
  23374. <param name="y">coordinate of point</param>
  23375. <param name="data">A data objects to associate with this node</param>
  23376. </member>
  23377. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.#ctor(NetTopologySuite.Geometries.Coordinate,`0)">
  23378. <summary>
  23379. Creates a new KdNode.
  23380. </summary>
  23381. <param name="p">The point location of new node</param>
  23382. <param name="data">A data objects to associate with this node</param>
  23383. </member>
  23384. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.X">
  23385. <summary>
  23386. Gets x-ordinate of this node
  23387. </summary>
  23388. <returns>The <c>x</c>-ordinate</returns>
  23389. </member>
  23390. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Y">
  23391. <summary>
  23392. Gets y-ordinate of this node
  23393. </summary>
  23394. <returns>The <c>y</c>-ordinate</returns>
  23395. </member>
  23396. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.SplitValue(System.Boolean)">
  23397. <summary>
  23398. Gets the split value at a node, depending on
  23399. whether the node splits on X or Y.
  23400. The X (or Y) ordinates of all points in the left subtree
  23401. are less than the split value, and those
  23402. in the right subtree are greater than or equal to the split value.
  23403. </summary>
  23404. <param name="isSplitOnX">A flag whether the node splits a X or Y</param>
  23405. <returns>The splitting value</returns>
  23406. </member>
  23407. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Coordinate">
  23408. <summary>
  23409. Gets the location of this node
  23410. </summary>
  23411. <returns>The <c>Coordinate</c></returns>
  23412. </member>
  23413. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Data">
  23414. <summary>
  23415. Gets the user data object associated with this node.
  23416. </summary>
  23417. <returns>The user data</returns>
  23418. </member>
  23419. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Left">
  23420. <summary>
  23421. Gets or sets the left node of the tree
  23422. </summary>
  23423. <returns>The left node</returns>
  23424. </member>
  23425. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Right">
  23426. <summary>
  23427. Gets or sets the right node of the tree
  23428. </summary>
  23429. <returns>The right node</returns>
  23430. </member>
  23431. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.Count">
  23432. <summary>
  23433. Gets the number of inserted points that are coincident at this location.
  23434. </summary>
  23435. </member>
  23436. <member name="P:NetTopologySuite.Index.KdTree.KdNode`1.IsRepeated">
  23437. <summary>
  23438. Gets whether more than one point with this value have been inserted (up to the tolerance)
  23439. </summary>
  23440. <returns></returns>
  23441. </member>
  23442. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsRangeOverLeft(System.Boolean,NetTopologySuite.Geometries.Envelope)">
  23443. <summary>
  23444. Tests whether the node's left subtree may contain values
  23445. in a given range envelope.
  23446. </summary>
  23447. <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
  23448. <param name="env">The range envelope</param>
  23449. <returns><c>true</c> if the left subtree is in range</returns>
  23450. </member>
  23451. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsRangeOverRight(System.Boolean,NetTopologySuite.Geometries.Envelope)">
  23452. <summary>
  23453. Tests whether the node's right subtree may contain values
  23454. in a given range envelope.
  23455. </summary>
  23456. <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
  23457. <param name="env">The range envelope</param>
  23458. <returns><c>true</c>if the right subtree is in range</returns>
  23459. </member>
  23460. <member name="M:NetTopologySuite.Index.KdTree.KdNode`1.IsPointOnLeft(System.Boolean,NetTopologySuite.Geometries.Coordinate)">
  23461. <summary>
  23462. Tests whether a point is strictly to the left
  23463. of the splitting plane for this node.
  23464. If so it may be in the left subtree of this node,
  23465. Otherwise, the point may be in the right subtree.
  23466. The point is to the left if its X (or Y) ordinate
  23467. is less than the split value.
  23468. </summary>
  23469. <param name="isSplitOnX">A flag whether the node splits on X or Y</param>
  23470. <param name="pt">The query point</param>
  23471. <returns><c>true</c> if the point is strictly to the left.</returns>
  23472. <seealso cref="M:NetTopologySuite.Index.KdTree.KdNode`1.SplitValue(System.Boolean)"/>
  23473. </member>
  23474. <member name="T:NetTopologySuite.Index.KdTree.KdTree`1">
  23475. <summary>
  23476. An implementation of a
  23477. <a href='https://en.wikipedia.org/wiki/K-d_tree'> KD - Tree </a>
  23478. over two dimensions(X and Y).
  23479. KD-trees provide fast range searching and fast lookup for point data.
  23480. The tree is built dynamically by inserting points.
  23481. The tree supports queries by range and for point equality.
  23482. For querying an internal stack is used instead of recursion to avoid overflow.
  23483. </summary>
  23484. <remarks>
  23485. This implementation supports detecting and snapping points which are closer
  23486. than a given distance tolerance.
  23487. If the same point (up to tolerance) is inserted
  23488. more than once , it is snapped to the existing node.
  23489. In other words, if a point is inserted which lies
  23490. within the tolerance of a node already in the index,
  23491. it is snapped to that node.
  23492. When an inserted point is snapped to a node then a new node is not created
  23493. but the count of the existing node is incremented.
  23494. If more than one node in the tree is within tolerance of an inserted point,
  23495. the closest and then lowest node is snapped to.
  23496. <para/>
  23497. The structure of a KD-Tree depends on the order of insertion of the points.
  23498. A tree may become umbalanced if the inserted points are coherent
  23499. (e.g.monotonic in one or both dimensions).
  23500. A perfectly balanced tree has depth of only log2(N),
  23501. but an umbalanced tree may be much deeper.
  23502. This has a serious impact on query efficiency.
  23503. One solution to this is to randomize the order of points before insertion
  23504. (e.g. by using <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle"> Fisher - Yates shuffling</a>).
  23505. </remarks>
  23506. <typeparam name="T">The type of the user data object</typeparam>
  23507. <author>David Skea</author>
  23508. <author>Martin Davis</author>
  23509. </member>
  23510. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.ToCoordinates(System.Collections.Generic.IEnumerable{NetTopologySuite.Index.KdTree.KdNode{`0}})">
  23511. <summary>
  23512. Converts a collection of<see cref= "T:NetTopologySuite.Index.KdTree.KdNode`1" /> s to an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  23513. </summary>
  23514. <param name="kdnodes">A collection of nodes</param>
  23515. <returns>An array of the coordinates represented by the nodes</returns>
  23516. </member>
  23517. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.ToCoordinates(System.Collections.Generic.IEnumerable{NetTopologySuite.Index.KdTree.KdNode{`0}},System.Boolean)">
  23518. <summary>
  23519. Converts a collection of <see cref="T:NetTopologySuite.Index.KdTree.KdNode`1"/>{@link KdNode}s
  23520. to an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s,
  23521. specifying whether repeated nodes should be represented
  23522. by multiple coordinates.
  23523. </summary>
  23524. <param name="kdnodes">a collection of nodes</param>
  23525. <param name="includeRepeated">true if repeated nodes should
  23526. be included multiple times</param>
  23527. <returns>An array of the coordinates represented by the nodes</returns>
  23528. </member>
  23529. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.#ctor">
  23530. <summary>
  23531. Creates a new instance of a KdTree with a snapping tolerance of 0.0.
  23532. (I.e. distinct points will <i>not</i> be snapped)
  23533. </summary>
  23534. </member>
  23535. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.#ctor(System.Double)">
  23536. <summary>
  23537. Creates a new instance of a KdTree with a snapping distance
  23538. tolerance. Points which lie closer than the tolerance to a point already
  23539. in the tree will be treated as identical to the existing point.
  23540. </summary>
  23541. <param name="tolerance">The tolerance distance for considering two points equal</param>
  23542. </member>
  23543. <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.IsEmpty">
  23544. <summary>
  23545. Tests whether the index contains any items.
  23546. </summary>
  23547. </member>
  23548. <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Root">
  23549. <summary>
  23550. Gets a value indicating the root node of the tree
  23551. </summary>
  23552. <returns>The root node of the tree</returns>
  23553. </member>
  23554. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Insert(NetTopologySuite.Geometries.Coordinate)">
  23555. <summary>
  23556. Inserts a new point in the kd-tree, with no data.
  23557. </summary>
  23558. <param name="p">The point to insert</param>
  23559. <returns>The kdnode containing the point</returns>
  23560. </member>
  23561. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Insert(NetTopologySuite.Geometries.Coordinate,`0)">
  23562. <summary>
  23563. Inserts a new point into the kd-tree.
  23564. </summary>
  23565. <param name="p">The point to insert</param>
  23566. <param name="data">A data item for the point</param>
  23567. <returns>
  23568. A new KdNode if a new point is inserted, else an existing
  23569. node is returned with its counter incremented. This can be checked
  23570. by testing returnedNode.getCount() > 1.
  23571. </returns>
  23572. </member>
  23573. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.FindBestMatchNode(NetTopologySuite.Geometries.Coordinate)">
  23574. <summary>
  23575. Finds the node in the tree which is the best match for a point
  23576. being inserted.
  23577. The match is made deterministic by returning the lowest of any nodes which
  23578. lie the same distance from the point.
  23579. There may be no match if the point is not within the distance tolerance of any
  23580. existing node.
  23581. </summary>
  23582. <param name="p">The point being inserted</param>
  23583. <returns>
  23584. <list type="bullet">
  23585. <item><description>the best matching node</description></item>
  23586. <item><description>null if no match was found</description></item>
  23587. </list>
  23588. </returns>
  23589. </member>
  23590. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.InsertExact(NetTopologySuite.Geometries.Coordinate,`0)">
  23591. <summary>
  23592. Inserts a point known to be beyond the distance tolerance of any existing node.
  23593. The point is inserted at the bottom of the exact splitting path,
  23594. so that tree shape is deterministic.
  23595. </summary>
  23596. <param name="p">The point to insert</param>
  23597. <param name="data">The data associated with <paramref name="p"/></param>
  23598. <returns>
  23599. <list type="bullet">
  23600. <item><description>The data for the point</description></item>
  23601. <item><description>The created node</description></item>
  23602. </list>
  23603. </returns>
  23604. </member>
  23605. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.KdTree.IKdNodeVisitor{`0})">
  23606. <summary>
  23607. Performs a range search of the points in the index and visits all nodes found.
  23608. </summary>
  23609. <param name="queryEnv">The range rectangle to query</param>
  23610. <param name="visitor">A visitor to visit all nodes found by the search</param>
  23611. </member>
  23612. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope)">
  23613. <summary>
  23614. Performs a range search of the points in the index.
  23615. </summary>
  23616. <param name="queryEnv">The range rectangle to query</param>
  23617. <returns>A collection of the KdNodes found</returns>
  23618. </member>
  23619. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Envelope,System.Collections.Generic.IList{NetTopologySuite.Index.KdTree.KdNode{`0}})">
  23620. <summary>
  23621. Performs a range search of the points in the index.
  23622. </summary>
  23623. <param name="queryEnv">The range rectangle to query</param>
  23624. <param name="result">A collection to accumulate the result nodes into</param>
  23625. </member>
  23626. <member name="M:NetTopologySuite.Index.KdTree.KdTree`1.Query(NetTopologySuite.Geometries.Coordinate)">
  23627. <summary>
  23628. Searches for a given point in the index and returns its node if found.
  23629. </summary>
  23630. <param name="queryPt">the point to query</param>
  23631. <returns>the point node, if it is found in the index, or <see langword="null"/> if not</returns>
  23632. </member>
  23633. <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Depth">
  23634. <summary>
  23635. Gets a value indicating the depth of the tree
  23636. </summary>
  23637. <returns>The depth of the tree</returns>
  23638. </member>
  23639. <member name="P:NetTopologySuite.Index.KdTree.KdTree`1.Count">
  23640. <summary>
  23641. Gets a value indicating the number of items in the tree.
  23642. </summary>
  23643. <returns>The number of items in the tree.</returns>
  23644. </member>
  23645. <member name="T:NetTopologySuite.Index.KdTree.KdTreeExtensions">
  23646. <summary>
  23647. Extensions methods for the <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>.
  23648. </summary>
  23649. </member>
  23650. <member name="M:NetTopologySuite.Index.KdTree.KdTreeExtensions.NearestNeighbor``1(NetTopologySuite.Index.KdTree.KdTree{``0},NetTopologySuite.Geometries.Coordinate)">
  23651. <summary>
  23652. Performs a nearest neighbor search of the points in the index.
  23653. </summary>
  23654. <param name="self">The KdTree to look for the nearest neighbor</param>
  23655. <param name="coord">The point to search the nearset neighbor for</param>
  23656. </member>
  23657. <member name="T:NetTopologySuite.Index.Quadtree.DoubleBits">
  23658. <summary>
  23659. DoubleBits manipulates Double numbers
  23660. by using bit manipulation and bit-field extraction.
  23661. For some operations (such as determining the exponent)
  23662. this is more accurate than using mathematical operations
  23663. (which suffer from round-off error).
  23664. The algorithms and constants in this class
  23665. apply only to IEEE-754 double-precision floating point format.
  23666. </summary>
  23667. </member>
  23668. <member name="F:NetTopologySuite.Index.Quadtree.DoubleBits.ExponentBias">
  23669. <summary>
  23670. </summary>
  23671. </member>
  23672. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.PowerOf2(System.Int32)">
  23673. <summary>
  23674. </summary>
  23675. <param name="exp"></param>
  23676. <returns></returns>
  23677. </member>
  23678. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.GetExponent(System.Double)">
  23679. <summary>
  23680. </summary>
  23681. <param name="d"></param>
  23682. <returns></returns>
  23683. </member>
  23684. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.TruncateToPowerOfTwo(System.Double)">
  23685. <summary>
  23686. </summary>
  23687. <param name="d"></param>
  23688. <returns></returns>
  23689. </member>
  23690. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ToBinaryString(System.Double)">
  23691. <summary>
  23692. </summary>
  23693. <param name="d"></param>
  23694. <returns></returns>
  23695. </member>
  23696. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.MaximumCommonMantissa(System.Double,System.Double)">
  23697. <summary>
  23698. </summary>
  23699. <param name="d1"></param>
  23700. <param name="d2"></param>
  23701. <returns></returns>
  23702. </member>
  23703. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.#ctor(System.Double)">
  23704. <summary>
  23705. </summary>
  23706. <param name="x"></param>
  23707. </member>
  23708. <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.Double">
  23709. <summary>
  23710. </summary>
  23711. </member>
  23712. <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.BiasedExponent">
  23713. <summary>
  23714. Determines the exponent for the number.
  23715. </summary>
  23716. </member>
  23717. <member name="P:NetTopologySuite.Index.Quadtree.DoubleBits.Exponent">
  23718. <summary>
  23719. Determines the exponent for the number.
  23720. </summary>
  23721. </member>
  23722. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ZeroLowerBits(System.Int32)">
  23723. <summary>
  23724. </summary>
  23725. <param name="nBits"></param>
  23726. </member>
  23727. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.GetBit(System.Int32)">
  23728. <summary>
  23729. </summary>
  23730. <param name="i"></param>
  23731. <returns></returns>
  23732. </member>
  23733. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.NumCommonMantissaBits(NetTopologySuite.Index.Quadtree.DoubleBits)">
  23734. <summary>
  23735. This computes the number of common most-significant bits in the mantissa.
  23736. It does not count the hidden bit, which is always 1.
  23737. It does not determine whether the numbers have the same exponent - if they do
  23738. not, the value computed by this function is meaningless.
  23739. </summary>
  23740. <param name="db"></param>
  23741. <returns> The number of common most-significant mantissa bits.</returns>
  23742. </member>
  23743. <member name="M:NetTopologySuite.Index.Quadtree.DoubleBits.ToString">
  23744. <summary>
  23745. A representation of the Double bits formatted for easy readability.
  23746. </summary>
  23747. </member>
  23748. <member name="T:NetTopologySuite.Index.Quadtree.IntervalSize">
  23749. <summary>
  23750. Provides a test for whether an interval is
  23751. so small it should be considered as zero for the purposes of
  23752. inserting it into a binary tree.
  23753. The reason this check is necessary is that round-off error can
  23754. cause the algorithm used to subdivide an interval to fail, by
  23755. computing a midpoint value which does not lie strictly between the
  23756. endpoints.
  23757. </summary>
  23758. </member>
  23759. <member name="M:NetTopologySuite.Index.Quadtree.IntervalSize.#ctor">
  23760. <summary>
  23761. Only static methods!
  23762. </summary>
  23763. </member>
  23764. <member name="F:NetTopologySuite.Index.Quadtree.IntervalSize.MinBinaryExponent">
  23765. <summary>
  23766. This value is chosen to be a few powers of 2 less than the
  23767. number of bits available in the double representation (i.e. 53).
  23768. This should allow enough extra precision for simple computations to be correct,
  23769. at least for comparison purposes.
  23770. </summary>
  23771. </member>
  23772. <member name="M:NetTopologySuite.Index.Quadtree.IntervalSize.IsZeroWidth(System.Double,System.Double)">
  23773. <summary>
  23774. Computes whether the interval [min, max] is effectively zero width.
  23775. I.e. the width of the interval is so much less than the
  23776. location of the interval that the midpoint of the interval cannot be
  23777. represented precisely.
  23778. </summary>
  23779. </member>
  23780. <member name="T:NetTopologySuite.Index.Quadtree.Key">
  23781. <summary>
  23782. A Key is a unique identifier for a node in a quadtree.
  23783. It contains a lower-left point and a level number. The level number
  23784. is the power of two for the size of the node envelope.
  23785. </summary>
  23786. </member>
  23787. <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeQuadLevel(NetTopologySuite.Geometries.Envelope)">
  23788. <summary>
  23789. </summary>
  23790. <param name="env"></param>
  23791. <returns></returns>
  23792. </member>
  23793. <member name="M:NetTopologySuite.Index.Quadtree.Key.#ctor(NetTopologySuite.Geometries.Envelope)">
  23794. <summary>
  23795. </summary>
  23796. <param name="itemEnv"></param>
  23797. </member>
  23798. <member name="P:NetTopologySuite.Index.Quadtree.Key.Point">
  23799. <summary>
  23800. </summary>
  23801. </member>
  23802. <member name="P:NetTopologySuite.Index.Quadtree.Key.Level">
  23803. <summary>
  23804. </summary>
  23805. </member>
  23806. <member name="P:NetTopologySuite.Index.Quadtree.Key.Envelope">
  23807. <summary>
  23808. </summary>
  23809. </member>
  23810. <member name="P:NetTopologySuite.Index.Quadtree.Key.Centre">
  23811. <summary>
  23812. </summary>
  23813. </member>
  23814. <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeKey(NetTopologySuite.Geometries.Envelope)">
  23815. <summary>
  23816. Return a square envelope containing the argument envelope,
  23817. whose extent is a power of two and which is based at a power of 2.
  23818. </summary>
  23819. <param name="itemEnv"></param>
  23820. </member>
  23821. <member name="M:NetTopologySuite.Index.Quadtree.Key.ComputeKey(System.Int32,NetTopologySuite.Geometries.Envelope)">
  23822. <summary>
  23823. </summary>
  23824. <param name="level"></param>
  23825. <param name="itemEnv"></param>
  23826. </member>
  23827. <member name="T:NetTopologySuite.Index.Quadtree.Node`1">
  23828. <summary>
  23829. Represents a node of a <c>Quadtree</c>. Nodes contain
  23830. items which have a spatial extent corresponding to the node's position
  23831. in the quadtree.
  23832. </summary>
  23833. </member>
  23834. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateNode(NetTopologySuite.Geometries.Envelope)">
  23835. <summary>
  23836. </summary>
  23837. <param name="env"></param>
  23838. <returns></returns>
  23839. </member>
  23840. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateExpanded(NetTopologySuite.Index.Quadtree.Node{`0},NetTopologySuite.Geometries.Envelope)">
  23841. <summary>
  23842. </summary>
  23843. <param name="node"></param>
  23844. <param name="addEnv"></param>
  23845. <returns></returns>
  23846. </member>
  23847. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.#ctor(NetTopologySuite.Geometries.Envelope,System.Int32)">
  23848. <summary>
  23849. </summary>
  23850. <param name="env"></param>
  23851. <param name="level"></param>
  23852. </member>
  23853. <member name="P:NetTopologySuite.Index.Quadtree.Node`1.Envelope">
  23854. <summary>
  23855. </summary>
  23856. </member>
  23857. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
  23858. <summary>
  23859. </summary>
  23860. <param name="searchEnv"></param>
  23861. <returns></returns>
  23862. </member>
  23863. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.GetNode(NetTopologySuite.Geometries.Envelope)">
  23864. <summary>
  23865. Returns the subquad containing the envelope <paramref name="searchEnv"/>.
  23866. Creates the subquad if
  23867. it does not already exist.
  23868. </summary>
  23869. <param name="searchEnv">The envelope to search for</param>
  23870. <returns>The subquad containing the search envelope.</returns>
  23871. </member>
  23872. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.Find(NetTopologySuite.Geometries.Envelope)">
  23873. <summary>
  23874. Returns the smallest <i>existing</i>
  23875. node containing the envelope.
  23876. </summary>
  23877. <param name="searchEnv"></param>
  23878. </member>
  23879. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.InsertNode(NetTopologySuite.Index.Quadtree.Node{`0})">
  23880. <summary>
  23881. </summary>
  23882. <param name="node"></param>
  23883. </member>
  23884. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.GetSubnode(System.Int32)">
  23885. <summary>
  23886. Get the subquad for the index.
  23887. If it doesn't exist, create it.
  23888. </summary>
  23889. <param name="index"></param>
  23890. </member>
  23891. <member name="M:NetTopologySuite.Index.Quadtree.Node`1.CreateSubnode(System.Int32)">
  23892. <summary>
  23893. </summary>
  23894. <param name="index"></param>
  23895. <returns></returns>
  23896. </member>
  23897. <member name="P:NetTopologySuite.Index.Quadtree.Node`1.Level">
  23898. <summary>
  23899. Gets a value indicating the level of this node
  23900. </summary>
  23901. <returns>The level of this node</returns>
  23902. </member>
  23903. <member name="T:NetTopologySuite.Index.Quadtree.NodeBase`1">
  23904. <summary>
  23905. The base class for nodes in a <c>Quadtree</c>.
  23906. </summary>
  23907. </member>
  23908. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.GetSubnodeIndex(NetTopologySuite.Geometries.Envelope,System.Double,System.Double)">
  23909. <summary>
  23910. Gets the index of the subquad that wholly contains the given envelope.
  23911. If none does, returns -1.
  23912. </summary>
  23913. <returns>The index of the subquad that wholly contains the given envelope <br/>
  23914. or -1 if no subquad wholly contains the envelope</returns>
  23915. </member>
  23916. <member name="F:NetTopologySuite.Index.Quadtree.NodeBase`1._items">
  23917. <summary>
  23918. </summary>
  23919. </member>
  23920. <member name="F:NetTopologySuite.Index.Quadtree.NodeBase`1.Subnode">
  23921. <summary>
  23922. subquads are numbered as follows:
  23923. 2 | 3
  23924. --+--
  23925. 0 | 1
  23926. </summary>
  23927. </member>
  23928. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Items">
  23929. <summary>
  23930. </summary>
  23931. </member>
  23932. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.HasItems">
  23933. <summary>
  23934. </summary>
  23935. </member>
  23936. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Add(`0)">
  23937. <summary>
  23938. </summary>
  23939. <param name="item"></param>
  23940. </member>
  23941. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
  23942. <summary>
  23943. Removes a single item from this subtree.
  23944. </summary>
  23945. <param name="itemEnv">The envelope containing the item.</param>
  23946. <param name="item">The item to remove.</param>
  23947. <returns><c>true</c> if the item was found and removed.</returns>
  23948. </member>
  23949. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.IsPrunable">
  23950. <summary>
  23951. </summary>
  23952. </member>
  23953. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.HasChildren">
  23954. <summary>
  23955. </summary>
  23956. </member>
  23957. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.IsEmpty">
  23958. <summary>
  23959. Gets a value indicating that this node is empty, i.e. it does not contain an items or sub-nodes.
  23960. </summary>
  23961. </member>
  23962. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.AddAllItems(System.Collections.Generic.IList{`0}@)">
  23963. <summary>
  23964. Insert items in <c>this</c> into the parameter!
  23965. </summary>
  23966. <param name="resultItems">IList for adding items.</param>
  23967. <returns>Parameter IList with <c>this</c> items.</returns>
  23968. </member>
  23969. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
  23970. <summary>
  23971. </summary>
  23972. <param name="searchEnv"></param>
  23973. <returns></returns>
  23974. </member>
  23975. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.AddAllItemsFromOverlapping(NetTopologySuite.Geometries.Envelope,System.Collections.Generic.IList{`0}@)">
  23976. <summary>
  23977. </summary>
  23978. <param name="searchEnv"></param>
  23979. <param name="resultItems"></param>
  23980. </member>
  23981. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.Visit(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  23982. <summary>
  23983. </summary>
  23984. <param name="searchEnv"></param>
  23985. <param name="visitor"></param>
  23986. </member>
  23987. <member name="M:NetTopologySuite.Index.Quadtree.NodeBase`1.VisitItems(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  23988. <summary>
  23989. </summary>
  23990. <param name="searchEnv"></param>
  23991. <param name="visitor"></param>
  23992. </member>
  23993. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Depth">
  23994. <summary>
  23995. </summary>
  23996. </member>
  23997. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.Count">
  23998. <summary>
  23999. </summary>
  24000. </member>
  24001. <member name="P:NetTopologySuite.Index.Quadtree.NodeBase`1.NodeCount">
  24002. <summary>
  24003. </summary>
  24004. </member>
  24005. <member name="T:NetTopologySuite.Index.Quadtree.Quadtree`1">
  24006. <summary>
  24007. A Quadtree is a spatial index structure for efficient range querying
  24008. of items bounded by 2D rectangles.<br/>
  24009. <see cref="T:NetTopologySuite.Geometries.Geometry"/>s can be indexed by using their <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.<br/>
  24010. Any type of object can also be indexed, as long as it has an extent that can be
  24011. represented by an <see cref="T:NetTopologySuite.Geometries.Envelope"/>.
  24012. <para/>
  24013. This Quadtree index provides a <b>primary filter</b>
  24014. for range rectangle queries. The various query methods return a list of
  24015. all items which <i>may</i> intersect the query rectangle. Note that
  24016. it may thus return items which do <b>not</b> in fact intersect the query rectangle.
  24017. A secondary filter is required to test for actual intersection
  24018. between the query rectangle and the envelope of each candidate item.
  24019. The secondary filter may be performed explicitly,
  24020. or it may be provided implicitly by subsequent operations executed on the items
  24021. (for instance, if the index query is followed by computing a spatial predicate
  24022. between the query geometry and tree items,
  24023. the envelope intersection check is performed automatically.
  24024. <para/>
  24025. This implementation does not require specifying the extent of the inserted
  24026. items beforehand. It will automatically expand to accommodate any extent
  24027. of dataset.
  24028. <para/>
  24029. This data structure is also known as an <c>MX-CIF quadtree</c>
  24030. following the terminology usage of Samet and others.
  24031. </summary>
  24032. </member>
  24033. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.EnsureExtent(NetTopologySuite.Geometries.Envelope,System.Double)">
  24034. <summary>
  24035. Ensure that the envelope for the inserted item has non-zero extents.
  24036. Use the current minExtent to pad the envelope, if necessary.
  24037. </summary>
  24038. <param name="itemEnv"></param>
  24039. <param name="minExtent"></param>
  24040. </member>
  24041. <member name="F:NetTopologySuite.Index.Quadtree.Quadtree`1._minExtent">
  24042. <summary>
  24043. minExtent is the minimum envelope extent of all items
  24044. inserted into the tree so far. It is used as a heuristic value
  24045. to construct non-zero envelopes for features with zero X and/or Y extent.
  24046. Start with a non-zero extent, in case the first feature inserted has
  24047. a zero extent in both directions. This value may be non-optimal, but
  24048. only one feature will be inserted with this value.
  24049. </summary>
  24050. </member>
  24051. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.#ctor">
  24052. <summary>
  24053. Constructs a Quadtree with zero items.
  24054. </summary>
  24055. </member>
  24056. <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Depth">
  24057. <summary>
  24058. Returns the number of levels in the tree.
  24059. </summary>
  24060. </member>
  24061. <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.IsEmpty">
  24062. <summary>
  24063. Tests whether the index contains any items.
  24064. </summary>
  24065. </member>
  24066. <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Count">
  24067. <summary>
  24068. Returns the number of items in the tree.
  24069. </summary>
  24070. </member>
  24071. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
  24072. <summary>
  24073. </summary>
  24074. <param name="itemEnv"></param>
  24075. <param name="item"></param>
  24076. </member>
  24077. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
  24078. <summary>
  24079. Removes a single item from the tree.
  24080. </summary>
  24081. <param name="itemEnv">The Envelope of the item to be removed.</param>
  24082. <param name="item">The item to remove.</param>
  24083. <returns><c>true</c> if the item was found (and thus removed).</returns>
  24084. </member>
  24085. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Query(NetTopologySuite.Geometries.Envelope)">
  24086. <summary>
  24087. Queries the tree and returns items which may lie in the given search envelope.
  24088. </summary>
  24089. <remarks>
  24090. Precisely, the items that are returned are all items in the tree
  24091. whose envelope <b>may</b> intersect the search Envelope.
  24092. Note that some items with non-intersecting envelopes may be returned as well;
  24093. the client is responsible for filtering these out.
  24094. In most situations there will be many items in the tree which do not
  24095. intersect the search envelope and which are not returned - thus
  24096. providing improved performance over a simple linear scan.
  24097. </remarks>
  24098. <param name="searchEnv">The envelope of the desired query area.</param>
  24099. <returns>A List of items which may intersect the search envelope</returns>
  24100. </member>
  24101. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  24102. <summary>
  24103. Queries the tree and visits items which may lie in the given search envelope.
  24104. </summary>
  24105. <remarks>
  24106. Precisely, the items that are visited are all items in the tree
  24107. whose envelope <b>may</b> intersect the search Envelope.
  24108. Note that some items with non-intersecting envelopes may be visited as well;
  24109. the client is responsible for filtering these out.
  24110. In most situations there will be many items in the tree which do not
  24111. intersect the search envelope and which are not visited - thus
  24112. providing improved performance over a simple linear scan.
  24113. </remarks>
  24114. <param name="searchEnv">The envelope of the desired query area.</param>
  24115. <param name="visitor">A visitor object which is passed the visited items</param>
  24116. </member>
  24117. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.QueryAll">
  24118. <summary>
  24119. Return a list of all items in the Quadtree.
  24120. </summary>
  24121. </member>
  24122. <member name="M:NetTopologySuite.Index.Quadtree.Quadtree`1.CollectStats(NetTopologySuite.Geometries.Envelope)">
  24123. <summary>
  24124. </summary>
  24125. <param name="itemEnv"></param>
  24126. </member>
  24127. <member name="P:NetTopologySuite.Index.Quadtree.Quadtree`1.Root">
  24128. <summary>
  24129. Gets a value indicating the root node of this QuadTree
  24130. </summary>
  24131. <returns>The root node of this QuadTree</returns>
  24132. </member>
  24133. <member name="T:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1">
  24134. <summary>
  24135. Item visitor that specifically excludes a predefined area.
  24136. </summary>
  24137. <typeparam name="T">The type of the items to visit</typeparam>
  24138. </member>
  24139. <member name="M:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.#ctor(NetTopologySuite.Geometries.Envelope)">
  24140. <summary>
  24141. Initialize with <paramref name="exclude"/>
  24142. </summary>
  24143. <param name="exclude"></param>
  24144. </member>
  24145. <member name="M:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.VisitItem(`0)">
  24146. <inheritdoc cref="M:NetTopologySuite.Index.IItemVisitor`1.VisitItem(`0)"/>>
  24147. </member>
  24148. <member name="P:NetTopologySuite.Index.Quadtree.ExcludingItemVisitor`1.Items">
  24149. <summary>
  24150. Get a value indicating the gathered items
  24151. </summary>
  24152. </member>
  24153. <member name="T:NetTopologySuite.Index.Quadtree.Root`1">
  24154. <summary>
  24155. QuadRoot is the root of a single Quadtree.
  24156. It is centred at the origin,
  24157. and does not have a defined extent.
  24158. </summary>
  24159. </member>
  24160. <member name="M:NetTopologySuite.Index.Quadtree.Root`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
  24161. <summary>
  24162. Insert an item into the quadtree this is the root of.
  24163. </summary>
  24164. </member>
  24165. <member name="M:NetTopologySuite.Index.Quadtree.Root`1.InsertContained(NetTopologySuite.Index.Quadtree.Node{`0},NetTopologySuite.Geometries.Envelope,`0)">
  24166. <summary>
  24167. Insert an item which is known to be contained in the tree rooted at
  24168. the given QuadNode root. Lower levels of the tree will be created
  24169. if necessary to hold the item.
  24170. </summary>
  24171. </member>
  24172. <member name="M:NetTopologySuite.Index.Quadtree.Root`1.IsSearchMatch(NetTopologySuite.Geometries.Envelope)">
  24173. <summary>
  24174. </summary>
  24175. <param name="searchEnv"></param>
  24176. <returns></returns>
  24177. </member>
  24178. <member name="T:NetTopologySuite.Index.Strtree.AbstractNode`2">
  24179. <summary>
  24180. A node of an <see cref="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2"/>. A node is one of:
  24181. <list type="bullet">
  24182. <item>empty</item>
  24183. <item><description>an <i>interior node</i> containing child <see cref="T:NetTopologySuite.Index.Strtree.AbstractNode`2"/>s</description></item>
  24184. <item><description>a <i>leaf node</i> containing data items (<see cref="T:NetTopologySuite.Index.Strtree.ItemBoundable`2"/>s).</description></item>
  24185. </list>
  24186. A node stores the bounds of its children, and its level within the index tree.
  24187. </summary>
  24188. </member>
  24189. <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.#ctor(System.Int32)">
  24190. <summary>
  24191. Constructs an AbstractNode at the given level in the tree
  24192. </summary>
  24193. <param name="level">
  24194. 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
  24195. root node will have the highest level.
  24196. </param>
  24197. </member>
  24198. <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.ChildBoundables">
  24199. <summary>
  24200. Returns either child <see cref="T:NetTopologySuite.Index.Strtree.AbstractNode`2"/>s, or if this is a leaf node, real data (wrapped
  24201. in <see cref="T:NetTopologySuite.Index.Strtree.ItemBoundable`2"/>s).
  24202. </summary>
  24203. </member>
  24204. <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.ComputeBounds">
  24205. <summary>
  24206. Returns a representation of space that encloses this Boundable,
  24207. preferably not much bigger than this Boundable's boundary yet fast to
  24208. test for intersection with the bounds of other Boundables. The class of
  24209. object returned depends on the subclass of AbstractSTRtree.
  24210. </summary>
  24211. <returns>
  24212. An Envelope (for STRtrees), an Interval (for SIRtrees), or other
  24213. object (for other subclasses of AbstractSTRtree).
  24214. </returns>
  24215. </member>
  24216. <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Bounds">
  24217. <summary>
  24218. Gets the bounds of this node
  24219. </summary>
  24220. </member>
  24221. <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Level">
  24222. <summary>
  24223. Returns 0 if this node is a leaf, 1 if a parent of a leaf, and so on; the
  24224. root node will have the highest level.
  24225. </summary>
  24226. </member>
  24227. <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.Count">
  24228. <summary>
  24229. Gets the count of the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s at this node.
  24230. </summary>
  24231. </member>
  24232. <member name="P:NetTopologySuite.Index.Strtree.AbstractNode`2.IsEmpty">
  24233. <summary>
  24234. Tests whether there are any <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s at this node.
  24235. </summary>
  24236. </member>
  24237. <member name="M:NetTopologySuite.Index.Strtree.AbstractNode`2.AddChildBoundable(NetTopologySuite.Geometries.IBoundable{`0,`1})">
  24238. <summary>
  24239. Adds either an AbstractNode, or if this is a leaf node, a data object
  24240. (wrapped in an ItemBoundable).
  24241. </summary>
  24242. <param name="childBoundable">The child to add.</param>
  24243. </member>
  24244. <member name="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2">
  24245. <summary>
  24246. Base class for STRtree and SIRtree. STR-packed R-trees are described in:
  24247. P. Rigaux, Michel Scholl and Agnes Voisard. <i>Spatial Databases With
  24248. Application To GIS</i>. Morgan Kaufmann, San Francisco, 2002.
  24249. <para>
  24250. This implementation is based on <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s rather than just <see cref="T:NetTopologySuite.Index.Strtree.AbstractNode`2"/>s,
  24251. because the STR algorithm operates on both nodes and
  24252. data, both of which are treated as <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s.
  24253. </para>
  24254. </summary>
  24255. </member>
  24256. <member name="T:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IIntersectsOp">
  24257. <returns>
  24258. A test for intersection between two bounds, necessary because subclasses
  24259. of AbstractSTRtree have different implementations of bounds.
  24260. </returns>
  24261. </member>
  24262. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IIntersectsOp.Intersects(`0,`0)">
  24263. <summary>
  24264. For STRtrees, the bounds will be Envelopes;
  24265. for SIRtrees, Intervals;
  24266. for other subclasses of AbstractSTRtree, some other class.
  24267. </summary>
  24268. <param name="aBounds">The bounds of one spatial object.</param>
  24269. <param name="bBounds">The bounds of another spatial object.</param>
  24270. <returns>Whether the two bounds intersect.</returns>
  24271. </member>
  24272. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32)">
  24273. <summary>
  24274. Constructs an AbstractSTRtree with the specified maximum number of child
  24275. nodes that a node may have.
  24276. </summary>
  24277. <param name="nodeCapacity"></param>
  24278. </member>
  24279. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32,NetTopologySuite.Index.Strtree.AbstractNode{`0,`1})">
  24280. <summary>
  24281. Constructs an AbstractSTRtree with the specified maximum number of child
  24282. nodes that a node may have, and the root node
  24283. </summary>
  24284. <param name="nodeCapacity">The maximum number of child nodes in a node</param>
  24285. <param name="root">The root node that links to all other nodes in the tree</param>
  24286. </member>
  24287. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.#ctor(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}})">
  24288. <summary>
  24289. Constructs an AbstractSTRtree with the specified maximum number of child
  24290. nodes that a node may have, and all leaf nodes in the tree
  24291. </summary>
  24292. <param name="nodeCapacity">The maximum number of child nodes in a node</param>
  24293. <param name="itemBoundables">The list of leaf nodes in the tree</param>
  24294. </member>
  24295. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Build">
  24296. <summary>
  24297. Creates parent nodes, grandparent nodes, and so forth up to the root
  24298. node, for the data that has been inserted into the tree. Can only be
  24299. called once, and thus can be called only after all of the data has been
  24300. inserted into the tree.
  24301. </summary>
  24302. </member>
  24303. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateNode(System.Int32)">
  24304. <summary>
  24305. </summary>
  24306. <param name="level"></param>
  24307. <returns></returns>
  24308. </member>
  24309. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateParentBoundables(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}},System.Int32)">
  24310. <summary>
  24311. Sorts the childBoundables then divides them into groups of size M, where
  24312. M is the node capacity.
  24313. </summary>
  24314. <param name="childBoundables"></param>
  24315. <param name="newLevel"></param>
  24316. </member>
  24317. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.CreateHigherLevels(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{`0,`1}},System.Int32)">
  24318. <summary>
  24319. Creates the levels higher than the given level.
  24320. </summary>
  24321. <param name="boundablesOfALevel">The level to build on.</param>
  24322. <param name="level">the level of the Boundables, or -1 if the boundables are item
  24323. boundables (that is, below level 0).</param>
  24324. <returns>The root, which may be a ParentNode or a LeafNode.</returns>
  24325. </member>
  24326. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Root">
  24327. <summary>
  24328. Gets the root node of the tree.
  24329. </summary>
  24330. </member>
  24331. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.NodeCapacity">
  24332. <summary>
  24333. Gets the maximum number of child nodes that a node may have.
  24334. </summary>
  24335. </member>
  24336. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IsEmpty">
  24337. <summary>
  24338. Tests whether the index contains any items.
  24339. This method does not build the index,
  24340. so items can still be inserted after it has been called.
  24341. </summary>
  24342. </member>
  24343. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Count">
  24344. <summary>
  24345. Gets the number of elements in the tree
  24346. </summary>
  24347. </member>
  24348. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Depth">
  24349. <summary>
  24350. Gets the number of levels in the tree.
  24351. </summary>
  24352. </member>
  24353. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Query(`0)">
  24354. <summary>
  24355. Also builds the tree, if necessary.
  24356. </summary>
  24357. <param name="searchBounds"></param>
  24358. </member>
  24359. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.ItemsTree">
  24360. <summary>
  24361. Gets a tree structure (as a nested list)
  24362. corresponding to the structure of the items and nodes in this tree.
  24363. The returned Lists contain either Object items,
  24364. or Lists which correspond to subtrees of the tree
  24365. Subtrees which do not contain any items are not included.
  24366. Builds the tree if necessary.
  24367. </summary>
  24368. <returns>a List of items and/or Lists</returns>
  24369. </member>
  24370. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.IntersectsOp">
  24371. <returns>
  24372. A test for intersection between two bounds, necessary because subclasses
  24373. of AbstractSTRtree have different implementations of bounds.
  24374. </returns>
  24375. </member>
  24376. <member name="M:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.Remove(`0,`1)">
  24377. <summary>
  24378. Removes an item from the tree.
  24379. (Builds the tree, if necessary.)
  24380. </summary>
  24381. </member>
  24382. <member name="P:NetTopologySuite.Index.Strtree.AbstractSTRtree`2.ItemBoundables">
  24383. <summary>
  24384. Gets a value indicating the boundable items that have to be included in the index
  24385. </summary>
  24386. <returns>A list of boundable items</returns>
  24387. </member>
  24388. <member name="T:NetTopologySuite.Index.Strtree.BoundablePair`1">
  24389. <summary>
  24390. A pair of <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s, whose leaf items
  24391. support a distance metric between them.
  24392. Used to compute the distance between the members,
  24393. and to expand a member relative to the other
  24394. in order to produce new branches of the
  24395. Branch-and-Bound evaluation tree.
  24396. Provides an ordering based on the distance between the members,
  24397. which allows building a priority queue by minimum distance.
  24398. </summary>
  24399. <author>Martin Davis</author>
  24400. </member>
  24401. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.#ctor(NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0},NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0},NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
  24402. <summary>
  24403. Creates an instance of this class with the given <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s and the <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> function.
  24404. </summary>
  24405. <param name="boundable1">The first boundable</param>
  24406. <param name="boundable2">The second boundable</param>
  24407. <param name="itemDistance">The item distance function</param>
  24408. </member>
  24409. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.GetBoundable(System.Int32)">
  24410. <summary>
  24411. Gets one of the member <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in the pair
  24412. (indexed by [0, 1]).
  24413. </summary>
  24414. <param name="i">The index of the member to return (0 or 1)</param>
  24415. <returns>The chosen member</returns>
  24416. </member>
  24417. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.MaximumDistance">
  24418. <summary>
  24419. Computes the maximum distance between any
  24420. two items in the pair of nodes.
  24421. </summary>
  24422. <returns>the maximum distance between items in the pair</returns>
  24423. </member>
  24424. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.GetDistance">
  24425. <summary>
  24426. Computes the distance between the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in this pair.
  24427. The boundables are either composites or leaves.
  24428. If either is composite, the distance is computed as the minimum distance
  24429. between the bounds.
  24430. If both are leaves, the distance is computed by <see cref="M:NetTopologySuite.Index.Strtree.IItemDistance`2.Distance(NetTopologySuite.Geometries.IBoundable{`0,`1},NetTopologySuite.Geometries.IBoundable{`0,`1})"/>.
  24431. </summary>
  24432. <returns>The distance between the <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in this pair.</returns>
  24433. </member>
  24434. <member name="P:NetTopologySuite.Index.Strtree.BoundablePair`1.Distance">
  24435. <summary>
  24436. Gets the minimum possible distance between the Boundables in
  24437. this pair.
  24438. If the members are both items, this will be the
  24439. exact distance between them.
  24440. Otherwise, this distance will be a lower bound on
  24441. the distances between the items in the members.
  24442. </summary>
  24443. <returns>The exact or lower bound distance for this pair</returns>
  24444. </member>
  24445. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.CompareTo(NetTopologySuite.Index.Strtree.BoundablePair{`0})">
  24446. <summary>
  24447. Compares two pairs based on their minimum distances
  24448. </summary>
  24449. </member>
  24450. <member name="P:NetTopologySuite.Index.Strtree.BoundablePair`1.IsLeaves">
  24451. <summary>
  24452. Tests if both elements of the pair are leaf nodes
  24453. </summary>
  24454. </member>
  24455. <member name="M:NetTopologySuite.Index.Strtree.BoundablePair`1.ExpandToQueue(NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Index.Strtree.BoundablePair{`0}},System.Double)">
  24456. <summary>
  24457. For a pair which is not a leaf
  24458. (i.e. has at least one composite boundable)
  24459. computes a list of new pairs
  24460. from the expansion of the larger boundable
  24461. with distance less than minDistance
  24462. and adds them to a priority queue.
  24463. <para/>
  24464. Note that expanded pairs may contain
  24465. the same item/node on both sides.
  24466. This must be allowed to support distance
  24467. functions which have non-zero distances
  24468. between the item and itself (non-zero reflexive distance).
  24469. </summary>
  24470. <param name="priQ">The priority queue to add the new pairs to. </param>
  24471. <param name="minDistance">The limit on the distance between added pairs. </param>
  24472. </member>
  24473. <member name="T:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1">
  24474. <summary>
  24475. The Class BoundablePairDistanceComparator. It implements .Net <see cref="T:System.Collections.Generic.IComparer`1"/> and is used
  24476. as a parameter to sort the BoundablePair list.
  24477. </summary>
  24478. </member>
  24479. <member name="F:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1._normalOrder">
  24480. <summary>The normal order</summary>
  24481. </member>
  24482. <member name="M:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1.#ctor(System.Boolean)">
  24483. <summary>
  24484. Instantiates a new boundable pair distance comparator.
  24485. </summary>
  24486. <param name="normalOrder">
  24487. A value of <c>true</c> puts the lowest record at the head of this queue.
  24488. This is the natural order. <see cref="M:NetTopologySuite.Utilities.PriorityQueue`1.Peek"/> will get the least element.
  24489. </param>
  24490. </member>
  24491. <member name="M:NetTopologySuite.Index.Strtree.BoundablePairDistanceComparer`1.Compare(NetTopologySuite.Index.Strtree.BoundablePair{`0},NetTopologySuite.Index.Strtree.BoundablePair{`0})">
  24492. <inheritdoc cref="M:System.Collections.Generic.IComparer`1.Compare(`0,`0)"/>
  24493. </member>
  24494. <member name="T:NetTopologySuite.Index.Strtree.EnvelopeDistance">
  24495. <summary>
  24496. Utility functions for working with <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
  24497. </summary>
  24498. <author>mdavis</author>
  24499. </member>
  24500. <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaximumDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
  24501. <summary>
  24502. Computes the maximum distance between the points defining two envelopes.
  24503. This is the distance between the two corners which are farthest apart.
  24504. <para/>
  24505. Note that this is NOT the MinMax distance, which is a tighter bound on
  24506. the distance between the points in the envelopes.
  24507. </summary>
  24508. <param name="env1">An envelope</param>
  24509. <param name="env2">An envelope</param>
  24510. <returns>The maximum distance between the points defining the envelopes</returns>
  24511. </member>
  24512. <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MinMaxDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
  24513. <summary>
  24514. Computes the Min-Max Distance between two <see cref="T:NetTopologySuite.Geometries.Envelope"/>s.
  24515. It is equal to the minimum of the maximum distances between all pairs of
  24516. edge segments from the two envelopes.
  24517. This is the tight upper bound on the distance between
  24518. geometric items bounded by the envelopes.
  24519. <para/>
  24520. Theoretically this bound can be used in the R-tree nearest-neighbour branch-and-bound search
  24521. instead of <see cref="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaximumDistance(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)"/>.
  24522. However, little performance improvement is observed in practice.
  24523. </summary>
  24524. <param name="a">An envelope</param>
  24525. <param name="b">An envelope</param>
  24526. <returns>The min-max-distance between the envelopes</returns>
  24527. </member>
  24528. <member name="M:NetTopologySuite.Index.Strtree.EnvelopeDistance.MaxDistance(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  24529. <summary>
  24530. Computes the maximum distance between two line segments.
  24531. </summary>
  24532. <param name="ax1">x-ordinate of first endpoint of segment 1</param>
  24533. <param name="ay1">y-ordinate of first endpoint of segment 1</param>
  24534. <param name="ax2">x-ordinate of second endpoint of segment 1</param>
  24535. <param name="ay2">y-ordinate of second endpoint of segment 1</param>
  24536. <param name="bx1">x-ordinate of first endpoint of segment 2</param>
  24537. <param name="by1">y-ordinate of first endpoint of segment 2</param>
  24538. <param name="bx2">x-ordinate of second endpoint of segment 2</param>
  24539. <param name="by2">y-ordinate of second endpoint of segment 2</param>
  24540. <returns>Maximum distance between the segments</returns>
  24541. </member>
  24542. <member name="T:NetTopologySuite.Index.Strtree.GeometryItemDistance">
  24543. <summary>
  24544. An <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> function for
  24545. items which are <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/> method.
  24546. <para/>
  24547. To make this distance function suitable for
  24548. using to query a single index tree,
  24549. the distance metric is <i>anti-reflexive</i>.
  24550. That is, if the two arguments are the same Geometry object,
  24551. the distance returned is <see cref="F:System.Double.MaxValue"/>.
  24552. </summary>
  24553. <author>Martin Davis</author>
  24554. </member>
  24555. <member name="M:NetTopologySuite.Index.Strtree.GeometryItemDistance.Distance(NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Geometry})">
  24556. <summary>
  24557. Computes the distance between two <see cref="T:NetTopologySuite.Geometries.Geometry"/> items,
  24558. using the <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/> method.
  24559. </summary>
  24560. <param name="item1">An item which is a geometry.</param>
  24561. <param name="item2">An item which is a geometry.</param>
  24562. <exception cref="T:System.InvalidCastException">if either item is not a Geometry</exception>
  24563. <returns>The distance between the two items.</returns>
  24564. </member>
  24565. <member name="T:NetTopologySuite.Index.Strtree.IItemDistance`2">
  24566. <summary>
  24567. A function method which computes the distance
  24568. between two <see cref="T:NetTopologySuite.Geometries.IBoundable`2"/>s in an <see cref="T:NetTopologySuite.Index.Strtree.STRtree`1"/>.
  24569. Used for Nearest Neighbour searches.
  24570. <para/>
  24571. To make a distance function suitable for
  24572. querying a single index tree
  24573. via <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})"/>,
  24574. the function should have a non-zero <i>reflexive distance</i>.
  24575. That is, if the two arguments are the same object,
  24576. the distance returned should be non-zero.
  24577. If it is required that only pairs of <b>distinct</b> items be returned,
  24578. the distance function must be <i>anti-reflexive</i>,
  24579. and must return <see cref="F:System.Double.MaxValue"/> for identical arguments.
  24580. </summary>
  24581. <author>Martin Davis</author>
  24582. </member>
  24583. <member name="M:NetTopologySuite.Index.Strtree.IItemDistance`2.Distance(NetTopologySuite.Geometries.IBoundable{`0,`1},NetTopologySuite.Geometries.IBoundable{`0,`1})">
  24584. <summary>
  24585. Computes the distance between two items.
  24586. </summary>
  24587. <param name="item1">The first item.</param>
  24588. <param name="item2">The second item.</param>
  24589. <exception cref="T:System.ArgumentException">If the metric is not applicable to the arguments</exception>
  24590. <returns>The distance between <paramref name="item1"/> and <paramref name="item2"/>.</returns>
  24591. </member>
  24592. <member name="T:NetTopologySuite.Index.Strtree.Interval">
  24593. <summary>
  24594. A contiguous portion of 1D-space. Used internally by SIRtree.
  24595. </summary>
  24596. </member>
  24597. <member name="M:NetTopologySuite.Index.Strtree.Interval.#ctor(NetTopologySuite.Index.Strtree.Interval)">
  24598. <summary>
  24599. </summary>
  24600. <param name="other"></param>
  24601. </member>
  24602. <member name="M:NetTopologySuite.Index.Strtree.Interval.#ctor(System.Double,System.Double)">
  24603. <summary>
  24604. </summary>
  24605. <param name="min"></param>
  24606. <param name="max"></param>
  24607. </member>
  24608. <member name="P:NetTopologySuite.Index.Strtree.Interval.Centre">
  24609. <summary>
  24610. Gets the centre of the interval.
  24611. </summary>
  24612. </member>
  24613. <member name="M:NetTopologySuite.Index.Strtree.Interval.ExpandToInclude(NetTopologySuite.Index.Strtree.Interval)">
  24614. <summary>
  24615. </summary>
  24616. <param name="other"></param>
  24617. <returns><c>this</c></returns>
  24618. </member>
  24619. <member name="M:NetTopologySuite.Index.Strtree.Interval.ExpandedBy(NetTopologySuite.Index.Strtree.Interval)">
  24620. <summary>
  24621. </summary>
  24622. <param name="other"></param>
  24623. <returns><c>this</c></returns>
  24624. </member>
  24625. <member name="M:NetTopologySuite.Index.Strtree.Interval.Intersects(NetTopologySuite.Index.Strtree.Interval)">
  24626. <summary>
  24627. </summary>
  24628. <param name="other"></param>
  24629. <returns></returns>
  24630. </member>
  24631. <member name="M:NetTopologySuite.Index.Strtree.Interval.Equals(System.Object)">
  24632. <summary>
  24633. </summary>
  24634. <param name="o"></param>
  24635. <returns></returns>
  24636. </member>
  24637. <member name="M:NetTopologySuite.Index.Strtree.Interval.GetHashCode">
  24638. <inheritdoc/>
  24639. </member>
  24640. <member name="T:NetTopologySuite.Index.Strtree.ItemBoundable`2">
  24641. <summary>
  24642. Boundable wrapper for a non-Boundable spatial object. Used internally by
  24643. AbstractSTRtree.
  24644. </summary>
  24645. </member>
  24646. <member name="M:NetTopologySuite.Index.Strtree.ItemBoundable`2.#ctor(`0,`1)">
  24647. <summary>
  24648. </summary>
  24649. <param name="bounds"></param>
  24650. <param name="item"></param>
  24651. </member>
  24652. <member name="P:NetTopologySuite.Index.Strtree.ItemBoundable`2.Bounds">
  24653. <summary>
  24654. The bounds
  24655. </summary>
  24656. </member>
  24657. <member name="P:NetTopologySuite.Index.Strtree.ItemBoundable`2.Item">
  24658. <summary>
  24659. The item
  24660. </summary>
  24661. </member>
  24662. <member name="T:NetTopologySuite.Index.Strtree.SIRtree`1">
  24663. <summary>
  24664. One-dimensional version of an STR-packed R-tree. SIR stands for
  24665. "Sort-Interval-Recursive". STR-packed R-trees are described in:
  24666. P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
  24667. Application To GIS. Morgan Kaufmann, San Francisco, 2002.
  24668. </summary>
  24669. </member>
  24670. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.AnonymousAbstractNodeImpl.#ctor(System.Int32)">
  24671. <summary>
  24672. </summary>
  24673. <param name="nodeCapacity"></param>
  24674. </member>
  24675. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.AnonymousAbstractNodeImpl.ComputeBounds">
  24676. <summary>
  24677. </summary>
  24678. <returns></returns>
  24679. </member>
  24680. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.#ctor">
  24681. <summary>
  24682. Constructs an SIRtree with the default (10) node capacity.
  24683. </summary>
  24684. </member>
  24685. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.#ctor(System.Int32)">
  24686. <summary>
  24687. Constructs an SIRtree with the given maximum number of child nodes that
  24688. a node may have.
  24689. </summary>
  24690. </member>
  24691. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.CreateNode(System.Int32)">
  24692. <summary>
  24693. </summary>
  24694. <param name="level"></param>
  24695. <returns></returns>
  24696. </member>
  24697. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Insert(System.Double,System.Double,`0)">
  24698. <summary>
  24699. Inserts an item having the given bounds into the tree.
  24700. </summary>
  24701. <param name="x1"></param>
  24702. <param name="x2"></param>
  24703. <param name="item"></param>
  24704. </member>
  24705. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Query(System.Double)">
  24706. <summary>
  24707. Returns items whose bounds intersect the given value.
  24708. </summary>
  24709. <param name="x"></param>
  24710. </member>
  24711. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.Query(System.Double,System.Double)">
  24712. <summary>
  24713. Returns items whose bounds intersect the given bounds.
  24714. </summary>
  24715. <param name="x1">Possibly equal to x2.</param>
  24716. <param name="x2">Possibly equal to x1.</param>
  24717. </member>
  24718. <member name="P:NetTopologySuite.Index.Strtree.SIRtree`1.IntersectsOp">
  24719. <summary>
  24720. </summary>
  24721. </member>
  24722. <member name="M:NetTopologySuite.Index.Strtree.SIRtree`1.GetComparer">
  24723. <summary>
  24724. </summary>
  24725. <returns></returns>
  24726. </member>
  24727. <member name="T:NetTopologySuite.Index.Strtree.STRtree`1">
  24728. <summary>
  24729. A query-only R-tree created using the Sort-Tile-Recursive (STR) algorithm.
  24730. For two-dimensional spatial data.
  24731. <para/>
  24732. The STR packed R-tree is simple to implement and maximizes space
  24733. utilization; that is, as many leaves as possible are filled to capacity.
  24734. Overlap between nodes is far less than in a basic R-tree.
  24735. However, the index is semi-static; once the tree has been built
  24736. (which happens automatically upon the first query), items may
  24737. not be added.<br/>
  24738. Items may be removed from the tree using <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)"/>.
  24739. <para/>
  24740. Described in: P. Rigaux, Michel Scholl and Agnes Voisard. Spatial Databases With
  24741. Application To GIS. Morgan Kaufmann, San Francisco, 2002.
  24742. <para/>
  24743. <b>Note that inserting items into a tree is not thread-safe.</b>
  24744. Inserting performed on more than one thread must be synchronized externally.
  24745. <para/>
  24746. Querying a tree is thread-safe. The building phase is done synchronously,
  24747. and querying is stateless.
  24748. </summary>
  24749. </member>
  24750. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor">
  24751. <summary>
  24752. Constructs an STRtree with the default (10) node capacity.
  24753. </summary>
  24754. </member>
  24755. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32)">
  24756. <summary>
  24757. Constructs an STRtree with the given maximum number of child nodes that
  24758. a node may have.
  24759. </summary>
  24760. <remarks>The minimum recommended capacity setting is 4.</remarks>
  24761. </member>
  24762. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32,NetTopologySuite.Index.Strtree.AbstractNode{NetTopologySuite.Geometries.Envelope,`0})">
  24763. <summary>
  24764. Constructs an AbstractSTRtree with the specified maximum number of child
  24765. nodes that a node may have, and the root node
  24766. </summary>
  24767. <retmarks>The minimum recommended capacity setting is 4</retmarks>
  24768. <param name="nodeCapacity">The maximum number of child nodes in a node</param>
  24769. <param name="root">The root node that links to all other nodes in the tree</param>
  24770. </member>
  24771. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.#ctor(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}})">
  24772. <summary>
  24773. Constructs an AbstractSTRtree with the specified maximum number of child
  24774. nodes that a node may have, and all leaf nodes in the tree
  24775. </summary>
  24776. <retmarks>The minimum recommended capacity setting is 4</retmarks>
  24777. <param name="nodeCapacity">The maximum number of child nodes in a node</param>
  24778. <param name="itemBoundables">The list of leaf nodes in the tree</param>
  24779. </member>
  24780. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Avg(System.Double,System.Double)">
  24781. <summary>
  24782. </summary>
  24783. <param name="a"></param>
  24784. <param name="b"></param>
  24785. <returns></returns>
  24786. </member>
  24787. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CentreX(NetTopologySuite.Geometries.Envelope)">
  24788. <summary>
  24789. </summary>
  24790. <param name="e"></param>
  24791. <returns></returns>
  24792. </member>
  24793. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CentreY(NetTopologySuite.Geometries.Envelope)">
  24794. <summary>
  24795. </summary>
  24796. <param name="e"></param>
  24797. <returns></returns>
  24798. </member>
  24799. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundables(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
  24800. <summary>
  24801. Creates the parent level for the given child level. First, orders the items
  24802. by the x-values of the midpoints, and groups them into vertical slices.
  24803. For each slice, orders the items by the y-values of the midpoints, and
  24804. group them into runs of size M (the node capacity). For each run, creates
  24805. a new (parent) node.
  24806. </summary>
  24807. <param name="childBoundables"></param>
  24808. <param name="newLevel"></param>
  24809. </member>
  24810. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundablesFromVerticalSlices(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}}[],System.Int32)">
  24811. <summary>
  24812. </summary>
  24813. <param name="verticalSlices"></param>
  24814. <param name="newLevel"></param>
  24815. <returns></returns>
  24816. </member>
  24817. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateParentBoundablesFromVerticalSlice(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
  24818. <summary>
  24819. </summary>
  24820. <param name="childBoundables"></param>
  24821. <param name="newLevel"></param>
  24822. <returns></returns>
  24823. </member>
  24824. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.VerticalSlices(System.Collections.Generic.IList{NetTopologySuite.Geometries.IBoundable{NetTopologySuite.Geometries.Envelope,`0}},System.Int32)">
  24825. <summary>
  24826. </summary>
  24827. <param name="childBoundables">Must be sorted by the x-value of the envelope midpoints.</param>
  24828. <param name="sliceCount"></param>
  24829. </member>
  24830. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.CreateNode(System.Int32)">
  24831. <summary>
  24832. </summary>
  24833. <param name="level"></param>
  24834. <returns></returns>
  24835. </member>
  24836. <member name="P:NetTopologySuite.Index.Strtree.STRtree`1.IntersectsOp">
  24837. <summary>
  24838. </summary>
  24839. </member>
  24840. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Insert(NetTopologySuite.Geometries.Envelope,`0)">
  24841. <summary>
  24842. Inserts an item having the given bounds into the tree.
  24843. </summary>
  24844. <param name="itemEnv"></param>
  24845. <param name="item"></param>
  24846. </member>
  24847. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Query(NetTopologySuite.Geometries.Envelope)">
  24848. <summary>
  24849. Returns items whose bounds intersect the given envelope.
  24850. </summary>
  24851. <param name="searchEnv"></param>
  24852. </member>
  24853. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Query(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Index.IItemVisitor{`0})">
  24854. <summary>
  24855. Returns items whose bounds intersect the given envelope.
  24856. </summary>
  24857. <param name="searchEnv"></param>
  24858. <param name="visitor"></param>
  24859. </member>
  24860. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.Remove(NetTopologySuite.Geometries.Envelope,`0)">
  24861. <summary>
  24862. Removes a single item from the tree.
  24863. </summary>
  24864. <param name="itemEnv">The Envelope of the item to remove.</param>
  24865. <param name="item">The item to remove.</param>
  24866. <returns><c>true</c> if the item was found.</returns>
  24867. </member>
  24868. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.GetComparer">
  24869. <summary>
  24870. </summary>
  24871. <returns></returns>
  24872. </member>
  24873. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
  24874. <summary>
  24875. Finds the two nearest items in the tree,
  24876. using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
  24877. A Branch-and-Bound tree traversal algorithm is used
  24878. to provide an efficient search.
  24879. <para/>
  24880. If the tree is empty, the return value is <c>null</c>.
  24881. If the tree contains only one item, the return value is a pair containing that item.
  24882. If it is required to find only pairs of distinct items,
  24883. the <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> function must be <b>anti-reflexive</b>.
  24884. </summary>
  24885. <param name="itemDist">A distance metric applicable to the items in this tree</param>
  24886. <returns>The pair of the nearest items or <c>null</c> if the tree is empty</returns>
  24887. </member>
  24888. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Geometries.Envelope,`0,NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
  24889. <summary>
  24890. Finds the item in this tree which is nearest to the given <paramref name="item"/>,
  24891. using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
  24892. A Branch-and-Bound tree traversal algorithm is used
  24893. to provide an efficient search.
  24894. <para/>
  24895. The query <paramref name="item"/> does <b>not</b> have to be
  24896. contained in the tree, but it does
  24897. have to be compatible with the <paramref name="itemDist"/>
  24898. distance metric.
  24899. </summary>
  24900. <param name="env">The envelope of the query item</param>
  24901. <param name="item">The item to find the nearest neighbour of</param>
  24902. <param name="itemDist">A distance metric applicable to the items in this tree and the query item</param>
  24903. <returns>The nearest item in this tree or <c>null</c> if the tree is empty</returns>
  24904. </member>
  24905. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.STRtree{`0},NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})">
  24906. <summary>
  24907. Finds the two nearest items from this tree
  24908. and another tree,
  24909. using <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> as the distance metric.
  24910. A Branch-and-Bound tree traversal algorithm is used
  24911. to provide an efficient search.
  24912. The result value is a pair of items,
  24913. the first from this tree and the second
  24914. from the argument tree.
  24915. </summary>
  24916. <param name="tree">Another tree</param>
  24917. <param name="itemDist">A distance metric applicable to the items in the trees</param>
  24918. <returns>The pair of the nearest items, one from each tree or <c>null</c> if no pair of distinct items can be found.</returns>
  24919. </member>
  24920. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.IsWithinDistance(NetTopologySuite.Index.Strtree.STRtree{`0},NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0},System.Double)">
  24921. <summary>
  24922. Tests whether some two items from this tree and another tree
  24923. lie within a given distance.
  24924. <see cref="T:NetTopologySuite.Index.Strtree.IItemDistance`2"/> is used as the distance metric.
  24925. A Branch-and-Bound tree traversal algorithm is used
  24926. to provide an efficient search.
  24927. </summary>
  24928. <param name="tree">Another tree</param>
  24929. <param name="itemDist">A distance metric applicable to the items in the trees</param>
  24930. <param name="maxDistance">The distance limit for the search</param>
  24931. <returns><c>true</c> if there are items within the distance</returns>
  24932. </member>
  24933. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.IsWithinDistance(NetTopologySuite.Index.Strtree.BoundablePair{`0},System.Double)">
  24934. <summary>
  24935. Performs a withinDistance search on the tree node pairs.
  24936. This is a different search algorithm to nearest neighbour.
  24937. It can utilize the <see cref="M:NetTopologySuite.Index.Strtree.BoundablePair`1.MaximumDistance"/> between
  24938. tree nodes to confirm if two internal nodes must
  24939. have items closer than the maxDistance,
  24940. and short-circuit the search.
  24941. </summary>
  24942. <param name="initBndPair">The initial pair containing the tree root nodes</param>
  24943. <param name="maxDistance">The maximum distance to search for</param>
  24944. <returns><c>true</c> if two items lie within the given distance</returns>
  24945. </member>
  24946. <member name="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Geometries.Envelope,`0,NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0},System.Int32)">
  24947. <summary>
  24948. Finds up to <paramref name="k"/> items in this tree which are the top k nearest neighbors to the given <c>item</c>,
  24949. using <c>itemDist</c> as the distance metric.
  24950. A Branch-and-Bound tree traversal algorithm is used
  24951. to provide an efficient search.
  24952. This method implements the KNN algorithm described in the following paper:
  24953. <para/>
  24954. Roussopoulos, Nick, Stephen Kelley, and Fr�d�ric Vincent. "Nearest neighbor queries."
  24955. ACM sigmod record. Vol. 24. No. 2. ACM, 1995.
  24956. <para/>
  24957. The query <c>item</c> does <b>not</b> have to be
  24958. contained in the tree, but it does
  24959. have to be compatible with the <c>itemDist</c>
  24960. distance metric.<para/>
  24961. If the tree size is smaller than k fewer items will be returned.
  24962. If the tree is empty an array of size 0 is returned.
  24963. </summary>
  24964. <param name="env">The envelope of the query item</param>
  24965. <param name="item">The item to find the nearest neighbours of</param>
  24966. <param name="itemDist">A distance metric applicable to the items in this tree and the query item</param>
  24967. <param name="k">The maximum number of nearest items to search for</param>
  24968. <returns>An array of the nearest items found (with length between 0 and <paramref name="k"/>)</returns>
  24969. </member>
  24970. <member name="T:NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction">
  24971. <summary>
  24972. </summary>
  24973. </member>
  24974. <member name="M:NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction.Overlap(NetTopologySuite.Index.Sweepline.SweepLineInterval,NetTopologySuite.Index.Sweepline.SweepLineInterval)">
  24975. <summary>
  24976. </summary>
  24977. <param name="s0"></param>
  24978. <param name="s1"></param>
  24979. </member>
  24980. <member name="T:NetTopologySuite.Index.Sweepline.SweepLineEvents">
  24981. <summary>
  24982. </summary>
  24983. </member>
  24984. <member name="F:NetTopologySuite.Index.Sweepline.SweepLineEvents.Insert">
  24985. <summary>
  24986. </summary>
  24987. </member>
  24988. <member name="F:NetTopologySuite.Index.Sweepline.SweepLineEvents.Delete">
  24989. <summary>
  24990. </summary>
  24991. </member>
  24992. <member name="T:NetTopologySuite.Index.Sweepline.SweepLineEvent">
  24993. <summary>
  24994. </summary>
  24995. </member>
  24996. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineEvent.#ctor(System.Double,NetTopologySuite.Index.Sweepline.SweepLineEvent,NetTopologySuite.Index.Sweepline.SweepLineInterval)">
  24997. <summary>
  24998. </summary>
  24999. <param name="x"></param>
  25000. <param name="insertEvent"></param>
  25001. <param name="sweepInt"></param>
  25002. </member>
  25003. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.IsInsert">
  25004. <summary>
  25005. </summary>
  25006. </member>
  25007. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.IsDelete">
  25008. <summary>
  25009. </summary>
  25010. </member>
  25011. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.InsertEvent">
  25012. <summary>
  25013. </summary>
  25014. </member>
  25015. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.DeleteEventIndex">
  25016. <summary>
  25017. </summary>
  25018. </member>
  25019. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineEvent.Interval">
  25020. <summary>
  25021. </summary>
  25022. </member>
  25023. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineEvent.CompareTo(System.Object)">
  25024. <summary>
  25025. ProjectionEvents are ordered first by their x-value, and then by their eventType.
  25026. It is important that Insert events are sorted before Delete events, so that
  25027. items whose Insert and Delete events occur at the same x-value will be
  25028. correctly handled.
  25029. </summary>
  25030. <param name="o"></param>
  25031. </member>
  25032. <member name="T:NetTopologySuite.Index.Sweepline.SweepLineIndex">
  25033. <summary>
  25034. A sweepline implements a sorted index on a set of intervals.
  25035. It is used to compute all overlaps between the interval in the index.
  25036. </summary>
  25037. </member>
  25038. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.Add(NetTopologySuite.Index.Sweepline.SweepLineInterval)">
  25039. <summary>
  25040. </summary>
  25041. <param name="sweepInt"></param>
  25042. </member>
  25043. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.BuildIndex">
  25044. <summary>
  25045. Because Delete Events have a link to their corresponding Insert event,
  25046. it is possible to compute exactly the range of events which must be
  25047. compared to a given Insert event object.
  25048. </summary>
  25049. </member>
  25050. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.ComputeOverlaps(NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction)">
  25051. <summary>
  25052. </summary>
  25053. <param name="action"></param>
  25054. </member>
  25055. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineIndex.ProcessOverlaps(System.Int32,System.Int32,NetTopologySuite.Index.Sweepline.SweepLineInterval,NetTopologySuite.Index.Sweepline.ISweepLineOverlapAction)">
  25056. <summary>
  25057. </summary>
  25058. <param name="start"></param>
  25059. <param name="end"></param>
  25060. <param name="s0"></param>
  25061. <param name="action"></param>
  25062. </member>
  25063. <member name="T:NetTopologySuite.Index.Sweepline.SweepLineInterval">
  25064. <summary>
  25065. </summary>
  25066. </member>
  25067. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineInterval.#ctor(System.Double,System.Double)">
  25068. <summary>
  25069. </summary>
  25070. <param name="min"></param>
  25071. <param name="max"></param>
  25072. </member>
  25073. <member name="M:NetTopologySuite.Index.Sweepline.SweepLineInterval.#ctor(System.Double,System.Double,System.Object)">
  25074. <summary>
  25075. </summary>
  25076. <param name="min"></param>
  25077. <param name="max"></param>
  25078. <param name="item"></param>
  25079. </member>
  25080. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Min">
  25081. <summary>
  25082. </summary>
  25083. </member>
  25084. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Max">
  25085. <summary>
  25086. </summary>
  25087. </member>
  25088. <member name="P:NetTopologySuite.Index.Sweepline.SweepLineInterval.Item">
  25089. <summary>
  25090. </summary>
  25091. </member>
  25092. <member name="T:NetTopologySuite.Index.VertexSequencePackedRtree">
  25093. <summary>
  25094. A semi-static spatial index for points which occur
  25095. in a spatially-coherent sequence.
  25096. In particular, this is suitable for indexing the vertices
  25097. of a {@link LineString} or {@link Polygon} ring.
  25098. <para/>
  25099. The index is constructed in a batch fashion on a given sequence of coordinates.
  25100. Coordinates can be removed via the {@link #remove(int)} method.
  25101. <para/>
  25102. Note that this index queries only the individual points
  25103. of the input coordinate sequence,
  25104. <b>not</b> any line segments which might be lie between them.
  25105. <para/>
  25106. The input coordinate array is read-only,
  25107. and is not changed when vertices are removed.
  25108. </summary>
  25109. <author>Martin Davis</author>
  25110. </member>
  25111. <member name="F:NetTopologySuite.Index.VertexSequencePackedRtree.NodeCapacity">
  25112. <summary>
  25113. Number of items/nodes in a parent node.
  25114. Determined empirically. Performance is not too sensitive to this.
  25115. </summary>
  25116. </member>
  25117. <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  25118. <summary>
  25119. Creates a new tree over the given sequence of coordinates.
  25120. The sequence should be spatially coherent to provide query performance.
  25121. </summary>
  25122. <param name="pts">A sequence of points</param>
  25123. </member>
  25124. <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.ComputeLevelOffsets">
  25125. <summary>
  25126. Computes the level offsets.
  25127. This is the position in the <tt>bounds</tt> array of each level.
  25128. The levelOffsets array includes a sentinel value of <c>offset[0] = 0</c>.
  25129. The top level is always of size 1,
  25130. and so also indicates the total number of bounds.
  25131. </summary>
  25132. <returns>The level offsets</returns>
  25133. </member>
  25134. <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.Query(NetTopologySuite.Geometries.Envelope)">
  25135. <summary>
  25136. Queries the index to find all items which intersect an extent.
  25137. The query result is a list of the indices of input coordinates
  25138. which intersect the extent.
  25139. </summary>
  25140. <param name="queryEnv">The query extent</param>
  25141. <returns>An array of the indices of the input coordinates</returns>
  25142. </member>
  25143. <member name="M:NetTopologySuite.Index.VertexSequencePackedRtree.RemoveAt(System.Int32)">
  25144. <summary>
  25145. Removes the input item at the given index from the spatial index.
  25146. </summary>
  25147. <remarks>
  25148. This does not change the underlying coordinate array.
  25149. </remarks>
  25150. <param name="index">Index the index of the item in the input</param>
  25151. </member>
  25152. <member name="T:NetTopologySuite.IO.BEBinaryWriter">
  25153. <summary>
  25154. Extends the <see cref="T:System.IO.BinaryWriter" /> class to allow writing values in the BigEndian format.
  25155. </summary>
  25156. <remarks>
  25157. While <see cref="T:NetTopologySuite.IO.BEBinaryWriter" /> extends <see cref="T:System.IO.BinaryWriter" />
  25158. adding methods for writing integer values (<see cref="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int32)" />)
  25159. and double values (<see cref="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Double)" />) in the BigEndian format,
  25160. this implementation overrides methods, such <see cref="M:System.IO.BinaryWriter.Write(System.Int32)" />
  25161. and <see cref="M:System.IO.BinaryWriter.Write(System.Double)" /> and more,
  25162. for writing <see cref="F:NetTopologySuite.IO.ByteOrder.BigEndian" /> values in the BigEndian format.
  25163. </remarks>
  25164. </member>
  25165. <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor">
  25166. <summary>
  25167. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
  25168. </summary>
  25169. </member>
  25170. <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor(System.IO.Stream)">
  25171. <summary>
  25172. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
  25173. </summary>
  25174. <param name="output">The supplied stream.</param>
  25175. <exception cref="T:System.ArgumentNullException">output is null. </exception>
  25176. <exception cref="T:System.ArgumentException">
  25177. The stream does not support writing, or the stream is already closed. </exception>
  25178. </member>
  25179. <member name="M:NetTopologySuite.IO.BEBinaryWriter.#ctor(System.IO.Stream,System.Text.Encoding)">
  25180. <summary>
  25181. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BEBinaryWriter"/> class.
  25182. </summary>
  25183. <param name="output">The supplied stream.</param>
  25184. <param name="encoding">The character encoding.</param>
  25185. <exception cref="T:System.ArgumentNullException">output or encoding is null. </exception>
  25186. <exception cref="T:System.ArgumentException">
  25187. The stream does not support writing, or the stream is already closed. </exception>
  25188. </member>
  25189. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int16)">
  25190. <summary>
  25191. Writes a two-byte signed integer to the current stream using BigEndian encoding
  25192. and advances the stream position by two bytes.
  25193. </summary>
  25194. <param name="value">The two-byte signed integer to write.</param>
  25195. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25196. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25197. </member>
  25198. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt16)">
  25199. <summary>
  25200. Writes a two-byte unsigned integer to the current stream using BigEndian encoding
  25201. and advances the stream position by two bytes.
  25202. </summary>
  25203. <param name="value">The two-byte unsigned integer to write.</param>
  25204. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25205. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25206. </member>
  25207. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int32)">
  25208. <summary>
  25209. Writes a four-byte signed integer to the current stream using BigEndian encoding
  25210. and advances the stream position by four bytes.
  25211. </summary>
  25212. <param name="value">The four-byte signed integer to write.</param>
  25213. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25214. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25215. </member>
  25216. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt32)">
  25217. <summary>
  25218. Writes a four-byte unsigned integer to the current stream using BigEndian encoding
  25219. and advances the stream position by four bytes.
  25220. </summary>
  25221. <param name="value">The four-byte unsigned integer to write.</param>
  25222. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25223. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25224. </member>
  25225. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Int64)">
  25226. <summary>
  25227. Writes an eight-byte signed integer to the current stream using BigEndian encoding
  25228. and advances the stream position by eight bytes.
  25229. </summary>
  25230. <param name="value">The eight-byte signed integer to write.</param>
  25231. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25232. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25233. </member>
  25234. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.UInt64)">
  25235. <summary>
  25236. Writes an eight-byte unsigned integer to the current stream using BigEndian encoding
  25237. and advances the stream position by eight bytes.
  25238. </summary>
  25239. <param name="value">The eight-byte unsigned integer to write.</param>
  25240. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25241. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25242. </member>
  25243. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Single)">
  25244. <summary>
  25245. Writes a four-byte floating-point value to the current stream using BigEndian encoding
  25246. and advances the stream position by four bytes.
  25247. </summary>
  25248. <param name="value">The four-byte floating-point value to write.</param>
  25249. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25250. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25251. </member>
  25252. <member name="M:NetTopologySuite.IO.BEBinaryWriter.Write(System.Double)">
  25253. <summary>
  25254. Writes an eight-byte floating-point value to the current stream using BigEndian encoding
  25255. and advances the stream position by eight bytes.
  25256. </summary>
  25257. <param name="value">The eight-byte floating-point value to write.</param>
  25258. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25259. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25260. </member>
  25261. <member name="T:NetTopologySuite.IO.BiEndianBinaryReader">
  25262. <summary>
  25263. Extends the <see cref="T:System.IO.BinaryReader" /> class to allow reading values in the specified format.
  25264. </summary>
  25265. <remarks>
  25266. While <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader" /> extends <see cref="T:System.IO.BinaryReader" />
  25267. adding methods for reading integer values (<see cref="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt32" />)
  25268. and double values (<see cref="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDouble" />) in the specified format,
  25269. this implementation overrides methods, such <see cref="M:System.IO.BinaryReader.ReadInt32" />
  25270. and <see cref="M:System.IO.BinaryReader.ReadDouble" /> and more,
  25271. for reading values in the specified by <see cref="P:NetTopologySuite.IO.BiEndianBinaryReader.Endianess"/> format.
  25272. </remarks>
  25273. </member>
  25274. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.#ctor(System.IO.Stream)">
  25275. <summary>
  25276. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader"/> class.
  25277. </summary>
  25278. <param name="stream">The stream.</param>
  25279. </member>
  25280. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.#ctor(System.IO.Stream,NetTopologySuite.IO.ByteOrder)">
  25281. <summary>
  25282. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.BiEndianBinaryReader"/> class.
  25283. </summary>
  25284. <param name="input">The supplied stream.</param>
  25285. <param name="endianess">The byte order.</param>
  25286. <exception cref="T:System.ArgumentException">The stream does not support reading, the stream is null, or the stream is already closed. </exception>
  25287. </member>
  25288. <member name="P:NetTopologySuite.IO.BiEndianBinaryReader.Endianess">
  25289. <summary>
  25290. Encoding type
  25291. </summary>
  25292. </member>
  25293. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt16">
  25294. <summary>
  25295. Reads a 2-byte signed integer from the current stream using the specified encoding
  25296. and advances the current position of the stream by two bytes.
  25297. </summary>
  25298. <returns>
  25299. A 2-byte signed integer read from the current stream.
  25300. </returns>
  25301. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25302. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25303. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25304. </member>
  25305. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt16">
  25306. <summary>
  25307. Reads a 2-byte unsigned integer from the current stream using the specified encoding
  25308. and advances the position of the stream by two bytes.
  25309. </summary>
  25310. <returns>
  25311. A 2-byte unsigned integer read from this stream.
  25312. </returns>
  25313. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25314. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25315. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25316. </member>
  25317. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt32">
  25318. <summary>
  25319. Reads a 4-byte signed integer from the current stream using the specified encoding
  25320. and advances the current position of the stream by four bytes.
  25321. </summary>
  25322. <returns>
  25323. A 4-byte signed integer read from the current stream.
  25324. </returns>
  25325. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25326. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25327. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25328. </member>
  25329. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt32">
  25330. <summary>
  25331. Reads a 4-byte unsigned integer from the current stream using the specified encoding
  25332. and advances the position of the stream by four bytes.
  25333. </summary>
  25334. <returns>
  25335. A 4-byte unsigned integer read from this stream.
  25336. </returns>
  25337. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25338. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25339. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25340. </member>
  25341. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadInt64">
  25342. <summary>
  25343. Reads an 8-byte signed integer from the current stream using the specified encoding
  25344. and advances the current position of the stream by eight bytes.
  25345. </summary>
  25346. <returns>
  25347. An 8-byte signed integer read from the current stream.
  25348. </returns>
  25349. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25350. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25351. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25352. </member>
  25353. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadUInt64">
  25354. <summary>
  25355. Reads an 8-byte unsigned integer from the current stream using the specified encoding
  25356. and advances the position of the stream by eight bytes.
  25357. </summary>
  25358. <returns>
  25359. An 8-byte unsigned integer read from this stream.
  25360. </returns>
  25361. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25362. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25363. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25364. </member>
  25365. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadSingle">
  25366. <summary>
  25367. Reads a 4-byte floating point value from the current stream using the specified encoding
  25368. and advances the current position of the stream by four bytes.
  25369. </summary>
  25370. <returns>
  25371. A 4-byte floating point value read from the current stream.
  25372. </returns>
  25373. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25374. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25375. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25376. </member>
  25377. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDouble">
  25378. <summary>
  25379. Reads an 8-byte floating point value from the current stream using the specified encoding
  25380. and advances the current position of the stream by eight bytes.
  25381. </summary>
  25382. <returns>
  25383. An 8-byte floating point value read from the current stream.
  25384. </returns>
  25385. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25386. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25387. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25388. </member>
  25389. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadString">
  25390. <summary>
  25391. Reads a string from the current stream.
  25392. The string is prefixed with the length, encoded as an integer seven bits at a time.
  25393. </summary>
  25394. <returns>The string being read.</returns>
  25395. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25396. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25397. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25398. </member>
  25399. <member name="M:NetTopologySuite.IO.BiEndianBinaryReader.ReadDecimal">
  25400. <summary>
  25401. Reads a decimal value from the current stream
  25402. and advances the current position of the stream by sixteen bytes.
  25403. </summary>
  25404. <returns>
  25405. A decimal value read from the current stream.
  25406. </returns>
  25407. <exception cref="T:System.ObjectDisposedException">The stream is closed. </exception>
  25408. <exception cref="T:System.IO.IOException">An I/O error occurs. </exception>
  25409. <exception cref="T:System.IO.EndOfStreamException">The end of the stream is reached. </exception>
  25410. </member>
  25411. <member name="T:NetTopologySuite.IO.ByteOrder">
  25412. <summary>
  25413. Byte order
  25414. </summary>
  25415. </member>
  25416. <member name="F:NetTopologySuite.IO.ByteOrder.BigEndian">
  25417. <summary>
  25418. BigEndian
  25419. </summary>
  25420. </member>
  25421. <member name="F:NetTopologySuite.IO.ByteOrder.LittleEndian">
  25422. <summary>
  25423. LittleEndian
  25424. </summary>
  25425. </member>
  25426. <member name="T:NetTopologySuite.IO.GeometryType">
  25427. <summary>
  25428. Lightweight class that handles OGC Geometry type declaration
  25429. </summary>
  25430. </member>
  25431. <member name="M:NetTopologySuite.IO.GeometryType.#ctor(System.UInt32)">
  25432. <summary>
  25433. Initializes this instance
  25434. </summary>
  25435. <param name="geometryType">The value describing the <see cref="T:NetTopologySuite.IO.GeometryType"/></param>
  25436. </member>
  25437. <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Ordinates)">
  25438. <summary>
  25439. Inititalizes this instance based on a geometry and an Ordinates flag.
  25440. </summary>
  25441. <param name="geometry">The geometry.</param>
  25442. <param name="ordinates">The ordinates flag.</param>
  25443. </member>
  25444. <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType)">
  25445. <summary>
  25446. Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/>
  25447. </summary>
  25448. <param name="ogcGeometryType">The OGC geometry type</param>
  25449. </member>
  25450. <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType,System.Boolean)">
  25451. <summary>
  25452. Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/> and an SRID indicator
  25453. </summary>
  25454. <param name="ogcGeometryType">The OGC geometry type</param>
  25455. <param name="hasSrid">Indicator if a SRID is supplied.</param>
  25456. </member>
  25457. <member name="M:NetTopologySuite.IO.GeometryType.#ctor(NetTopologySuite.Geometries.OgcGeometryType,NetTopologySuite.Geometries.Ordinates,System.Boolean)">
  25458. <summary>
  25459. Inititalizes this instance based on an <see cref="T:NetTopologySuite.Geometries.OgcGeometryType"/> and an SRID indicator
  25460. </summary>
  25461. <param name="ogcGeometryType">The OGC geometry type</param>
  25462. <param name="ordinates">The ordinates flag.</param>
  25463. <param name="hasSrid">Indicator if a SRID is supplied.</param>
  25464. </member>
  25465. <member name="P:NetTopologySuite.IO.GeometryType.BaseGeometryType">
  25466. <summary>
  25467. Gets or sets the base geometry type
  25468. </summary>
  25469. </member>
  25470. <member name="P:NetTopologySuite.IO.GeometryType.WkbGeometryType">
  25471. <summary>
  25472. Gets the OGC Well-Known-Binary type code
  25473. </summary>
  25474. </member>
  25475. <member name="P:NetTopologySuite.IO.GeometryType.EwkbWkbGeometryType">
  25476. <summary>
  25477. Gets the PostGIS Enhanced Well-Known-Binary type code
  25478. </summary>
  25479. </member>
  25480. <member name="P:NetTopologySuite.IO.GeometryType.HasZ">
  25481. <summary>
  25482. Gets or sets whether z-ordinate values are stored along with the geometry.
  25483. </summary>
  25484. </member>
  25485. <member name="P:NetTopologySuite.IO.GeometryType.HasM">
  25486. <summary>
  25487. Gets or sets whether m-ordinate values are stored along with the geometry.
  25488. </summary>
  25489. </member>
  25490. <member name="P:NetTopologySuite.IO.GeometryType.HasSrid">
  25491. <summary>
  25492. Gets whether SRID value is stored along with the geometry.
  25493. </summary>
  25494. </member>
  25495. <member name="P:NetTopologySuite.IO.GeometryType.HasWkbZ">
  25496. <summary>
  25497. Gets or sets whether z-ordinate values are stored along with the geometry.
  25498. </summary>
  25499. </member>
  25500. <member name="P:NetTopologySuite.IO.GeometryType.HasWkbM">
  25501. <summary>
  25502. Gets or sets whether m-ordinate values are stored along with the geometry.
  25503. </summary>
  25504. </member>
  25505. <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbZ">
  25506. <summary>
  25507. Gets or sets whether z-ordinates are stored along with the geometry.
  25508. <para>PostGis EWKB format.</para>
  25509. </summary>
  25510. </member>
  25511. <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbM">
  25512. <summary>
  25513. Gets or sets whether z-ordinates are stored along with the geometry.
  25514. <para>PostGis EWKB format.</para>
  25515. </summary>
  25516. </member>
  25517. <member name="P:NetTopologySuite.IO.GeometryType.HasEwkbSrid">
  25518. <summary>
  25519. Gets or sets whether z-ordinates are stored along with the geometry.
  25520. <para>PostGis EWKB format.</para>
  25521. </summary>
  25522. </member>
  25523. <member name="T:NetTopologySuite.IO.GML2.GMLReader">
  25524. <summary>
  25525. Reads a GML document and creates a representation of the features based on NetTopologySuite model.
  25526. Uses GML 2.1.1 <c>Geometry.xsd</c> schema for base for features.
  25527. </summary>
  25528. </member>
  25529. <member name="P:NetTopologySuite.IO.GML2.GMLReader.Factory">
  25530. <summary>
  25531. <see cref="T:NetTopologySuite.Geometries.Geometry"/> builder.
  25532. </summary>
  25533. </member>
  25534. <member name="M:NetTopologySuite.IO.GML2.GMLReader.#ctor">
  25535. <summary>
  25536. Initialize reader with a standard <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25537. </summary>
  25538. </member>
  25539. <member name="M:NetTopologySuite.IO.GML2.GMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  25540. <summary>
  25541. Initialize reader with the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25542. </summary>
  25543. </member>
  25544. <member name="M:NetTopologySuite.IO.GML2.GMLReader.Read(System.Xml.XmlDocument)">
  25545. <summary>
  25546. Read a GML document and returns relative <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  25547. </summary>
  25548. <param name="document"></param>
  25549. <returns></returns>
  25550. </member>
  25551. <member name="M:NetTopologySuite.IO.GML2.GMLReader.Read(System.Xml.Linq.XDocument)">
  25552. <summary>
  25553. Read a GML document and returns relative <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  25554. </summary>
  25555. <param name="document"></param>
  25556. <returns></returns>
  25557. </member>
  25558. <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadCoordinate(System.Xml.XmlReader)">
  25559. <summary>
  25560. Reads the coordinate.
  25561. </summary>
  25562. <param name="reader">The reader.</param>
  25563. <returns></returns>
  25564. </member>
  25565. <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadCoordinates(System.String)">
  25566. <summary>
  25567. Extract a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from a x,y string value.
  25568. </summary>
  25569. <param name="value"></param>
  25570. <returns></returns>
  25571. </member>
  25572. <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosAsCoordinate(System.String[])">
  25573. <summary>
  25574. Extract a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> from a pos entity string value.
  25575. </summary>
  25576. <param name="value">An array of string ordinate values</param>
  25577. <returns>A coordinate</returns>
  25578. </member>
  25579. <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosListAsCoordinates(System.Int32,System.String[])">
  25580. <summary>
  25581. Extract an enumeration of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s from a x-,y-[, z-]ordinate string values.
  25582. </summary>
  25583. <param name="numOrdinates">The number of ordinates</param>
  25584. <param name="value">An array of string ordinate values</param>
  25585. <returns>An enumeration of coordinates</returns>
  25586. </member>
  25587. <member name="M:NetTopologySuite.IO.GML2.GMLReader.ReadPosList(System.Xml.XmlReader,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  25588. <summary>
  25589. Extract a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence" /> from a series of x-, y-[, z-]ordinate string values.
  25590. </summary>
  25591. <param name="reader">A xml-reader</param>
  25592. <param name="srsDimension">The number of ordinates to read per coordinate</param>
  25593. <param name="csFactory">The factory to use in order to create the result</param>
  25594. <returns>A coordinate sequence</returns>
  25595. </member>
  25596. <member name="T:NetTopologySuite.IO.GML2.GMLVersion">
  25597. <summary>
  25598. Identifies a version of the GML specification.
  25599. </summary>
  25600. </member>
  25601. <member name="F:NetTopologySuite.IO.GML2.GMLVersion.Two">
  25602. <summary>
  25603. Version 2.1.1 (OGC 02-009).
  25604. </summary>
  25605. </member>
  25606. <member name="F:NetTopologySuite.IO.GML2.GMLVersion.Three">
  25607. <summary>
  25608. Version 3.2.2 (OGC 07-036r1 / ISO 19136:2007).
  25609. </summary>
  25610. </member>
  25611. <member name="T:NetTopologySuite.IO.GML2.GMLWriter">
  25612. <summary>
  25613. Writes the GML representation of the features of NetTopologySuite model.
  25614. Uses GML 2.1.1 <c>Geometry.xsd</c> schema for base for features.
  25615. <remarks>
  25616. Thanks to <see href="http//www.codeplex.com/Wiki/View.aspx?ProjectName=MsSqlSpatial">rstuven</see> for improvements :)
  25617. </remarks>
  25618. </summary>
  25619. </member>
  25620. <member name="P:NetTopologySuite.IO.GML2.GMLWriter.NumberFormatter">
  25621. <summary>
  25622. Formatter for double values of coordinates
  25623. </summary>
  25624. </member>
  25625. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.#ctor">
  25626. <summary>
  25627. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.GML2.GMLWriter"/> class.
  25628. </summary>
  25629. </member>
  25630. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry)">
  25631. <summary>
  25632. Returns an <c>XmlReader</c> with feature informations.
  25633. Use <c>XmlDocument.Load(XmlReader)</c> for obtain a <c>XmlDocument</c> to work.
  25634. </summary>
  25635. <param name="geometry"></param>
  25636. <returns></returns>
  25637. </member>
  25638. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
  25639. <summary>
  25640. Writes a GML feature into a generic <c>Stream</c>, such a <c>FileStream</c> or other streams.
  25641. </summary>
  25642. <param name="geometry"></param>
  25643. <param name="stream"></param>
  25644. </member>
  25645. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Coordinate,System.Xml.XmlWriter)">
  25646. <summary>
  25647. </summary>
  25648. <param name="coordinate"></param>
  25649. <param name="writer"></param>
  25650. </member>
  25651. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Coordinate[],System.Xml.XmlWriter)">
  25652. <summary>
  25653. </summary>
  25654. <param name="coordinates"></param>
  25655. <param name="writer"></param>
  25656. </member>
  25657. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.WriteCoordinates(NetTopologySuite.Geometries.Coordinate[],System.Xml.XmlWriter)">
  25658. <summary>
  25659. </summary>
  25660. <param name="coordinates"></param>
  25661. <param name="writer"></param>
  25662. </member>
  25663. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.WriteCoordinates(NetTopologySuite.Geometries.CoordinateSequence,System.Xml.XmlWriter)">
  25664. <summary>
  25665. </summary>
  25666. <param name="coordinates"></param>
  25667. <param name="writer"></param>
  25668. </member>
  25669. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.Xml.XmlWriter)">
  25670. <summary>
  25671. </summary>
  25672. <param name="geometry"></param>
  25673. <param name="writer"></param>
  25674. </member>
  25675. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Point,System.Xml.XmlWriter)">
  25676. <summary>
  25677. </summary>
  25678. <param name="point"></param>
  25679. <param name="writer"></param>
  25680. </member>
  25681. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.LineString,System.Xml.XmlWriter)">
  25682. <summary>
  25683. </summary>
  25684. <param name="lineString"></param>
  25685. <param name="writer"></param>
  25686. </member>
  25687. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.LinearRing,System.Xml.XmlWriter)">
  25688. <summary>
  25689. </summary>
  25690. <param name="linearRing"></param>
  25691. <param name="writer"></param>
  25692. </member>
  25693. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.Polygon,System.Xml.XmlWriter)">
  25694. <summary>
  25695. </summary>
  25696. <param name="polygon"></param>
  25697. <param name="writer"></param>
  25698. </member>
  25699. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.Xml.XmlWriter)">
  25700. <summary>
  25701. </summary>
  25702. <param name="multiPoint"></param>
  25703. <param name="writer"></param>
  25704. </member>
  25705. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.Xml.XmlWriter)">
  25706. <summary>
  25707. </summary>
  25708. <param name="multiLineString"></param>
  25709. <param name="writer"></param>
  25710. </member>
  25711. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.Xml.XmlWriter)">
  25712. <summary>
  25713. </summary>
  25714. <param name="multiPolygon"></param>
  25715. <param name="writer"></param>
  25716. </member>
  25717. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.Xml.XmlWriter)">
  25718. <summary>
  25719. </summary>
  25720. <param name="geometryCollection"></param>
  25721. <param name="writer"></param>
  25722. </member>
  25723. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Geometry)">
  25724. <summary>
  25725. Sets corrent length for Byte Stream.
  25726. </summary>
  25727. <param name="geometry"></param>
  25728. <returns></returns>
  25729. </member>
  25730. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.GeometryCollection)">
  25731. <summary>
  25732. </summary>
  25733. <param name="geometryCollection"></param>
  25734. <returns></returns>
  25735. </member>
  25736. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiPolygon)">
  25737. <summary>
  25738. </summary>
  25739. <param name="multiPolygon"></param>
  25740. <returns></returns>
  25741. </member>
  25742. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiLineString)">
  25743. <summary>
  25744. </summary>
  25745. <param name="multiLineString"></param>
  25746. <returns></returns>
  25747. </member>
  25748. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.MultiPoint)">
  25749. <summary>
  25750. </summary>
  25751. <param name="multiPoint"></param>
  25752. <returns></returns>
  25753. </member>
  25754. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Polygon)">
  25755. <summary>
  25756. </summary>
  25757. <param name="polygon"></param>
  25758. <returns></returns>
  25759. </member>
  25760. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.LineString)">
  25761. <summary>
  25762. </summary>
  25763. <param name="lineString"></param>
  25764. <returns></returns>
  25765. </member>
  25766. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.SetByteStreamLength(NetTopologySuite.Geometries.Point)">
  25767. <summary>
  25768. </summary>
  25769. <param name="point"></param>
  25770. <returns></returns>
  25771. </member>
  25772. <member name="M:NetTopologySuite.IO.GML2.GMLWriter.GetEpsgCode(System.Int32)">
  25773. <summary>
  25774. Provides the EPSG code exposing the SRID of the geometry
  25775. </summary>
  25776. <param name="srid">The SRID of the geometry</param>
  25777. <returns></returns>
  25778. </member>
  25779. <member name="T:NetTopologySuite.IO.GML3.GML3Writer">
  25780. <summary>
  25781. Writes the GML representation of the features of NetTopologySuite model.
  25782. Uses GML 3.2.2 <c>gml.xsd</c> schema for base for features.
  25783. </summary>
  25784. </member>
  25785. <member name="M:NetTopologySuite.IO.GML3.GML3Writer.#ctor">
  25786. <summary>
  25787. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.GML3.GML3Writer"/> class.
  25788. </summary>
  25789. </member>
  25790. <member name="T:NetTopologySuite.IO.KML.KMLReader">
  25791. <summary>
  25792. Constructs <see cref="T:NetTopologySuite.Geometries.Geometry"/> objects from the OGC KML representation.
  25793. Works only with KML geometry elements and may also parse attributes within these elements
  25794. </summary>
  25795. </member>
  25796. <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor">
  25797. <summary>
  25798. Creates a reader that creates objects using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25799. </summary>
  25800. </member>
  25801. <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  25802. <summary>
  25803. Creates a reader that creates objects using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25804. </summary>
  25805. <param name="geometryFactory">The factory used to create <c>Geometry</c>s.</param>
  25806. </member>
  25807. <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(System.String[])">
  25808. <summary>
  25809. Creates a reader that creates objects using the default <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25810. </summary>
  25811. <param name="attributeNames">Names of attributes that should be parsed (i.e. extrude, altitudeMode, tesselate, etc).</param>
  25812. </member>
  25813. <member name="M:NetTopologySuite.IO.KML.KMLReader.#ctor(NetTopologySuite.Geometries.GeometryFactory,System.String[])">
  25814. <summary>
  25815. Creates a reader that creates objects using the given <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  25816. </summary>
  25817. <param name="geometryFactory">The factory used to create <c>Geometry</c>s.</param>
  25818. <param name="attributeNames">Names of attributes that should be parsed (i.e. extrude, altitudeMode, tesselate, etc).</param>
  25819. </member>
  25820. <member name="M:NetTopologySuite.IO.KML.KMLReader.Read(System.String)">
  25821. <summary>
  25822. Reads a KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> from a <see cref="T:System.String"/>.
  25823. <para/>
  25824. If any attribute names were specified during {@link KMLReader} construction,
  25825. they will be stored as <see cref="T:System.Collections.Generic.IDictionary`2"/> in <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
  25826. </summary>
  25827. <param name="kmlGeometrystring">The string that specifies kml representation of geometry.</param>
  25828. <returns>A <c>Geometry</c></returns>
  25829. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if a parsing problem occurs.</exception>
  25830. </member>
  25831. <member name="M:NetTopologySuite.IO.KML.KMLReader.Read(System.IO.TextReader)">
  25832. <summary>
  25833. Reads a KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> from a <see cref="T:System.IO.TextReader"/>.
  25834. <para/>
  25835. If any attribute names were specified during {@link KMLReader} construction,
  25836. they will be stored as <see cref="T:System.Collections.Generic.IDictionary`2"/> in <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
  25837. </summary>
  25838. <param name="kmlStreamReader">The text stream reader.</param>
  25839. <returns>A <c>Geometry</c></returns>
  25840. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if a parsing problem occurs.</exception>
  25841. </member>
  25842. <member name="T:NetTopologySuite.IO.KML.KMLWriter">
  25843. <summary>
  25844. Writes a formatted string containing the KML representation
  25845. of a JTS <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  25846. The output is KML fragments which can be substituted
  25847. wherever the KML <see cref="T:NetTopologySuite.Geometries.Geometry"/> abstract
  25848. element can be used.
  25849. </summary>
  25850. <remarks>
  25851. Output elements are indented to provide a
  25852. nicely-formatted representation.
  25853. An output line prefix and maximum
  25854. number of coordinates per line can be specified.
  25855. </remarks>
  25856. <remarks>
  25857. The Z ordinate value output can be forced to be a specific value.
  25858. The <see cref="P:NetTopologySuite.IO.KML.KMLWriter.Extrude"/> and <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/> modes can be set.
  25859. If set, the corresponding sub-elements will be output.
  25860. </remarks>
  25861. </member>
  25862. <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeClampToGround">
  25863. <summary>
  25864. The KML standard value <c>clampToGround</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
  25865. </summary>
  25866. </member>
  25867. <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeRelativeToGround">
  25868. <summary>
  25869. The KML standard value <c>relativeToGround</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
  25870. </summary>
  25871. </member>
  25872. <member name="F:NetTopologySuite.IO.KML.KMLWriter.AltitudeModeAbsolute">
  25873. <summary>
  25874. The KML standard value <c>absolute</c> for use in <see cref="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode"/>.
  25875. </summary>
  25876. </member>
  25877. <member name="M:NetTopologySuite.IO.KML.KMLWriter.WriteGeometry(NetTopologySuite.Geometries.Geometry,System.Double)">
  25878. <summary>
  25879. Writes a Geometry as KML to a string, using
  25880. a specified Z value.
  25881. </summary>
  25882. <param name="geometry">the geometry to write</param>
  25883. <param name="z">the Z value to use</param>
  25884. <returns>a string containing the KML geometry representation</returns>
  25885. </member>
  25886. <member name="M:NetTopologySuite.IO.KML.KMLWriter.WriteGeometry(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32,System.Boolean,System.String)">
  25887. <summary>
  25888. Writes a Geometry as KML to a string, using
  25889. a specified Z value, precision, extrude flag,
  25890. and altitude mode code.
  25891. </summary>
  25892. <param name="geometry">the geometry to write</param>
  25893. <param name="z">the Z value to use</param>
  25894. <param name="precision">the maximum number of decimal places to write</param>
  25895. <param name="extrude">the extrude flag to write</param>
  25896. <param name="altitudeMode">the altitude model code to write</param>
  25897. <returns>a string containing the KML geometry representation</returns>
  25898. </member>
  25899. <member name="P:NetTopologySuite.IO.KML.KMLWriter.LinePrefix">
  25900. <summary>
  25901. A tag string which is prefixed to every emitted text line.
  25902. This can be used to indent the geometry text in a containing document.
  25903. </summary>
  25904. </member>
  25905. <member name="P:NetTopologySuite.IO.KML.KMLWriter.MaxCoordinatesPerLine">
  25906. <summary>
  25907. The maximum number of coordinates to output per line.
  25908. </summary>
  25909. </member>
  25910. <member name="P:NetTopologySuite.IO.KML.KMLWriter.Z">
  25911. <summary>
  25912. The Z value to be output for all coordinates.
  25913. This overrides any Z value present in the Geometry coordinates.
  25914. </summary>
  25915. </member>
  25916. <member name="P:NetTopologySuite.IO.KML.KMLWriter.Extrude">
  25917. <summary>
  25918. The flag to be output in the <c>extrude</c> element.
  25919. </summary>
  25920. </member>
  25921. <member name="P:NetTopologySuite.IO.KML.KMLWriter.Tesselate">
  25922. <summary>
  25923. The flag to be output in the <c>tesselate</c> element.
  25924. </summary>
  25925. </member>
  25926. <member name="P:NetTopologySuite.IO.KML.KMLWriter.AltitudeMode">
  25927. <summary>
  25928. The value output in the <c>altitudeMode</c> element.
  25929. </summary>
  25930. </member>
  25931. <member name="P:NetTopologySuite.IO.KML.KMLWriter.Precision">
  25932. <summary>
  25933. The maximum number of decimal places to output in ordinate values.
  25934. Useful for limiting output size.
  25935. </summary>
  25936. <remarks>
  25937. negative values set the precision to <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>,
  25938. like standard behavior.
  25939. </remarks>
  25940. </member>
  25941. <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry)">
  25942. <summary>
  25943. Writes a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in KML format as a string.
  25944. </summary>
  25945. <param name="geom">the geometry to write</param>
  25946. <returns>a string containing the KML geometry representation</returns>
  25947. </member>
  25948. <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
  25949. <summary>
  25950. Writes the KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a <see cref="T:System.IO.TextWriter"/>.
  25951. </summary>
  25952. <param name="geom">the geometry to write</param>
  25953. <param name="writer">the writer to write to</param>
  25954. </member>
  25955. <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Geometry,System.Text.StringBuilder)">
  25956. <summary>
  25957. Appends the KML representation of a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a <see cref="T:System.Text.StringBuilder"/>.
  25958. </summary>
  25959. <param name="geom">the geometry to write</param>
  25960. <param name="sb">the buffer to write into</param>
  25961. </member>
  25962. <member name="M:NetTopologySuite.IO.KML.KMLWriter.Write(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Text.StringBuilder)">
  25963. <summary>
  25964. Takes a list of coordinates and converts it to KML.
  25965. </summary>
  25966. <remarks>
  25967. 2D and 3D aware. Terminates the coordinate output with a newline.
  25968. </remarks>
  25969. </member>
  25970. <member name="T:NetTopologySuite.IO.OrdinateFormat">
  25971. <summary>
  25972. Formats numeric values for ordinates
  25973. in a consistent, accurate way.
  25974. <para/>
  25975. The format has the following characteristics:
  25976. <list type="Bullet">
  25977. <item>It is consistent in all locales (in particular, the decimal separator is always a period)</item>
  25978. <item><description>Scientific notation is never output, even for very large numbers. This means that it is possible that output can contain a large number of digits. </description></item>
  25979. <item><description>The maximum number of decimal places reflects the available precision</description></item>
  25980. <item><description>NaN values are represented as "NaN"</description></item>
  25981. <item><description>Inf values are represented as "Inf" or "-Inf"</description></item>
  25982. </list>
  25983. </summary>
  25984. <author>mdavis</author>
  25985. </member>
  25986. <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_POS_INF">
  25987. <summary>
  25988. The output representation of <see cref="F:System.Double.PositiveInfinity"/>
  25989. </summary>
  25990. </member>
  25991. <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_NEG_INF">
  25992. <summary>
  25993. The output representation of <see cref="F:System.Double.NegativeInfinity"/>
  25994. </summary>
  25995. </member>
  25996. <member name="F:NetTopologySuite.IO.OrdinateFormat.REP_NAN">
  25997. <summary>
  25998. The output representation of <see cref="F:System.Double.NaN"/>
  25999. </summary>
  26000. </member>
  26001. <member name="F:NetTopologySuite.IO.OrdinateFormat.MAX_FRACTION_DIGITS">
  26002. <summary>
  26003. The maximum number of fraction digits to support output of reasonable ordinate values.
  26004. <para/>
  26005. The default is chosen to allow representing the smallest possible IEEE-754 double-precision value,
  26006. although this is not expected to occur (and is not supported by other areas of the JTS/NTS code).
  26007. </summary>
  26008. </member>
  26009. <member name="F:NetTopologySuite.IO.OrdinateFormat.Default">
  26010. <summary>
  26011. The default formatter using the maximum number of digits in the fraction portion of a number.
  26012. </summary>
  26013. </member>
  26014. <member name="M:NetTopologySuite.IO.OrdinateFormat.#ctor">
  26015. <summary>
  26016. Creates an OrdinateFormat using the default maximum number of fraction digits.
  26017. </summary>
  26018. </member>
  26019. <member name="M:NetTopologySuite.IO.OrdinateFormat.#ctor(System.Int32)">
  26020. <summary>
  26021. Creates an OrdinateFormat using the given maximum number of fraction digits.
  26022. </summary>
  26023. <param name="maximumFractionDigits">The maximum number of fraction digits to output</param>
  26024. </member>
  26025. <member name="M:NetTopologySuite.IO.OrdinateFormat.Format(System.Double)">
  26026. <summary>
  26027. Returns a string representation of the given ordinate numeric value.
  26028. </summary>
  26029. <param name="ord">The ordinate value</param>
  26030. <returns>The formatted number string</returns>
  26031. </member>
  26032. <member name="T:NetTopologySuite.IO.ParseException">
  26033. <summary>
  26034. Thrown by a <c>WKTReader</c> when a parsing problem occurs.
  26035. </summary>
  26036. </member>
  26037. <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.String)">
  26038. <summary>
  26039. Creates a <c>ParseException</c> with the given detail message.
  26040. </summary>
  26041. <param name="message">A description of this <c>ParseException</c>.</param>
  26042. </member>
  26043. <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.Exception)">
  26044. <summary>
  26045. Creates a <c>ParseException</c> with <c>e</c>s detail message.
  26046. </summary>
  26047. <param name="e">An exception that occurred while a <c>WKTReader</c> was
  26048. parsing a Well-known Text string.</param>
  26049. </member>
  26050. <member name="M:NetTopologySuite.IO.ParseException.#ctor(System.String,System.Exception)">
  26051. <summary>
  26052. Creates a <c>ParseException</c> with <paramref name="innerException"/>s detail message
  26053. </summary>
  26054. <param name="message"></param>
  26055. <param name="innerException">The inner exception</param>
  26056. </member>
  26057. <member name="T:NetTopologySuite.IO.WKBGeometryTypes">
  26058. <summary>
  26059. WKB Geometry Types
  26060. </summary>
  26061. </member>
  26062. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPoint">
  26063. <summary>
  26064. Point.
  26065. </summary>
  26066. </member>
  26067. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineString">
  26068. <summary>
  26069. LineString.
  26070. </summary>
  26071. </member>
  26072. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygon">
  26073. <summary>
  26074. Polygon.
  26075. </summary>
  26076. </member>
  26077. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPoint">
  26078. <summary>
  26079. MultiPoint.
  26080. </summary>
  26081. </member>
  26082. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineString">
  26083. <summary>
  26084. MultiLineString.
  26085. </summary>
  26086. </member>
  26087. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygon">
  26088. <summary>
  26089. MultiPolygon.
  26090. </summary>
  26091. </member>
  26092. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollection">
  26093. <summary>
  26094. GeometryCollection.
  26095. </summary>
  26096. </member>
  26097. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointZ">
  26098. <summary>
  26099. Point with Z coordinate.
  26100. </summary>
  26101. </member>
  26102. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringZ">
  26103. <summary>
  26104. LineString with Z coordinate.
  26105. </summary>
  26106. </member>
  26107. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonZ">
  26108. <summary>
  26109. Polygon with Z coordinate.
  26110. </summary>
  26111. </member>
  26112. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointZ">
  26113. <summary>
  26114. MultiPoint with Z coordinate.
  26115. </summary>
  26116. </member>
  26117. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringZ">
  26118. <summary>
  26119. MultiLineString with Z coordinate.
  26120. </summary>
  26121. </member>
  26122. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonZ">
  26123. <summary>
  26124. MultiPolygon with Z coordinate.
  26125. </summary>
  26126. </member>
  26127. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionZ">
  26128. <summary>
  26129. GeometryCollection with Z coordinate.
  26130. </summary>
  26131. </member>
  26132. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointM">
  26133. <summary>
  26134. Point with M ordinate value.
  26135. </summary>
  26136. </member>
  26137. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringM">
  26138. <summary>
  26139. LineString with M ordinate value.
  26140. </summary>
  26141. </member>
  26142. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonM">
  26143. <summary>
  26144. Polygon with M ordinate value.
  26145. </summary>
  26146. </member>
  26147. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointM">
  26148. <summary>
  26149. MultiPoint with M ordinate value.
  26150. </summary>
  26151. </member>
  26152. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringM">
  26153. <summary>
  26154. MultiLineString with M ordinate value.
  26155. </summary>
  26156. </member>
  26157. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonM">
  26158. <summary>
  26159. MultiPolygon with M ordinate value.
  26160. </summary>
  26161. </member>
  26162. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionM">
  26163. <summary>
  26164. GeometryCollection with M ordinate value.
  26165. </summary>
  26166. </member>
  26167. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPointZM">
  26168. <summary>
  26169. Point with Z coordinate and M ordinate value.
  26170. </summary>
  26171. </member>
  26172. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBLineStringZM">
  26173. <summary>
  26174. LineString with Z coordinate and M ordinate value.
  26175. </summary>
  26176. </member>
  26177. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBPolygonZM">
  26178. <summary>
  26179. Polygon with Z coordinate and M ordinate value.
  26180. </summary>
  26181. </member>
  26182. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPointZM">
  26183. <summary>
  26184. MultiPoint with Z coordinate and M ordinate value.
  26185. </summary>
  26186. </member>
  26187. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiLineStringZM">
  26188. <summary>
  26189. MultiLineString with Z coordinate and M ordinate value.
  26190. </summary>
  26191. </member>
  26192. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBMultiPolygonZM">
  26193. <summary>
  26194. MultiPolygon with Z coordinate and M ordinate value.
  26195. </summary>
  26196. </member>
  26197. <member name="F:NetTopologySuite.IO.WKBGeometryTypes.WKBGeometryCollectionZM">
  26198. <summary>
  26199. GeometryCollection with Z coordinate and M ordinate value.
  26200. </summary>
  26201. </member>
  26202. <member name="T:NetTopologySuite.IO.WKBHexFileReader">
  26203. <summary>
  26204. Reads a sequence of {@link Geometry}s in WKBHex format
  26205. from a text file.
  26206. Each WKBHex geometry must be on a single line
  26207. The geometries in the file may be separated by any amount
  26208. of whitespace and newlines.
  26209. </summary>
  26210. <author>Martin Davis</author>
  26211. </member>
  26212. <member name="M:NetTopologySuite.IO.WKBHexFileReader.#ctor(NetTopologySuite.IO.WKBReader)">
  26213. <summary>
  26214. Creates a new <see cref="T:NetTopologySuite.IO.WKBHexFileReader"/> given the
  26215. <see cref="T:NetTopologySuite.IO.WKBReader"/> to use to parse the geometries.
  26216. </summary>
  26217. <param name="wkbReader">The geometry reader to use</param>
  26218. </member>
  26219. <member name="P:NetTopologySuite.IO.WKBHexFileReader.Limit">
  26220. <summary>
  26221. Gets or sets a value indicating the maximum number of geometries to read
  26222. </summary>
  26223. </member>
  26224. <member name="P:NetTopologySuite.IO.WKBHexFileReader.Offset">
  26225. <summary>
  26226. Gets or sets the number of geometries to skip before storing.
  26227. </summary>
  26228. </member>
  26229. <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.String)">
  26230. <summary>
  26231. Reads a sequence of geometries.<br/>
  26232. If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
  26233. If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
  26234. </summary>
  26235. <param name="file">The path to the file</param>
  26236. <exception cref="T:System.ArgumentNullException">Thrown if no filename was specified</exception>
  26237. <exception cref="T:System.IO.FileNotFoundException">Thrown if the filename specified does not exist</exception>
  26238. <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
  26239. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occurred reading a geometry</exception>
  26240. </member>
  26241. <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.IO.Stream)">
  26242. <summary>
  26243. Reads a sequence of geometries.<br/>
  26244. If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
  26245. If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
  26246. </summary>
  26247. <param name="stream">The path to the file</param>
  26248. <exception cref="T:System.ArgumentNullException">Thrown if no stream was passed</exception>
  26249. <exception cref="T:System.ArgumentException">Thrown if passed stream is not readable or seekable</exception>
  26250. <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
  26251. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occured reading a geometry</exception>
  26252. </member>
  26253. <member name="M:NetTopologySuite.IO.WKBHexFileReader.Read(System.IO.StreamReader)">
  26254. <summary>
  26255. Reads a sequence of geometries.<br/>
  26256. If an <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Offset"/> is specified, geometries read up to the offset count are skipped.
  26257. If a <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> is specified, no more than <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> geometries are read.
  26258. </summary>
  26259. <param name="streamReader">The stream reader to use.</param>
  26260. <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
  26261. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occured reading a geometry</exception>
  26262. </member>
  26263. <member name="M:NetTopologySuite.IO.WKBHexFileReader.IsAtLimit(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry})">
  26264. <summary>
  26265. Tests if reader has reached limit
  26266. </summary>
  26267. <param name="geoms">A collection of already read geometries</param>
  26268. <returns><c>true</c> if <see cref="P:NetTopologySuite.IO.WKBHexFileReader.Limit"/> number of geometries has been read.</returns>
  26269. </member>
  26270. <member name="M:NetTopologySuite.IO.WKBHexFileReader.IsAtEndOfFile(System.IO.StreamReader)">
  26271. <summary>
  26272. Tests if reader is at EOF.
  26273. </summary>
  26274. </member>
  26275. <member name="T:NetTopologySuite.IO.WKBReader">
  26276. <summary>
  26277. Converts a Well-Known Binary byte data to a <c>Geometry</c>.
  26278. </summary>
  26279. <remarks>
  26280. This class reads the format describe in {@link WKBWriter}.
  26281. It partially handles the<b>Extended WKB</b> format used by PostGIS,
  26282. by parsing and storing optional SRID values.
  26283. If a SRID is not specified in an element geometry, it is inherited
  26284. from the parent's SRID.
  26285. The default SRID value depends on <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>.
  26286. <para/>
  26287. Although not defined in the WKB spec, empty points
  26288. are handled if they are represented as a Point with <c>NaN</c> X and Y ordinates.
  26289. <para/>
  26290. The reader repairs structurally-invalid input
  26291. (specifically, LineStrings and LinearRings which contain
  26292. too few points have vertices added,
  26293. and non-closed rings are closed).
  26294. <para/>
  26295. The reader handles most errors caused by malformed or malicious WKB data.
  26296. It checks for obviously excessive values of the fields
  26297. <c>numElems</c>, <c>numRings</c>, and <c>numCoords</c>.
  26298. It also checks that the reader does not read beyond the end of the data supplied.
  26299. A <see cref="T:NetTopologySuite.IO.ParseException"/> is thrown if this situation is detected.
  26300. </remarks>
  26301. </member>
  26302. <member name="M:NetTopologySuite.IO.WKBReader.HexToBytes(System.String)">
  26303. <summary>
  26304. Converts a hexadecimal string to a byte array.
  26305. The hexadecimal digit symbols are case-insensitive.
  26306. </summary>
  26307. <param name="hex">A string containing hex digits</param>
  26308. <returns>An array of bytes with the value of the hex string</returns>
  26309. </member>
  26310. <member name="M:NetTopologySuite.IO.WKBReader.#ctor">
  26311. <summary>
  26312. Initialize reader with a standard <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
  26313. </summary>
  26314. </member>
  26315. <member name="M:NetTopologySuite.IO.WKBReader.#ctor(NetTopologySuite.NtsGeometryServices)">
  26316. <summary>
  26317. Creates an instance of this class using the provided <c>NtsGeometryServices</c>
  26318. </summary>
  26319. <param name="services"></param>
  26320. </member>
  26321. <member name="M:NetTopologySuite.IO.WKBReader.Read(System.Byte[])">
  26322. <summary>
  26323. Reads a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in binary WKB format from an array of <see cref="T:System.Byte"/>s.
  26324. </summary>
  26325. <param name="data">The byte array to read from</param>
  26326. <returns>The geometry read</returns>
  26327. <exception cref="T:NetTopologySuite.IO.ParseException"> if the WKB data is ill-formed.</exception>
  26328. </member>
  26329. <member name="M:NetTopologySuite.IO.WKBReader.Read(System.IO.Stream)">
  26330. <summary>
  26331. Reads a <see cref="T:NetTopologySuite.Geometries.Geometry"/> in binary WKB format from an <see cref="T:System.IO.Stream"/>.
  26332. </summary>
  26333. <param name="stream">The stream to read from</param>
  26334. <returns>The geometry read</returns>
  26335. <exception cref="T:NetTopologySuite.IO.ParseException"> if the WKB data is ill-formed.</exception>
  26336. </member>
  26337. <member name="T:NetTopologySuite.IO.WKBReader.CoordinateSystem">
  26338. <summary>
  26339. WKB Coordinate Systems
  26340. </summary>
  26341. </member>
  26342. <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XY">
  26343. <summary>
  26344. 2D coordinate system
  26345. </summary>
  26346. </member>
  26347. <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYZ">
  26348. <summary>
  26349. 3D coordinate system
  26350. </summary>
  26351. </member>
  26352. <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYM">
  26353. <summary>
  26354. 2D coordinate system with additional measure value
  26355. </summary>
  26356. </member>
  26357. <member name="F:NetTopologySuite.IO.WKBReader.CoordinateSystem.XYZM">
  26358. <summary>
  26359. 3D coordinate system with additional measure value
  26360. </summary>
  26361. </member>
  26362. <member name="M:NetTopologySuite.IO.WKBReader.Read(System.IO.BinaryReader)">
  26363. <summary>
  26364. </summary>
  26365. <param name="reader"></param>
  26366. <returns></returns>
  26367. </member>
  26368. <member name="M:NetTopologySuite.IO.WKBReader.ReadByteOrder(System.IO.BinaryReader)">
  26369. <summary>
  26370. </summary>
  26371. <param name="reader"></param>
  26372. </member>
  26373. <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequence(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
  26374. <summary>
  26375. Function to read a coordinate sequence.
  26376. </summary>
  26377. <param name="reader">The reader</param>
  26378. <param name="size">The number of ordinates</param>
  26379. <param name="cs">The coordinate system</param>
  26380. <returns>The read coordinate sequence.</returns>
  26381. </member>
  26382. <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequenceRing(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
  26383. <summary>
  26384. Function to read a coordinate sequence that is supposed to form a ring.
  26385. </summary>
  26386. <param name="reader">The reader</param>
  26387. <param name="size">The number of ordinates</param>
  26388. <param name="cs">The coordinate system</param>
  26389. <returns>The read coordinate sequence.</returns>
  26390. </member>
  26391. <member name="M:NetTopologySuite.IO.WKBReader.ReadCoordinateSequenceLineString(System.IO.BinaryReader,System.Int32,NetTopologySuite.IO.WKBReader.CoordinateSystem)">
  26392. <summary>
  26393. Function to read a coordinate sequence that is supposed to serve a line string.
  26394. </summary>
  26395. <param name="reader">The reader</param>
  26396. <param name="size">The number of ordinates</param>
  26397. <param name="cs">The coordinate system</param>
  26398. <returns>The read coordinate sequence.</returns>
  26399. </member>
  26400. <member name="M:NetTopologySuite.IO.WKBReader.ToOrdinates(NetTopologySuite.IO.WKBReader.CoordinateSystem)">
  26401. <summary>
  26402. Function to convert from <see cref="T:NetTopologySuite.IO.WKBReader.CoordinateSystem"/> to <see cref="T:NetTopologySuite.Geometries.Ordinates"/>
  26403. </summary>
  26404. <param name="cs">The coordinate system</param>
  26405. <returns>The corresponding <see cref="T:NetTopologySuite.Geometries.Ordinates"/></returns>
  26406. </member>
  26407. <member name="M:NetTopologySuite.IO.WKBReader.ReadPoint(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26408. <summary>
  26409. Reads a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry.
  26410. </summary>
  26411. <param name="reader">The reader</param>
  26412. <param name="cs">The coordinate system</param>
  26413. <param name="srid">The spatial reference id for the geometry.</param>
  26414. <returns>A <see cref="T:NetTopologySuite.Geometries.Point"/> geometry</returns>
  26415. </member>
  26416. <member name="M:NetTopologySuite.IO.WKBReader.ReadLineString(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26417. <summary>
  26418. Reads a <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry.
  26419. </summary>
  26420. <param name="reader">The reader</param>
  26421. <param name="cs">The coordinate system</param>
  26422. <param name="srid">The spatial reference id for the geometry.</param>
  26423. <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry</returns>
  26424. </member>
  26425. <member name="M:NetTopologySuite.IO.WKBReader.ReadLinearRing(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26426. <summary>
  26427. Reads a <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometry.
  26428. </summary>
  26429. <param name="reader">The reader</param>
  26430. <param name="cs">The coordinate system</param>
  26431. <param name="srid">The spatial reference id for the geometry.</param>
  26432. <returns>A <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometry</returns>
  26433. </member>
  26434. <member name="M:NetTopologySuite.IO.WKBReader.ReadPolygon(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26435. <summary>
  26436. Reads a <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry.
  26437. </summary>
  26438. <param name="reader">The reader</param>
  26439. <param name="cs">The coordinate system</param>
  26440. <param name="srid">The spatial reference id for the geometry.</param>
  26441. <returns>A <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometry</returns>
  26442. </member>
  26443. <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiPoint(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26444. <summary>
  26445. Reads a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry.
  26446. </summary>
  26447. <param name="reader">The reader</param>
  26448. <param name="cs">The coordinate system</param>
  26449. <param name="srid">The spatial reference id for the geometry.</param>
  26450. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometry</returns>
  26451. </member>
  26452. <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiLineString(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26453. <summary>
  26454. Reads a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry.
  26455. </summary>
  26456. <param name="reader">The reader</param>
  26457. <param name="cs">The coordinate system</param>
  26458. <param name="srid">The spatial reference id for the geometry.</param>
  26459. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometry</returns>
  26460. </member>
  26461. <member name="M:NetTopologySuite.IO.WKBReader.ReadMultiPolygon(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26462. <summary>
  26463. Reads a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry.
  26464. </summary>
  26465. <param name="reader">The reader</param>
  26466. <param name="cs">The coordinate system</param>
  26467. <param name="srid">The spatial reference id for the geometry.</param>
  26468. <returns>A <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometry</returns>
  26469. </member>
  26470. <member name="M:NetTopologySuite.IO.WKBReader.ReadGeometryCollection(System.IO.BinaryReader,NetTopologySuite.IO.WKBReader.CoordinateSystem,System.Int32)">
  26471. <summary>
  26472. Reads a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry.
  26473. </summary>
  26474. <param name="reader">The reader</param>
  26475. <param name="cs">The coordinate system</param>
  26476. <param name="srid">The spatial reference id for the geometry.</param>
  26477. <returns>A <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometry</returns>
  26478. </member>
  26479. <member name="P:NetTopologySuite.IO.WKBReader.HandleSRID">
  26480. <summary>
  26481. Gets or sets a value indicating if a possibly encoded SRID value should be handled.
  26482. </summary>
  26483. </member>
  26484. <member name="P:NetTopologySuite.IO.WKBReader.AllowedOrdinates">
  26485. <summary>
  26486. Gets a value indicating which ordinates can be handled.
  26487. </summary>
  26488. </member>
  26489. <member name="P:NetTopologySuite.IO.WKBReader.HandleOrdinates">
  26490. <summary>
  26491. Gets a value indicating which ordinates should be handled.
  26492. </summary>
  26493. </member>
  26494. <member name="P:NetTopologySuite.IO.WKBReader.IsStrict">
  26495. <summary>
  26496. Gets or sets a value indicating if the reader should attempt to repair malformed input.
  26497. </summary>
  26498. <remarks>
  26499. <i>Malformed</i> in this case means the ring has too few points (4),
  26500. or is not closed.
  26501. </remarks>
  26502. </member>
  26503. <member name="P:NetTopologySuite.IO.WKBReader.RepairRings">
  26504. <summary>
  26505. Gets or sets whether invalid linear rings should be fixed
  26506. </summary>
  26507. </member>
  26508. <member name="M:NetTopologySuite.IO.WKBReader.HandleOrdinate(NetTopologySuite.Geometries.Ordinate)">
  26509. <summary>
  26510. Function to determine whether an ordinate should be handled or not.
  26511. </summary>
  26512. <param name="ordinate"></param>
  26513. <returns></returns>
  26514. </member>
  26515. <member name="T:NetTopologySuite.IO.WKBWriter">
  26516. <summary>
  26517. Writes a Well-Known Binary byte data representation of a <c>Geometry</c>.
  26518. </summary>
  26519. <remarks>
  26520. There are a few cases which are not specified in the standard.
  26521. The implementation uses a representation which is compatible with
  26522. other common spatial systems (notably, PostGIS).
  26523. <list type="bullet">
  26524. <item><term><see cref="T:NetTopologySuite.Geometries.LinearRing"/>s</term><description>are written as <see cref="T:NetTopologySuite.Geometries.LineString"/>s.</description></item>
  26525. <item><term>Empty geometries are output as follows</term><description>
  26526. <list type="bullet">
  26527. <item><term><c>Point</c></term><description>A <c>WKBPoint</c> with <c>double.NaN</c> ordinate values</description></item>
  26528. <item><term><c>LineString</c></term><description>A <c>WKBLineString</c> with zero points</description></item>
  26529. <item><term><c>Polygon</c></term><description>currently output as a <c>WKBPolygon</c> with one <c>LinearRing</c> with zero points.
  26530. <i>Note:</i> This is different to other systems. It will change to a <c>WKBPolygon</c> with zero <c>LinearRing</c>s.</description></item>
  26531. <item><term>Multi geometries</term><description>A <c>WKBMulti</c> with zero elements</description></item>
  26532. <item><term><c>GeometryCollection</c></term><description>A <c>WKBGeometryCollection</c> with zero elements</description></item>
  26533. </list>
  26534. </description></item></list>
  26535. <para/>
  26536. This implementation supports the <b>Extended WKB</b> standard.
  26537. Extended WKB allows writing 3-dimensional coordinates
  26538. and the geometry SRID value.
  26539. The presence of 3D coordinates is indicated
  26540. by setting the high bit of the <tt>wkbType</tt> word.
  26541. The presence of a SRID is indicated
  26542. by setting the third bit of the <tt>wkbType</tt> word.
  26543. EWKB format is upward-compatible with the original SFS WKB format.
  26544. <para/>
  26545. SRID output is optimized, if specified.
  26546. The top-level geometry has the SRID included. Child geometries
  26547. have it included if their value differs from its parent.
  26548. <para/>
  26549. This class supports reuse of a single instance to read multiple
  26550. geometries. This class is not thread - safe; each thread should create its own
  26551. instance.
  26552. </remarks>
  26553. </member>
  26554. <member name="M:NetTopologySuite.IO.WKBWriter.ToHex(System.Byte[])">
  26555. <summary>Converts a byte array to a hexadecimal string.</summary>
  26556. <param name="bytes">A byte array</param>
  26557. </member>
  26558. <member name="M:NetTopologySuite.IO.WKBWriter.WriteHeader(System.IO.BinaryWriter,NetTopologySuite.Geometries.Geometry,System.Boolean)">
  26559. <summary>
  26560. Writes the WKB Header for the geometry
  26561. </summary>
  26562. <param name="writer">The writer</param>
  26563. <param name="geom">The geometry</param>
  26564. <param name="includeSRID">
  26565. A flag indicting if SRID value is of possible interest.
  26566. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26567. </param>
  26568. </member>
  26569. <member name="P:NetTopologySuite.IO.WKBWriter.EncodingType">
  26570. <summary>
  26571. Gets or sets the binary encoding type
  26572. </summary>
  26573. </member>
  26574. <member name="P:NetTopologySuite.IO.WKBWriter.InitCount">
  26575. <summary>
  26576. Standard byte size for each complex point.
  26577. Each complex point (LineString, Polygon, ...) contains:
  26578. 1 byte for ByteOrder and
  26579. 4 bytes for WKBType.
  26580. 4 bytes for SRID value
  26581. </summary>
  26582. </member>
  26583. <member name="M:NetTopologySuite.IO.WKBWriter.GetHeaderSize(System.Boolean)">
  26584. <summary>
  26585. Calculates the number of bytes required to store (E)WKB Header information.
  26586. </summary>
  26587. <param name="includeSRID">
  26588. A flag indicting if SRID value is of possible interest.
  26589. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26590. </param>
  26591. <returns>The size of the </returns>
  26592. </member>
  26593. <member name="M:NetTopologySuite.IO.WKBWriter.#ctor">
  26594. <summary>
  26595. Initializes writer with LittleIndian byte order.
  26596. </summary>
  26597. </member>
  26598. <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder)">
  26599. <summary>
  26600. Initializes writer with the specified byte order.
  26601. </summary>
  26602. <param name="encodingType">Encoding type</param>
  26603. </member>
  26604. <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean)">
  26605. <summary>
  26606. Initializes writer with the specified byte order.
  26607. </summary>
  26608. <param name="encodingType">Encoding type</param>
  26609. <param name="handleSRID">SRID values, present or not, should be emitted.</param>
  26610. </member>
  26611. <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean,System.Boolean)">
  26612. <summary>
  26613. Initializes writer with the specified byte order.
  26614. </summary>
  26615. <param name="encodingType">Encoding type</param>
  26616. <param name="handleSRID">SRID values, present or not, should be emitted.</param>
  26617. <param name="emitZ">Z values, present or not, should be emitted</param>
  26618. </member>
  26619. <member name="M:NetTopologySuite.IO.WKBWriter.#ctor(NetTopologySuite.IO.ByteOrder,System.Boolean,System.Boolean,System.Boolean)">
  26620. <summary>
  26621. Initializes writer with the specified byte order.
  26622. </summary>
  26623. <param name="encodingType">Encoding type</param>
  26624. <param name="handleSRID">SRID values, present or not, should be emitted.</param>
  26625. <param name="emitZ">Z values, present or not, should be emitted</param>
  26626. <param name="emitM">M values, present or not, should be emitted</param>
  26627. </member>
  26628. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry)">
  26629. <summary>
  26630. Writes a WKB representation of a given point.
  26631. </summary>
  26632. <param name="geometry"></param>
  26633. <returns></returns>
  26634. </member>
  26635. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
  26636. <summary>
  26637. Writes a WKB representation of a given point.
  26638. </summary>
  26639. <param name="geometry"></param>
  26640. <param name="stream"></param>
  26641. <returns></returns>
  26642. </member>
  26643. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.BinaryWriter)">
  26644. <summary>
  26645. </summary>
  26646. <param name="geometry"></param>
  26647. <param name="writer"></param>
  26648. </member>
  26649. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.BinaryWriter,System.Boolean)">
  26650. <summary>
  26651. </summary>
  26652. <param name="geometry"></param>
  26653. <param name="writer"></param>
  26654. <param name="includeSRID">
  26655. A flag indicting if SRID value is of possible interest.
  26656. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26657. </param>
  26658. </member>
  26659. <member name="M:NetTopologySuite.IO.WKBWriter.WriteByteOrder(System.IO.BinaryWriter)">
  26660. <summary>
  26661. Writes the ByteOrder defined in <see cref="P:NetTopologySuite.IO.WKBWriter.EncodingType"/>.
  26662. </summary>
  26663. <param name="writer">The writer to use</param>
  26664. </member>
  26665. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Coordinate,System.IO.BinaryWriter)">
  26666. <summary>
  26667. Write a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  26668. </summary>
  26669. <param name="coordinate">The coordinate</param>
  26670. <param name="writer">The writer.</param>
  26671. </member>
  26672. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.CoordinateSequence,System.Boolean,System.IO.BinaryWriter)">
  26673. <summary>
  26674. Write a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  26675. </summary>
  26676. <param name="sequence">The coordinate sequence to write</param>
  26677. <param name="emitSize">A flag indicating if the size of <paramref name="sequence"/> should be written, too.</param>
  26678. <param name="writer">The writer.</param>
  26679. </member>
  26680. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Point,System.IO.BinaryWriter)">
  26681. <summary>
  26682. Write a point in its WKB format
  26683. </summary>
  26684. <param name="point">The point</param>
  26685. <param name="writer">The writer</param>
  26686. </member>
  26687. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Point,System.IO.BinaryWriter,System.Boolean)">
  26688. <summary>
  26689. Write a point in its WKB format
  26690. </summary>
  26691. <param name="point">The point</param>
  26692. <param name="writer">The writer</param>
  26693. <param name="includeSRID">
  26694. A flag indicting if SRID value is of possible interest.
  26695. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26696. </param>
  26697. </member>
  26698. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LineString,System.IO.BinaryWriter)">
  26699. <summary>
  26700. Write a LineString in its WKB format
  26701. </summary>
  26702. <param name="lineString">The LineString</param>
  26703. <param name="writer">The writer</param>
  26704. </member>
  26705. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LineString,System.IO.BinaryWriter,System.Boolean)">
  26706. <summary>
  26707. Write a LineString in its WKB format
  26708. </summary>
  26709. <param name="lineString">The LineString</param>
  26710. <param name="writer">The writer</param>
  26711. <param name="includeSRID">
  26712. A flag indicting if SRID value is of possible interest.
  26713. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26714. </param>
  26715. </member>
  26716. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.LinearRing,System.IO.BinaryWriter)">
  26717. <summary>
  26718. Write LinearRing information
  26719. </summary>
  26720. <param name="ring">The linear ring</param>
  26721. <param name="writer">The writer</param>
  26722. </member>
  26723. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Polygon,System.IO.BinaryWriter)">
  26724. <summary>
  26725. Write a Polygon in its WKB format
  26726. </summary>
  26727. <param name="polygon">The Polygon</param>
  26728. <param name="writer">The writer</param>
  26729. </member>
  26730. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.Polygon,System.IO.BinaryWriter,System.Boolean)">
  26731. <summary>
  26732. Write a Polygon in its WKB format
  26733. </summary>
  26734. <param name="polygon">The Polygon</param>
  26735. <param name="writer">The writer</param>
  26736. <param name="includeSRID">
  26737. A flag indicting if SRID value is of possible interest.
  26738. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26739. </param>
  26740. </member>
  26741. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.IO.BinaryWriter)">
  26742. <summary>
  26743. Write a MultiPoint in its WKB format
  26744. </summary>
  26745. <param name="multiPoint">The MultiPoint</param>
  26746. <param name="writer">The writer</param>
  26747. </member>
  26748. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPoint,System.IO.BinaryWriter,System.Boolean)">
  26749. <summary>
  26750. Write a MultiPoint in its WKB format
  26751. </summary>
  26752. <param name="multiPoint">The MultiPoint</param>
  26753. <param name="writer">The writer</param>
  26754. <param name="includeSRID">
  26755. A flag indicting if SRID value is of possible interest.
  26756. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26757. </param>
  26758. </member>
  26759. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.IO.BinaryWriter)">
  26760. <summary>
  26761. Write a MultiLineString in its WKB format
  26762. </summary>
  26763. <param name="multiLineString">The MultiLineString</param>
  26764. <param name="writer">The writer</param>
  26765. </member>
  26766. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiLineString,System.IO.BinaryWriter,System.Boolean)">
  26767. <summary>
  26768. Write a MultiLineString in its WKB format
  26769. </summary>
  26770. <param name="multiLineString">The MultiLineString</param>
  26771. <param name="writer">The writer</param>
  26772. <param name="includeSRID">
  26773. A flag indicting if SRID value is of possible interest.
  26774. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26775. </param>
  26776. </member>
  26777. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.IO.BinaryWriter)">
  26778. <summary>
  26779. Write a MultiPolygon in its WKB format
  26780. </summary>
  26781. <param name="multiPolygon">The MultiPolygon</param>
  26782. <param name="writer">The writer</param>
  26783. </member>
  26784. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.MultiPolygon,System.IO.BinaryWriter,System.Boolean)">
  26785. <summary>
  26786. Write a MultiPolygon in its WKB format
  26787. </summary>
  26788. <param name="multiPolygon">The MultiPolygon</param>
  26789. <param name="writer">The writer</param>
  26790. <param name="includeSRID">
  26791. A flag indicting if SRID value is of possible interest.
  26792. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26793. </param>
  26794. </member>
  26795. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.IO.BinaryWriter)">
  26796. <summary>
  26797. Write a GeometryCollection in its WKB format
  26798. </summary>
  26799. <param name="geomCollection">The GeometryCollection</param>
  26800. <param name="writer">The writer</param>
  26801. </member>
  26802. <member name="M:NetTopologySuite.IO.WKBWriter.Write(NetTopologySuite.Geometries.GeometryCollection,System.IO.BinaryWriter,System.Boolean)">
  26803. <summary>
  26804. Write a GeometryCollection in its WKB format
  26805. </summary>
  26806. <param name="geomCollection">The GeometryCollection</param>
  26807. <param name="writer">The writer</param>
  26808. <param name="includeSRID">
  26809. A flag indicting if SRID value is of possible interest.
  26810. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26811. </param>
  26812. </member>
  26813. <member name="M:NetTopologySuite.IO.WKBWriter.GetBytes(NetTopologySuite.Geometries.Geometry)">
  26814. <summary>
  26815. Gets a buffer for the <see cref="T:System.IO.MemoryStream"/> to write <paramref name="geometry"/> to.
  26816. </summary>
  26817. <param name="geometry">The geometry to write</param>
  26818. <returns>A buffer</returns>
  26819. </member>
  26820. <member name="M:NetTopologySuite.IO.WKBWriter.GetBuffer(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  26821. <summary>
  26822. Gets a buffer for the <see cref="T:System.IO.MemoryStream"/> to write <paramref name="geometry"/> to.
  26823. </summary>
  26824. <param name="geometry">The geometry to write</param>
  26825. <param name="includeSRID">
  26826. A flag indicting if SRID value is of possible interest.
  26827. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26828. </param>
  26829. <returns>A buffer</returns>
  26830. </member>
  26831. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Geometry)">
  26832. <summary>
  26833. Computes the length of a buffer to write <paramref name="geometry"/> in its WKB format.
  26834. </summary>
  26835. <param name="geometry">The geometry</param>
  26836. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26837. </member>
  26838. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  26839. <summary>
  26840. Computes the length of a buffer to write <paramref name="geometry"/> in its WKB format.
  26841. </summary>
  26842. <param name="geometry">The geometry</param>
  26843. <param name="includeSRID">
  26844. A flag indicting if SRID value is of possible interest.
  26845. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26846. </param>
  26847. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26848. </member>
  26849. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.GeometryCollection)">
  26850. <summary>
  26851. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> <paramref name="geometry"/> in its WKB format.
  26852. </summary>
  26853. <param name="geometry">The geometry</param>
  26854. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26855. </member>
  26856. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.GeometryCollection,System.Boolean)">
  26857. <summary>
  26858. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> <paramref name="geometry"/> in its WKB format.
  26859. </summary>
  26860. <param name="geometry">The geometry</param>
  26861. <param name="includeSRID">
  26862. A flag indicting if SRID value is of possible interest.
  26863. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26864. </param>
  26865. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26866. </member>
  26867. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiPolygon)">
  26868. <summary>
  26869. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> <paramref name="geometry"/> in its WKB format.
  26870. </summary>
  26871. <param name="geometry">The geometry</param>
  26872. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26873. </member>
  26874. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiPolygon,System.Boolean)">
  26875. <summary>
  26876. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> <paramref name="geometry"/> in its WKB format.
  26877. </summary>
  26878. <param name="geometry">The geometry</param>
  26879. <param name="includeSRID">
  26880. A flag indicting if SRID value is of possible interest.
  26881. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26882. </param>
  26883. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26884. </member>
  26885. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiLineString)">
  26886. <summary>
  26887. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> <paramref name="geometry"/> in its WKB format.
  26888. </summary>
  26889. <param name="geometry">The geometry</param>
  26890. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26891. </member>
  26892. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiLineString,System.Boolean)">
  26893. <summary>
  26894. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> <paramref name="geometry"/> in its WKB format.
  26895. </summary>
  26896. <param name="geometry">The geometry</param>
  26897. <param name="includeSRID">
  26898. A flag indicting if SRID value is of possible interest.
  26899. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26900. </param>
  26901. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26902. </member>
  26903. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.MultiPoint)">
  26904. <summary>
  26905. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> <paramref name="geometry"/> in its WKB format.
  26906. </summary>
  26907. <param name="geometry">The geometry</param>
  26908. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26909. </member>
  26910. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.MultiPoint,System.Boolean)">
  26911. <summary>
  26912. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> <paramref name="geometry"/> in its WKB format.
  26913. </summary>
  26914. <param name="geometry">The geometry</param>
  26915. <param name="includeSRID">
  26916. A flag indicting if SRID value is of possible interest.
  26917. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26918. </param>
  26919. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26920. </member>
  26921. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Polygon)">
  26922. <summary>
  26923. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Polygon"/> <paramref name="geometry"/> in its WKB format.
  26924. </summary>
  26925. <param name="geometry">The geometry</param>
  26926. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26927. </member>
  26928. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Polygon,System.Boolean)">
  26929. <summary>
  26930. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Polygon"/> <paramref name="geometry"/> in its WKB format.
  26931. </summary>
  26932. <param name="geometry">The geometry</param>
  26933. <param name="includeSRID">
  26934. A flag indicting if SRID value is of possible interest.
  26935. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26936. </param>
  26937. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26938. </member>
  26939. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.LineString)">
  26940. <summary>
  26941. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.LineString"/> <paramref name="geometry"/> in its WKB format.
  26942. </summary>
  26943. <param name="geometry">The geometry</param>
  26944. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26945. </member>
  26946. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.LineString,System.Boolean)">
  26947. <summary>
  26948. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.LineString"/> <paramref name="geometry"/> in its WKB format.
  26949. </summary>
  26950. <param name="geometry">The geometry</param>
  26951. <param name="includeSRID">
  26952. A flag indicting if SRID value is of possible interest.
  26953. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26954. </param>
  26955. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26956. </member>
  26957. <member name="M:NetTopologySuite.IO.WKBWriter.SetByteStream(NetTopologySuite.Geometries.Point)">
  26958. <summary>
  26959. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Point"/> <paramref name="geometry"/> in its WKB format.
  26960. </summary>
  26961. <param name="geometry">The geometry</param>
  26962. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26963. </member>
  26964. <member name="M:NetTopologySuite.IO.WKBWriter.GetRequiredBufferSize(NetTopologySuite.Geometries.Point,System.Boolean)">
  26965. <summary>
  26966. Computes the length of a buffer to write the <see cref="T:NetTopologySuite.Geometries.Point"/> <paramref name="geometry"/> in its WKB format.
  26967. </summary>
  26968. <param name="geometry">The geometry</param>
  26969. <param name="includeSRID">
  26970. A flag indicting if SRID value is of possible interest.
  26971. The value is <c>&amp;&amp;</c>-combineed with <c>HandleSRID</c>.
  26972. </param>
  26973. <returns>The number of bytes required to store <paramref name="geometry"/> in its WKB format.</returns>
  26974. </member>
  26975. <member name="F:NetTopologySuite.IO.WKBWriter._strict">
  26976. <summary>
  26977. Gets a value whether or not EWKB featues may be used.
  26978. <para/>EWKB features are
  26979. <list type="bullet">
  26980. <item><description><c>0x80000000</c> flag if geometry's z-ordinate values are written</description></item>
  26981. <item><description><c>0x40000000</c> flag if geometry's m-ordinate values are written</description></item>
  26982. <item><description><c>0x20000000</c> flag if geometry's SRID value is written</description></item></list>
  26983. </summary>
  26984. </member>
  26985. <member name="P:NetTopologySuite.IO.WKBWriter.Strict">
  26986. <summary>
  26987. Gets a value indicating if only original WKT elements should be handled
  26988. </summary>
  26989. </member>
  26990. <member name="P:NetTopologySuite.IO.WKBWriter.HandleSRID">
  26991. <summary>
  26992. Gets or sets a value indicating if an encoded SRID value should be handled or ignored.
  26993. </summary>
  26994. </member>
  26995. <member name="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates">
  26996. <summary>
  26997. Gets the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> that this class can write.
  26998. </summary>
  26999. </member>
  27000. <member name="P:NetTopologySuite.IO.WKBWriter.HandleOrdinates">
  27001. <summary>
  27002. Gets or sets the maximum <see cref="T:NetTopologySuite.Geometries.Ordinates"/> to write out.
  27003. The default is equivalent to <see cref="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates"/>.
  27004. </summary>
  27005. <remarks>
  27006. <para>
  27007. The purpose of this property is to <b>restrict</b> what gets written out to ensure that,
  27008. e.g., Z values are never written out even if present on a geometry instance. Ordinates
  27009. that are not present on a geometry instance will be omitted regardless of this value.
  27010. </para>
  27011. <para>
  27012. Flags not present in <see cref="F:NetTopologySuite.IO.WKBWriter.AllowedOrdinates"/> are silently ignored.
  27013. </para>
  27014. <para>
  27015. <see cref="F:NetTopologySuite.Geometries.Ordinates.X"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/> are always present.
  27016. </para>
  27017. </remarks>
  27018. </member>
  27019. <member name="T:NetTopologySuite.IO.WKTConstants">
  27020. <summary>
  27021. Constants used in the WKT (Well-Known Text) format.
  27022. </summary>
  27023. <author>Martin Davis</author>
  27024. </member>
  27025. <member name="F:NetTopologySuite.IO.WKTConstants.GEOMETRYCOLLECTION">
  27026. <summary>
  27027. Token text for <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> geometries
  27028. </summary>
  27029. </member>
  27030. <member name="F:NetTopologySuite.IO.WKTConstants.LINEARRING">
  27031. <summary>
  27032. Token text for <see cref="T:NetTopologySuite.Geometries.LinearRing"/> geometries
  27033. </summary>
  27034. </member>
  27035. <member name="F:NetTopologySuite.IO.WKTConstants.LINESTRING">
  27036. <summary>
  27037. Token text for <see cref="T:NetTopologySuite.Geometries.LineString"/> geometries
  27038. </summary>
  27039. </member>
  27040. <member name="F:NetTopologySuite.IO.WKTConstants.MULTIPOLYGON">
  27041. <summary>
  27042. Token text for <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/> geometries
  27043. </summary>
  27044. </member>
  27045. <member name="F:NetTopologySuite.IO.WKTConstants.MULTILINESTRING">
  27046. <summary>
  27047. Token text for <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> geometries
  27048. </summary>
  27049. </member>
  27050. <member name="F:NetTopologySuite.IO.WKTConstants.MULTIPOINT">
  27051. <summary>
  27052. Token text for <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> geometries
  27053. </summary>
  27054. </member>
  27055. <member name="F:NetTopologySuite.IO.WKTConstants.POINT">
  27056. <summary>
  27057. Token text for <see cref="T:NetTopologySuite.Geometries.Point"/> geometries
  27058. </summary>
  27059. </member>
  27060. <member name="F:NetTopologySuite.IO.WKTConstants.POLYGON">
  27061. <summary>
  27062. Token text for <see cref="T:NetTopologySuite.Geometries.Polygon"/> geometries
  27063. </summary>
  27064. </member>
  27065. <member name="F:NetTopologySuite.IO.WKTConstants.EMPTY">
  27066. <summary>
  27067. Token text for empty geometries
  27068. </summary>
  27069. </member>
  27070. <member name="F:NetTopologySuite.IO.WKTConstants.M">
  27071. <summary>
  27072. Token text indicating that geometries have measure-ordinate values
  27073. </summary>
  27074. </member>
  27075. <member name="F:NetTopologySuite.IO.WKTConstants.Z">
  27076. <summary>
  27077. Token text indicating that geometries have z-ordinate values
  27078. </summary>
  27079. </member>
  27080. <member name="F:NetTopologySuite.IO.WKTConstants.ZM">
  27081. <summary>
  27082. Token text indicating that geometries have both z- and measure-ordinate values
  27083. </summary>
  27084. </member>
  27085. <member name="T:NetTopologySuite.IO.WKTFileReader">
  27086. <summary>
  27087. Reads a sequence of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s in WKT format from a text file.
  27088. </summary>
  27089. <remarks>The geometries in the file may be separated by any amount of whitespace and newlines.</remarks>
  27090. <author>
  27091. Martin Davis
  27092. </author>
  27093. </member>
  27094. <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.FileInfo,NetTopologySuite.IO.WKTReader)">
  27095. <summary>
  27096. Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" /> given the <paramref name="file" /> to read from and a <see cref="T:NetTopologySuite.IO.WKTReader" /> to use to parse the geometries.
  27097. </summary>
  27098. <param name="file"> the <see cref="T:System.IO.FileInfo" /> to read from</param>
  27099. <param name="wktReader">the geometry reader to use</param>
  27100. </member>
  27101. <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.String,NetTopologySuite.IO.WKTReader)">
  27102. <summary>
  27103. Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given the name of the file to read from.
  27104. </summary>
  27105. <param name="filename">The name of the file to read from</param>
  27106. <param name="wktReader">The geometry reader to use</param>
  27107. </member>
  27108. <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.Stream,NetTopologySuite.IO.WKTReader)">
  27109. <summary>
  27110. Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given a <see cref="T:System.IO.Stream"/> to read from.
  27111. </summary>
  27112. <param name="stream">The stream to read from</param>
  27113. <param name="wktReader">The geometry reader to use</param>
  27114. </member>
  27115. <member name="M:NetTopologySuite.IO.WKTFileReader.#ctor(System.IO.TextReader,NetTopologySuite.IO.WKTReader)">
  27116. <summary>
  27117. Creates a new <see cref="T:NetTopologySuite.IO.WKTFileReader" />, given a <see cref="T:System.IO.TextReader"/> to read with.
  27118. </summary>
  27119. <param name="reader">The stream reader of the file to read from</param>
  27120. <param name="wktReader">The geometry reader to use</param>
  27121. </member>
  27122. <member name="P:NetTopologySuite.IO.WKTFileReader.Limit">
  27123. <summary>
  27124. Gets/Sets the maximum number of geometries to read.
  27125. </summary>
  27126. </member>
  27127. <member name="P:NetTopologySuite.IO.WKTFileReader.StrictParsing">
  27128. <summary>
  27129. Gets/Sets allow ignoring WKT parse errors
  27130. after at least one geometry has been read,
  27131. to return a partial result.
  27132. </summary>
  27133. </member>
  27134. <member name="P:NetTopologySuite.IO.WKTFileReader.Offset">
  27135. <summary>
  27136. Gets/Sets the number of geometries to skip before reading.
  27137. </summary>
  27138. </member>
  27139. <member name="M:NetTopologySuite.IO.WKTFileReader.Read">
  27140. <summary>
  27141. Reads a sequence of geometries.
  27142. </summary>
  27143. <remarks>
  27144. <para>
  27145. If an offset is specified, geometries read up to the offset count are skipped.</para>
  27146. <para>If a limit is specified, no more than <see cref="P:NetTopologySuite.IO.WKTFileReader.Limit" /> geometries are read.</para>
  27147. </remarks>
  27148. <exception cref="T:System.IO.IOException">Thrown if an I/O exception was encountered</exception>
  27149. <exception cref="T:NetTopologySuite.IO.ParseException">Thrown if an error occurred reading a geometry</exception>
  27150. <returns>The list of geometries read</returns>
  27151. </member>
  27152. <member name="M:NetTopologySuite.IO.WKTFileReader.IsAtEndOfFile(System.IO.StreamReader)">
  27153. <summary>
  27154. Tests if reader is at EOF.
  27155. </summary>
  27156. </member>
  27157. <member name="T:NetTopologySuite.IO.WKTReader">
  27158. <summary>
  27159. Converts a Well-Known Text string to a <c>Geometry</c>.
  27160. The <c>WKTReader</c> allows
  27161. extracting <c>Geometry</c> objects from either input streams or
  27162. internal strings. This allows it to function as a parser to read <c>Geometry</c>
  27163. objects from text blocks embedded in other data formats (e.g. XML).
  27164. The Well-known
  27165. Text format is defined in the <A HREF="http://www.opengis.org/techno/specs.htm">
  27166. OpenGIS Simple Features Specification for SQL</A> .
  27167. <para/>
  27168. As of version 2.0, NTS can read WKT syntax
  27169. which specifies coordinate dimension Z, M or ZM as modifiers(e.g.POINT Z)
  27170. or in the name of the geometry type(e.g.LINESTRINGZM).
  27171. If the coordinate dimension is specified it will be set in the created geometry.
  27172. If the coordinate dimension is not specified, the default behaviour is to
  27173. create XYZ geometry(this is backwards compatible with older JTS versions).
  27174. This can be altered to create XY geometry by
  27175. setting <see cref="P:NetTopologySuite.IO.WKTReader.IsOldNtsCoordinateSyntaxAllowed"/> to <c>false</c>.
  27176. <para/>
  27177. A reader can be set to ensure the input is structurally valid
  27178. by setting <see cref="P:NetTopologySuite.IO.WKTReader.FixStructure"/> to <c>true</c>.
  27179. This ensures that geometry can be constructed without errors due to missing coordinates.
  27180. The created geometry may still be topologically invalid.
  27181. <para/>
  27182. NOTE: There is an inconsistency in the SFS.
  27183. The WKT grammar states that <c>MultiPoints</c> are represented by
  27184. <c>MULTIPOINT ( ( x y), (x y) )</c>,
  27185. but the examples show <c>MultiPoint</c>s as <c>MULTIPOINT ( x y, x y )</c>.
  27186. Other implementations follow the latter syntax, so NTS will adopt it as well.
  27187. A <c>WKTReader</c> is parameterized by a <c>GeometryFactory</c>,
  27188. to allow it to create <c>Geometry</c> objects of the appropriate
  27189. implementation. In particular, the <c>GeometryFactory</c> will
  27190. determine the <c>PrecisionModel</c> and <c>SRID</c> that is used.
  27191. The <c>WKTReader</c> will convert the input numbers to the precise
  27192. internal representation.
  27193. <remarks>
  27194. <see cref="T:NetTopologySuite.IO.WKTReader" /> reads also non-standard <see cref="F:NetTopologySuite.IO.WKTConstants.LINEARRING"/> tags.
  27195. </remarks>
  27196. </summary>
  27197. </member>
  27198. <member name="M:NetTopologySuite.IO.WKTReader.#ctor">
  27199. <summary>
  27200. Creates a <c>WKTReader</c> that creates objects using a basic GeometryFactory.
  27201. </summary>
  27202. </member>
  27203. <member name="M:NetTopologySuite.IO.WKTReader.#ctor(NetTopologySuite.NtsGeometryServices)">
  27204. <summary>
  27205. Creates a <c>WKTReader</c> that creates objects using a basic GeometryFactory.
  27206. </summary>
  27207. </member>
  27208. <member name="M:NetTopologySuite.IO.WKTReader.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  27209. <summary>
  27210. Creates a <c>WKTReader</c> that creates objects using the given
  27211. <c>GeometryFactory</c>.
  27212. </summary>
  27213. <param name="factory">The factory used to create <c>Geometry</c>s.</param>
  27214. </member>
  27215. <member name="P:NetTopologySuite.IO.WKTReader.IsOldNtsCoordinateSyntaxAllowed">
  27216. <summary>
  27217. Gets or sets a value indicating whether or not coordinates may have 3 ordinate values
  27218. even though no Z or M ordinate indicator is present. The default value is
  27219. <see langword="true"/>.
  27220. </summary>
  27221. </member>
  27222. <member name="P:NetTopologySuite.IO.WKTReader.IsOldNtsMultiPointSyntaxAllowed">
  27223. <summary>
  27224. Gets or sets a value indicating whether or not point coordinates in a MultiPoint
  27225. geometry must not be enclosed in paren. The default value is <see langword="true"/>.
  27226. </summary>
  27227. </member>
  27228. <member name="P:NetTopologySuite.IO.WKTReader.FixStructure">
  27229. <summary>
  27230. Gets or sets a flag indicating that the structure of input geometry should be fixed
  27231. so that the geometry can be constructed without error.<br/>
  27232. This involves adding coordinates if the input coordinate sequence is shorter than required.
  27233. </summary>
  27234. <seealso cref="F:NetTopologySuite.Geometries.LineString.MinimumValidSize"/>
  27235. </member>
  27236. <member name="P:NetTopologySuite.IO.WKTReader.Factory">
  27237. <summary>
  27238. Gets or sets the factory to create geometries
  27239. </summary>
  27240. </member>
  27241. <member name="P:NetTopologySuite.IO.WKTReader.DefaultSRID">
  27242. <summary>
  27243. Gets or sets the default SRID
  27244. </summary>
  27245. </member>
  27246. <member name="P:NetTopologySuite.IO.WKTReader.IsStrict">
  27247. <summary>
  27248. Gets or sets a value indicating if the reader should attempt to repair malformed input.
  27249. </summary>
  27250. <remarks>
  27251. <i>Malformed</i> in this case means the ring has too few points (4),
  27252. or is not closed.
  27253. </remarks>
  27254. </member>
  27255. <member name="M:NetTopologySuite.IO.WKTReader.Read(System.String)">
  27256. <summary>
  27257. Converts a Well-known Text representation to a <c>Geometry</c>.
  27258. </summary>
  27259. <param name="wellKnownText">
  27260. one or more Geometry Tagged Text strings (see the OpenGIS
  27261. Simple Features Specification) separated by whitespace.
  27262. </param>
  27263. <returns>
  27264. A <c>Geometry</c> specified by <c>wellKnownText</c>
  27265. </returns>
  27266. </member>
  27267. <member name="M:NetTopologySuite.IO.WKTReader.Read(System.IO.Stream)">
  27268. <summary>
  27269. Converts a Well-known Text representation to a <c>Geometry</c>.
  27270. </summary>
  27271. <param name="stream">
  27272. one or more Geometry Tagged Text strings (see the OpenGIS
  27273. Simple Features Specification) separated by whitespace.
  27274. </param>
  27275. <returns>
  27276. A <c>Geometry</c> specified by <c>wellKnownText</c>
  27277. </returns>
  27278. </member>
  27279. <member name="M:NetTopologySuite.IO.WKTReader.Read(System.IO.TextReader)">
  27280. <summary>
  27281. Converts a Well-known Text representation to a <c>Geometry</c>.
  27282. </summary>
  27283. <param name="reader">
  27284. A Reader which will return a "Geometry Tagged Text"
  27285. string (see the OpenGIS Simple Features Specification).
  27286. </param>
  27287. <returns>A <c>Geometry</c> read from <c>reader</c>.
  27288. </returns>
  27289. </member>
  27290. <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinate(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates,System.Boolean)">
  27291. <summary>
  27292. Reads a <c>Coordinate</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>.
  27293. <para>
  27294. All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
  27295. of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
  27296. Those are silently dropped.
  27297. </para>
  27298. </summary>
  27299. <param name="factory">A geometry factory</param>
  27300. <param name="tokens">the tokenizer to use.</param>
  27301. <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
  27302. <param name="tryParen">a value indicating if a starting "<c>(</c>" should be probed.</param>
  27303. <returns>a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of appropriate dimension containing the read ordinate values.</returns>
  27304. <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
  27305. <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
  27306. </member>
  27307. <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinateSequence(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates,System.Int32,System.Boolean)">
  27308. <summary>
  27309. Reads a <c>Coordinate</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>.
  27310. <para>
  27311. All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
  27312. of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
  27313. Those are silently dropped.
  27314. </para>
  27315. </summary>
  27316. <param name="factory">A geometry factory</param>
  27317. <param name="tokens">the tokenizer to use.</param>
  27318. <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
  27319. <param name="minSize">The minumum number of coordinates that have to be in the sequence</param>
  27320. <param name="isRing">A flag indicating if the sequence should form a ring</param>
  27321. <returns>a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> of length 1 containing the read ordinate values.</returns>
  27322. <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
  27323. <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
  27324. </member>
  27325. <member name="M:NetTopologySuite.IO.WKTReader.GetCoordinateSequenceOldMultiPoint(NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.Ordinates)">
  27326. <summary>
  27327. Reads a <c>CoordinateSequence</c> from a stream using the given <see cref="T:RTools_NTS.Util.StreamTokenizer"/>
  27328. for an old-style JTS MultiPoint (Point coordinates not enclosed in parentheses).
  27329. <para>
  27330. All ordinate values are read, but -depending on the <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>
  27331. of the underlying <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>- not necessarily all can be handled.
  27332. Those are silently dropped.
  27333. </para>
  27334. </summary>
  27335. <param name="factory">A geometry factory</param>
  27336. <param name="tokens">the tokenizer to use.</param>
  27337. <param name="ordinateFlags">a bit-mask defining the ordinates to read.</param>
  27338. <returns>a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> of length 1 containing the read ordinate values.</returns>
  27339. <exception cref="T:System.IO.IOException">if an I/O error occurs.</exception>
  27340. <exception cref="T:NetTopologySuite.IO.ParseException">if an unexpected token was encountered.</exception>
  27341. </member>
  27342. <member name="M:NetTopologySuite.IO.WKTReader.ToDimension(NetTopologySuite.Geometries.Ordinates)">
  27343. <summary>
  27344. Computes the required dimension based on the given ordinate bit-mask.
  27345. It is assumed that <see cref="F:NetTopologySuite.Geometries.Ordinates.XY"/> is set.
  27346. </summary>
  27347. <param name="ordinateFlags">the ordinate bit-mask.</param>
  27348. <returns>the number of dimensions required to store ordinates for the given bit-mask.</returns>
  27349. </member>
  27350. <member name="M:NetTopologySuite.IO.WKTReader.IsNumberNext(NetTopologySuite.Utilities.TokenStream)">
  27351. <summary>
  27352. </summary>
  27353. <param name="tokens"></param>
  27354. <returns></returns>
  27355. </member>
  27356. <member name="M:NetTopologySuite.IO.WKTReader.IsOpenerNext(NetTopologySuite.Utilities.TokenStream)">
  27357. <summary>
  27358. </summary>
  27359. <param name="tokens"></param>
  27360. <returns></returns>
  27361. </member>
  27362. <member name="M:NetTopologySuite.IO.WKTReader.GetNextNumber(NetTopologySuite.Utilities.TokenStream)">
  27363. <summary>
  27364. Returns the next number in the stream.
  27365. </summary>
  27366. <param name="tokens">
  27367. Tokenizer over a stream of text in Well-known Text
  27368. format. The next token must be a number.
  27369. </param>
  27370. <returns>The next number in the stream.</returns>
  27371. <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not a valid number</exception>
  27372. </member>
  27373. <member name="M:NetTopologySuite.IO.WKTReader.GetNextEmptyOrOpener(NetTopologySuite.Utilities.TokenStream)">
  27374. <summary>
  27375. Returns the next WKTConstants.EMPTY or "(" in the stream as uppercase text.
  27376. </summary>
  27377. <param name="tokens">
  27378. Tokenizer over a stream of text in Well-known Text
  27379. format. The next token must be <see cref="F:NetTopologySuite.IO.WKTConstants.EMPTY"/> or "(".
  27380. </param>
  27381. <returns>
  27382. The next WKTConstants.EMPTY or "(" in the stream as uppercase text.</returns>
  27383. </member>
  27384. <member name="M:NetTopologySuite.IO.WKTReader.GetNextOrdinateFlags(NetTopologySuite.Utilities.TokenStream)">
  27385. <summary>
  27386. Returns the next ordinate flag information in the stream as uppercase text.
  27387. This can be Z, M or ZM.
  27388. </summary>
  27389. <param name="tokens">tokenizer over a stream of text in Well-known Text</param>
  27390. <returns>the next ordinate flags.</returns>
  27391. <exception cref="T:System.IO.IOException">if an I/O error occurs</exception>
  27392. <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not EMPTY or L_PAREN</exception>
  27393. </member>
  27394. <member name="M:NetTopologySuite.IO.WKTReader.LookAheadWord(NetTopologySuite.Utilities.TokenStream)">
  27395. <summary>
  27396. Returns the next word in the stream.
  27397. </summary>
  27398. <param name="tokens">tokenizer over a stream of text in Well-known Text format. The next token must be a word.</param>
  27399. <returns>the next word in the stream as uppercase text</returns>
  27400. <exception cref="T:NetTopologySuite.IO.ParseException">if the next token is not a word</exception>
  27401. <exception cref="T:System.IO.IOException">if an I/O error occurs</exception>
  27402. </member>
  27403. <member name="M:NetTopologySuite.IO.WKTReader.GetNextCloserOrComma(NetTopologySuite.Utilities.TokenStream)">
  27404. <summary>
  27405. Returns the next ")" or "," in the stream.
  27406. </summary>
  27407. <param name="tokens">
  27408. Tokenizer over a stream of text in Well-known Text
  27409. format. The next token must be ")" or ",".
  27410. </param>
  27411. <returns>
  27412. The next ")" or "," in the stream.</returns>
  27413. </member>
  27414. <member name="M:NetTopologySuite.IO.WKTReader.GetNextCloser(NetTopologySuite.Utilities.TokenStream)">
  27415. <summary>
  27416. Returns the next ")" in the stream.
  27417. </summary>
  27418. <param name="tokens">
  27419. Tokenizer over a stream of text in Well-known Text
  27420. format. The next token must be ")".
  27421. </param>
  27422. <returns>
  27423. The next ")" in the stream.</returns>
  27424. </member>
  27425. <member name="M:NetTopologySuite.IO.WKTReader.GetNextWord(NetTopologySuite.Utilities.TokenStream,System.Boolean)">
  27426. <summary>
  27427. Returns the next word in the stream as uppercase text.
  27428. </summary>
  27429. <param name="tokens">
  27430. Tokenizer over a stream of text in Well-known Text
  27431. format. The next token must be a word.
  27432. </param>
  27433. <param name="advance">
  27434. <see langword="true"/> to advance the stream, <see langword="false"/> to just peek.
  27435. </param>
  27436. <returns>The next word in the stream as uppercase text.</returns>
  27437. </member>
  27438. <member name="M:NetTopologySuite.IO.WKTReader.ReadGeometryTaggedText(NetTopologySuite.Utilities.TokenStream)">
  27439. <summary>
  27440. Creates a <c>Geometry</c> using the next token in the stream.
  27441. </summary>
  27442. <param name="tokens">
  27443. Tokenizer over a stream of text in Well-known Text
  27444. format. The next tokens must form a &lt;Geometry Tagged Text.
  27445. </param>
  27446. <returns>A <c>Geometry</c> specified by the next token
  27447. in the stream.</returns>
  27448. </member>
  27449. <member name="M:NetTopologySuite.IO.WKTReader.ReadPointText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27450. <summary>
  27451. Creates a <c>Point</c> using the next token in the stream.
  27452. </summary>
  27453. <param name="tokens">
  27454. Tokenizer over a stream of text in Well-known Text
  27455. format. The next tokens must form a &lt;Point Text.
  27456. </param>
  27457. <param name="factory">The factory to create the geometry</param>
  27458. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27459. <returns>A <c>Point</c> specified by the next token in
  27460. the stream.</returns>
  27461. </member>
  27462. <member name="M:NetTopologySuite.IO.WKTReader.ReadLineStringText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27463. <summary>
  27464. Creates a <c>LineString</c> using the next token in the stream.
  27465. </summary>
  27466. <param name="tokens">
  27467. Tokenizer over a stream of text in Well-known Text
  27468. format. The next tokens must form a &lt;LineString Text.
  27469. </param>
  27470. <param name="factory">The factory to create the geometry</param>
  27471. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27472. <returns>
  27473. A <c>LineString</c> specified by the next
  27474. token in the stream.</returns>
  27475. </member>
  27476. <member name="M:NetTopologySuite.IO.WKTReader.ReadLinearRingText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27477. <summary>
  27478. Creates a <c>LinearRing</c> using the next token in the stream.
  27479. </summary>
  27480. <param name="tokens">
  27481. Tokenizer over a stream of text in Well-known Text
  27482. format. The next tokens must form a &lt;LineString Text.
  27483. </param>
  27484. <param name="factory">The factory to create the geometry</param>
  27485. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27486. <returns>A <c>LinearRing</c> specified by the next
  27487. token in the stream.</returns>
  27488. </member>
  27489. <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiPointText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27490. <summary>
  27491. Creates a <c>MultiPoint</c> using the next token in the stream.
  27492. </summary>
  27493. <param name="tokens">
  27494. Tokenizer over a stream of text in Well-known Text
  27495. format. The next tokens must form a &lt;MultiPoint Text.
  27496. </param>
  27497. <param name="factory">The factory to create the geometry</param>
  27498. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27499. <returns>
  27500. A <c>MultiPoint</c> specified by the next
  27501. token in the stream.</returns>
  27502. </member>
  27503. <member name="M:NetTopologySuite.IO.WKTReader.ReadPolygonText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27504. <summary>
  27505. Creates a <c>Polygon</c> using the next token in the stream.
  27506. </summary>
  27507. <param name="tokens">
  27508. Tokenizer over a stream of text in Well-known Text
  27509. format. The next tokens must form a Polygon Text.
  27510. </param>
  27511. <param name="factory">The factory to create the geometry</param>
  27512. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27513. <returns>
  27514. A <c>Polygon</c> specified by the next token
  27515. in the stream.
  27516. </returns>
  27517. </member>
  27518. <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiLineStringText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27519. <summary>
  27520. Creates a <c>MultiLineString</c> using the next token in the stream.
  27521. </summary>
  27522. <param name="tokens">
  27523. Tokenizer over a stream of text in Well-known Text
  27524. format. The next tokens must form a MultiLineString Text.
  27525. </param>
  27526. <param name="factory">The factory to create the geometry</param>
  27527. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27528. <returns>
  27529. A <c>MultiLineString</c> specified by the
  27530. next token in the stream.</returns>
  27531. </member>
  27532. <member name="M:NetTopologySuite.IO.WKTReader.ReadMultiPolygonText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27533. <summary>
  27534. Creates a <c>MultiPolygon</c> using the next token in the stream.
  27535. </summary>
  27536. <param name="tokens">Tokenizer over a stream of text in Well-known Text
  27537. format. The next tokens must form a MultiPolygon Text.
  27538. </param>
  27539. <param name="factory">The factory to create the geometry</param>
  27540. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27541. <returns>
  27542. A <c>MultiPolygon</c> specified by the next
  27543. token in the stream, or if if the coordinates used to create the
  27544. <c>Polygon</c> shells and holes do not form closed linestrings.</returns>
  27545. </member>
  27546. <member name="M:NetTopologySuite.IO.WKTReader.ReadGeometryCollectionText(NetTopologySuite.Utilities.TokenStream,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.Ordinates)">
  27547. <summary>
  27548. Creates a <c>GeometryCollection</c> using the next token in the
  27549. stream.
  27550. </summary>
  27551. <param name="tokens">
  27552. Tokenizer over a stream of text in Well-known Text
  27553. format. The next tokens must form a &lt;GeometryCollection Text.
  27554. </param>
  27555. <param name="factory">The factory to create the geometry</param>
  27556. <param name="ordinateFlags">A flag indicating the ordinates to expect.</param>
  27557. <returns>
  27558. A <c>GeometryCollection</c> specified by the
  27559. next token in the stream.</returns>
  27560. </member>
  27561. <member name="T:NetTopologySuite.IO.WKTWriter">
  27562. <summary>
  27563. Outputs the textual representation of a <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  27564. The <see cref="T:NetTopologySuite.IO.WKTWriter" /> outputs coordinates rounded to the precision
  27565. model. No more than the maximum number of necessary decimal places will be
  27566. output.
  27567. The Well-known Text format is defined in the <A
  27568. HREF="http://www.opengis.org/techno/specs.htm">OpenGIS Simple Features
  27569. Specification for SQL</A>.
  27570. A non-standard "LINEARRING" tag is used for LinearRings. The WKT spec does
  27571. not define a special tag for LinearRings. The standard tag to use is
  27572. "LINESTRING".
  27573. </summary>
  27574. </member>
  27575. <member name="M:NetTopologySuite.IO.WKTWriter.ToPoint(NetTopologySuite.Geometries.Coordinate)">
  27576. <summary>
  27577. Generates the WKT for a <c>Point</c> specified by a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  27578. </summary>
  27579. <param name="p0">The point coordinate.</param>
  27580. <returns>The WKT</returns>
  27581. </member>
  27582. <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.CoordinateSequence)">
  27583. <summary>
  27584. Generates the WKT for a N-point <c>LineString</c> specified by a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  27585. </summary>
  27586. <param name="seq">The sequence to write.</param>
  27587. <returns>The WKT</returns>
  27588. </member>
  27589. <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.Coordinate[])">
  27590. <summary>
  27591. Generates the WKT for a <tt>LINESTRING</tt> specified by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  27592. </summary>
  27593. <param name="coord">An array of coordinates</param>
  27594. <returns>The WKT</returns>
  27595. </member>
  27596. <member name="M:NetTopologySuite.IO.WKTWriter.ToLineString(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  27597. <summary>
  27598. Generates the WKT for a <c>LineString</c> specified by two <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  27599. </summary>
  27600. <param name="p0">The first coordinate.</param>
  27601. <param name="p1">The second coordinate.</param>
  27602. <returns>The WKT</returns>
  27603. </member>
  27604. <member name="M:NetTopologySuite.IO.WKTWriter.CreateFormatter(NetTopologySuite.Geometries.PrecisionModel)">
  27605. <summary>
  27606. Creates the <c>NumberFormatInfo</c> used to write <c>double</c>s
  27607. with a sufficient number of decimal places.
  27608. </summary>
  27609. <param name="precisionModel">
  27610. The <c>PrecisionModel</c> used to determine
  27611. the number of decimal places to write.
  27612. </param>
  27613. <returns>
  27614. A <c>NumberFormatInfo</c> that write <c>double</c>s
  27615. without scientific notation.
  27616. </returns>
  27617. </member>
  27618. <member name="T:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter">
  27619. <summary>
  27620. A filter implementation to test if a coordinate sequence actually has meaningful values
  27621. for an ordinate bit-pattern
  27622. </summary>
  27623. </member>
  27624. <member name="M:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.#ctor(NetTopologySuite.Geometries.Ordinates,System.Boolean)">
  27625. <summary>
  27626. Initializes a new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter"/> flag.
  27627. </summary>
  27628. <param name="checkOrdinateFlags">
  27629. The index for the ordinates to test.
  27630. </param>
  27631. <param name="alwaysEmitZWithM">
  27632. <see langword="true"/> if <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> implies
  27633. <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/>, <see langword="false"/> otherwise.
  27634. </param>
  27635. </member>
  27636. <member name="M:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence)">
  27637. <inheritdoc />
  27638. </member>
  27639. <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.GeometryChanged">
  27640. <inheritdoc />
  27641. </member>
  27642. <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.Done">
  27643. <inheritdoc />
  27644. </member>
  27645. <member name="P:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter.OutputOrdinates">
  27646. <summary>
  27647. Gets the evaluated ordinate bit-pattern of ordinates with valid values masked by
  27648. <see cref="F:NetTopologySuite.IO.WKTWriter.CheckOrdinatesFilter._checkOrdinateFlags"/>.
  27649. </summary>
  27650. </member>
  27651. <member name="M:NetTopologySuite.IO.WKTWriter.#ctor">
  27652. <summary>
  27653. Creates an instance of this class which is writing at most 2 dimensions.
  27654. </summary>
  27655. </member>
  27656. <member name="M:NetTopologySuite.IO.WKTWriter.#ctor(System.Int32)">
  27657. <summary>
  27658. Creates an instance of this class which is writing at most <paramref name="outputDimension"/> dimensions.
  27659. </summary>
  27660. </member>
  27661. <member name="P:NetTopologySuite.IO.WKTWriter.Formatted">
  27662. <summary>
  27663. Gets/sets whether the output will be formatted
  27664. </summary>
  27665. </member>
  27666. <member name="P:NetTopologySuite.IO.WKTWriter.MaxCoordinatesPerLine">
  27667. <summary>
  27668. Gets/sets the maximum number of coordinates per line written in formatted output.
  27669. </summary>
  27670. <remarks>If the provided coordinate number is &lt; 0, coordinates will be written all on one line.</remarks>
  27671. </member>
  27672. <member name="P:NetTopologySuite.IO.WKTWriter.Tab">
  27673. <summary>Gets/sets the tab size to use for indenting.</summary>
  27674. <exception cref="T:System.ArgumentException">If the size is non-positive</exception>
  27675. </member>
  27676. <member name="P:NetTopologySuite.IO.WKTWriter.OutputOrdinates">
  27677. <summary>
  27678. Gets or sets the <see cref="T:NetTopologySuite.Geometries.Ordinates"/> to be written. Possible members are:
  27679. <list type="bullet">
  27680. <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.X"/></description></item>
  27681. <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/></description></item>
  27682. <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/></description></item>
  27683. <item><description><see cref="F:NetTopologySuite.Geometries.Ordinates.M"/></description></item>
  27684. </list>
  27685. Values of <see cref="F:NetTopologySuite.Geometries.Ordinates.X"/> and <see cref="F:NetTopologySuite.Geometries.Ordinates.Y"/> are always assumed and
  27686. not particularly checked for.
  27687. </summary>
  27688. </member>
  27689. <member name="P:NetTopologySuite.IO.WKTWriter.PrecisionModel">
  27690. <summary>
  27691. Gets or sets a <see cref="P:NetTopologySuite.IO.WKTWriter.PrecisionModel"/> that should be used on the ordinates written.
  27692. <para>
  27693. If none/<see langword="null"/> is assigned, the precision model of the
  27694. <see cref="P:NetTopologySuite.Geometries.Geometry.Factory"/> is used.
  27695. </para>
  27696. <para>
  27697. Note: The precision model is applied to all ordinate values, not just x and y.
  27698. </para>
  27699. </summary>
  27700. </member>
  27701. <member name="M:NetTopologySuite.IO.WKTWriter.ForMicrosoftSqlServer">
  27702. <summary>
  27703. Creates a new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter"/> class suitable for MSSQL's non-
  27704. standard WKT format.
  27705. </summary>
  27706. <returns>
  27707. A new instance of the <see cref="T:NetTopologySuite.IO.WKTWriter"/> class suitable for MSSQL's non-standard
  27708. WKT format.
  27709. </returns>
  27710. </member>
  27711. <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry)">
  27712. <summary>
  27713. Converts a <c>Geometry</c> to its Well-known Text representation.
  27714. </summary>
  27715. <param name="geometry">A <c>Geometry</c> to process.</param>
  27716. <returns>A Geometry Tagged Text string (see the OpenGIS Simple Features Specification).</returns>
  27717. </member>
  27718. <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.Stream)">
  27719. <summary>
  27720. Converts a <c>Geometry</c> to its Well-known Text representation.
  27721. </summary>
  27722. <param name="geometry">A <c>Geometry</c> to process.</param>
  27723. <param name="stream">A <c>Stream</c> to write into</param>
  27724. </member>
  27725. <member name="M:NetTopologySuite.IO.WKTWriter.Write(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
  27726. <summary>
  27727. Converts a <c>Geometry</c> to its Well-known Text representation.
  27728. </summary>
  27729. <param name="geometry">A <c>Geometry</c> to process.</param>
  27730. <param name="writer"></param>
  27731. <returns>A "Geometry Tagged Text" string (see the OpenGIS Simple Features Specification)</returns>
  27732. </member>
  27733. <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry)">
  27734. <summary>
  27735. Same as <c>write</c>, but with newlines and spaces to make the
  27736. well-known text more readable.
  27737. </summary>
  27738. <param name="geometry">A <c>Geometry</c> to process</param>
  27739. <returns>
  27740. A "Geometry Tagged Text" string (see the OpenGIS Simple
  27741. Features Specification), with newlines and spaces.
  27742. </returns>
  27743. </member>
  27744. <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry,System.IO.TextWriter)">
  27745. <summary>
  27746. Same as <c>write</c>, but with newlines and spaces to make the
  27747. well-known text more readable.
  27748. </summary>
  27749. <param name="geometry">A <c>Geometry</c> to process</param>
  27750. <param name="writer"></param>
  27751. <returns>
  27752. A Geometry Tagged Text string (see the OpenGIS Simple
  27753. Features Specification), with newlines and spaces.
  27754. </returns>
  27755. </member>
  27756. <member name="M:NetTopologySuite.IO.WKTWriter.WriteFormatted(NetTopologySuite.Geometries.Geometry,System.Boolean,System.IO.TextWriter,NetTopologySuite.Geometries.PrecisionModel)">
  27757. <summary>
  27758. Converts a <c>Geometry</c> to its Well-known Text representation.
  27759. </summary>
  27760. <param name="geometry">A <c>Geometry</c> to process</param>
  27761. <param name="useFormatting">A flag indicating that the output should be formatted.</param>
  27762. <param name="writer">the output writer to append to.</param>
  27763. <param name="precisionModel">The precision model to use.</param>
  27764. <returns>
  27765. A "Geometry Tagged Text" string (see the OpenGIS Simple
  27766. Features Specification).
  27767. </returns>
  27768. </member>
  27769. <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryTaggedText(NetTopologySuite.Geometries.Geometry,System.Boolean,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27770. <summary>
  27771. Converts a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to &lt;Geometry Tagged Text&gt; format, then appends
  27772. it to the writer.
  27773. </summary>
  27774. <param name="geometry">the <see cref="T:NetTopologySuite.Geometries.Geometry"/> to process.</param>
  27775. <param name="useFormatting">A flag indicating that the output should be formatted.</param>
  27776. <param name="writer">the output writer to append to.</param>
  27777. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27778. </member>
  27779. <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryTaggedText(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27780. <summary>
  27781. Converts a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to &lt;Geometry Tagged Text&gt; format, then appends
  27782. it to the writer.
  27783. </summary>
  27784. <param name="geometry">the <see cref="T:NetTopologySuite.Geometries.Geometry"/> to process.</param>
  27785. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27786. <param name="useFormatting">flag indicating that the output should be formatted.</param>
  27787. <param name="level">The indentation level</param>
  27788. <param name="writer">the output writer to append to.</param>
  27789. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27790. </member>
  27791. <member name="M:NetTopologySuite.IO.WKTWriter.AppendPointTaggedText(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27792. <summary>
  27793. Converts a <c>Coordinate</c> to Point Tagged Text format,
  27794. then appends it to the writer.
  27795. </summary>
  27796. <param name="point">The <c>Point</c> to process.</param>
  27797. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27798. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27799. <param name="level">the indentation level</param>
  27800. <param name="writer">The output writer to append to.</param>
  27801. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27802. </member>
  27803. <member name="M:NetTopologySuite.IO.WKTWriter.AppendLineStringTaggedText(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27804. <summary>
  27805. Converts a <c>LineString</c> to &lt;LineString Tagged Text
  27806. format, then appends it to the writer.
  27807. </summary>
  27808. <param name="lineString">The <c>LineString</c> to process.</param>
  27809. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27810. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27811. <param name="level">the indentation level</param>
  27812. <param name="writer">The output writer to append to.</param>
  27813. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27814. </member>
  27815. <member name="M:NetTopologySuite.IO.WKTWriter.AppendLinearRingTaggedText(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27816. <summary>
  27817. Converts a <c>LinearRing</c> to &lt;LinearRing Tagged Text
  27818. format, then appends it to the writer.
  27819. </summary>
  27820. <param name="linearRing">The <c>LinearRing</c> to process.</param>
  27821. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27822. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27823. <param name="level">the indentation level</param>
  27824. <param name="writer">The output writer to append to.</param>
  27825. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27826. </member>
  27827. <member name="M:NetTopologySuite.IO.WKTWriter.AppendPolygonTaggedText(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27828. <summary>
  27829. Converts a <c>Polygon</c> to Polygon Tagged Text format,
  27830. then appends it to the writer.
  27831. </summary>
  27832. <param name="polygon">The <c>Polygon</c> to process.</param>
  27833. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27834. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27835. <param name="level">the indentation level</param>
  27836. <param name="writer">The output writer to append to.</param>
  27837. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27838. </member>
  27839. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPointTaggedText(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27840. <summary>
  27841. Converts a <c>MultiPoint</c> to &lt;MultiPoint Tagged Text
  27842. format, then appends it to the writer.
  27843. </summary>
  27844. <param name="multipoint">The <c>MultiPoint</c> to process.</param>
  27845. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27846. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27847. <param name="level">the indentation level</param>
  27848. <param name="writer">The output writer to append to.</param>
  27849. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27850. </member>
  27851. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiLineStringTaggedText(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27852. <summary>
  27853. Converts a <c>MultiLineString</c> to MultiLineString Tagged
  27854. Text format, then appends it to the writer.
  27855. </summary>
  27856. <param name="multiLineString">The <c>MultiLineString</c> to process.</param>
  27857. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27858. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27859. <param name="level">the indentation level</param>
  27860. <param name="writer">The output writer to append to.</param>
  27861. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27862. </member>
  27863. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPolygonTaggedText(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27864. <summary>
  27865. Converts a <c>MultiPolygon</c> to MultiPolygon Tagged Text
  27866. format, then appends it to the writer.
  27867. </summary>
  27868. <param name="multiPolygon">The <c>MultiPolygon</c> to process.</param>
  27869. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27870. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27871. <param name="level">the indentation level</param>
  27872. <param name="writer">The output writer to append to.</param>
  27873. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27874. </member>
  27875. <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryCollectionTaggedText(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27876. <summary>
  27877. Converts a <c>GeometryCollection</c> to GeometryCollection
  27878. Tagged Text format, then appends it to the writer.
  27879. </summary>
  27880. <param name="geometryCollection">The <c>GeometryCollection</c> to process.</param>
  27881. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27882. <param name="useFormatting">flag indicating that the output should be formatted</param>
  27883. <param name="level">the indentation level</param>
  27884. <param name="writer">The output writer to append to.</param>
  27885. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27886. </member>
  27887. <member name="M:NetTopologySuite.IO.WKTWriter.AppendCoordinate(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Ordinates,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27888. <summary>
  27889. Appends the i'th coordinate from the sequence to the writer
  27890. <para>
  27891. If the <paramref name="seq"/> has coordinates that are <see cref="M:System.Double.IsNaN(System.Double)">NaN</see>,
  27892. these are not written, even though <see cref="F:NetTopologySuite.IO.WKTWriter._outputDimension"/> suggests this.
  27893. </para>
  27894. </summary>
  27895. <param name="seq">the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to process</param>
  27896. <param name="outputOrdinates">A bit pattern of output ordinates</param>
  27897. <param name="i">the index of the coordinate to write</param>
  27898. <param name="writer">writer the output writer to append to</param>
  27899. <param name="ordinateFormat">The format to use for writing ordinate values</param>
  27900. <exception cref="T:System.IO.IOException"></exception>
  27901. </member>
  27902. <member name="M:NetTopologySuite.IO.WKTWriter.WriteNumber(System.Double,NetTopologySuite.IO.OrdinateFormat)">
  27903. <summary>
  27904. Converts a <see cref="T:System.Double" /> to a <see cref="T:System.String" />.
  27905. </summary>
  27906. <param name="d">The <see cref="T:System.Double" /> to convert.</param>
  27907. <param name="ordinateFormat">A</param>
  27908. <returns>
  27909. The <see cref="T:System.Double" /> as a <see cref="T:System.String" />.
  27910. </returns>
  27911. </member>
  27912. <member name="M:NetTopologySuite.IO.WKTWriter.AppendOrdinateText(NetTopologySuite.Geometries.Ordinates,System.IO.TextWriter)">
  27913. <summary>
  27914. Appends additional ordinate information. This function may
  27915. <list type="bullet">
  27916. <item>
  27917. <description>
  27918. append 'Z' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> value is included.
  27919. </description>
  27920. </item>
  27921. <item>
  27922. <description>
  27923. append 'M' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> value is included.
  27924. </description>
  27925. </item>
  27926. <item>
  27927. <description>
  27928. append 'ZM' if in <paramref name="outputOrdinates"/> the <see cref="F:NetTopologySuite.Geometries.Ordinates.Z"/> and
  27929. <see cref="F:NetTopologySuite.Geometries.Ordinates.M"/> values are included.
  27930. </description>
  27931. </item>
  27932. </list>
  27933. </summary>
  27934. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27935. <param name="writer">the output writer to append to.</param>
  27936. <exception cref="T:System.IO.IOException">if an error occurs while using the writer.</exception>
  27937. </member>
  27938. <member name="M:NetTopologySuite.IO.WKTWriter.AppendSequenceText(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.Boolean,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27939. <summary>
  27940. Appends all members of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to the stream. Each
  27941. <see cref="T:NetTopologySuite.Geometries.Coordinate"/> is separated from another using a colon, the ordinates of a
  27942. <see cref="T:NetTopologySuite.Geometries.Coordinate"/> are separated by a space.
  27943. </summary>
  27944. <param name="seq">the <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to process.</param>
  27945. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27946. <param name="useFormatting">flag indicating that.</param>
  27947. <param name="level">the indentation level.</param>
  27948. <param name="indentFirst">flag indicating that the first <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of the sequence should be indented for better visibility.</param>
  27949. <param name="writer">the output writer to append to.</param>
  27950. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27951. </member>
  27952. <member name="M:NetTopologySuite.IO.WKTWriter.AppendPolygonText(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.Boolean,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27953. <summary>
  27954. Converts a <c>Polygon</c> to Polygon Text format, then
  27955. appends it to the writer.
  27956. </summary>
  27957. <param name="polygon">The <c>Polygon</c> to process.</param>
  27958. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27959. <param name="useFormatting">flag indicating that.</param>
  27960. <param name="level">the indentation level.</param>
  27961. <param name="indentFirst">flag indicating that the first <see cref="T:NetTopologySuite.Geometries.Coordinate"/> of the sequence should be indented for better visibility.</param>
  27962. <param name="writer">the output writer to append to.</param>
  27963. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27964. </member>
  27965. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPointText(NetTopologySuite.Geometries.MultiPoint,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27966. <summary>
  27967. Converts a <c>MultiPoint</c> to &lt;MultiPoint Text format, then
  27968. appends it to the writer.
  27969. </summary>
  27970. <param name="multiPoint">The <c>MultiPoint</c> to process.</param>
  27971. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27972. <param name="useFormatting">flag indicating that.</param>
  27973. <param name="level">the indentation level.</param>
  27974. <param name="writer">the output writer to append to.</param>
  27975. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27976. </member>
  27977. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiLineStringText(NetTopologySuite.Geometries.MultiLineString,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27978. <summary>
  27979. Converts a <c>MultiLineString</c> to &lt;MultiLineString Text
  27980. format, then appends it to the writer.
  27981. </summary>
  27982. <param name="multiLineString">The <c>MultiLineString</c> to process.</param>
  27983. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27984. <param name="useFormatting">flag indicating that.</param>
  27985. <param name="level">the indentation level.</param>
  27986. <param name="writer">the output writer to append to.</param>
  27987. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  27988. </member>
  27989. <member name="M:NetTopologySuite.IO.WKTWriter.AppendMultiPolygonText(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  27990. <summary>
  27991. Converts a <c>MultiPolygon</c> to &lt;MultiPolygon Text format,
  27992. then appends it to the writer.
  27993. </summary>
  27994. <param name="multiPolygon">The <c>MultiPolygon</c> to process.</param>
  27995. <param name="outputOrdinates">A bit-pattern of ordinates to write.</param>
  27996. <param name="useFormatting">flag indicating that.</param>
  27997. <param name="level">the indentation level.</param>
  27998. <param name="writer">the output writer to append to.</param>
  27999. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  28000. </member>
  28001. <member name="M:NetTopologySuite.IO.WKTWriter.AppendGeometryCollectionText(NetTopologySuite.Geometries.GeometryCollection,NetTopologySuite.Geometries.Ordinates,System.Boolean,System.Int32,System.IO.TextWriter,NetTopologySuite.IO.OrdinateFormat)">
  28002. <summary>
  28003. Converts a <c>GeometryCollection</c> to GeometryCollectionText
  28004. format, then appends it to the writer.
  28005. </summary>
  28006. <param name="geometryCollection">The <c>GeometryCollection</c> to process.</param>
  28007. <param name="outputOrdinates"></param>
  28008. <param name="useFormatting">flag indicating that.</param>
  28009. <param name="level">the indentation level.</param>
  28010. <param name="writer">the output writer to append to.</param>
  28011. <param name="ordinateFormat">The format to use for writing ordinate values.</param>
  28012. </member>
  28013. <member name="T:NetTopologySuite.LinearReferencing.ExtractLineByLocation">
  28014. <summary>
  28015. Extracts the subline of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> between
  28016. two <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s on the line.
  28017. </summary>
  28018. </member>
  28019. <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Extract(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
  28020. <summary>
  28021. Computes the subline of a <see cref="T:NetTopologySuite.Geometries.LineString" /> between
  28022. two <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/>s on the line.
  28023. If the start location is after the end location,
  28024. the computed linear geometry has reverse orientation to the input line.
  28025. </summary>
  28026. <param name="line">The line to use as the baseline.</param>
  28027. <param name="start">The start location.</param>
  28028. <param name="end">The end location.</param>
  28029. <returns>The extracted subline.</returns>
  28030. </member>
  28031. <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.#ctor(NetTopologySuite.Geometries.Geometry)">
  28032. <summary>
  28033. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.ExtractLineByLocation"/> class.
  28034. </summary>
  28035. <param name="line"></param>
  28036. </member>
  28037. <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Extract(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
  28038. <summary>
  28039. Extracts a subline of the input.
  28040. If <paramref name="end" /> is minor that <paramref name="start" />,
  28041. the linear geometry computed will be reversed.
  28042. </summary>
  28043. <param name="start">The start location.</param>
  28044. <param name="end">The end location.</param>
  28045. <returns>A linear geometry.</returns>
  28046. </member>
  28047. <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.Reverse(NetTopologySuite.Geometries.Geometry)">
  28048. <summary>
  28049. </summary>
  28050. <param name="linear"></param>
  28051. <returns></returns>
  28052. </member>
  28053. <member name="M:NetTopologySuite.LinearReferencing.ExtractLineByLocation.ComputeLinear(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
  28054. <summary>
  28055. Assumes input is valid
  28056. (e.g. <paramref name="start" /> minor or equals to <paramref name="end" />).
  28057. </summary>
  28058. <param name="start"></param>
  28059. <param name="end"></param>
  28060. <returns></returns>
  28061. </member>
  28062. <member name="T:NetTopologySuite.LinearReferencing.LengthIndexedLine">
  28063. <summary>
  28064. Supports linear referencing along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28065. using the length along the line as the index.
  28066. Negative length values are taken as measured in the reverse direction
  28067. from the end of the geometry.
  28068. Out-of-range index values are handled by clamping
  28069. them to the valid range of values.
  28070. Non-simple lines (i.e. which loop back to cross or touch
  28071. themselves) are supported.
  28072. </summary>
  28073. </member>
  28074. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.#ctor(NetTopologySuite.Geometries.Geometry)">
  28075. <summary>
  28076. Constructs an object which allows a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28077. to be linearly referenced using length as an index.
  28078. </summary>
  28079. <param name="linearGeom">The linear geometry to reference along.</param>
  28080. </member>
  28081. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractPoint(System.Double)">
  28082. <summary>
  28083. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> for the point
  28084. on the line at the given index.
  28085. If the index is out of range the first or last point on the
  28086. line will be returned.
  28087. </summary>
  28088. <remarks>
  28089. The Z-ordinate of the computed point will be interpolated from
  28090. the Z-ordinates of the line segment containing it, if they exist.
  28091. </remarks>
  28092. <param name="index">The index of the desired point.</param>
  28093. <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the given index.</returns>
  28094. </member>
  28095. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractPoint(System.Double,System.Double)">
  28096. <summary>
  28097. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point on the line at the given index, offset by the given distance.
  28098. </summary>
  28099. <remarks>
  28100. If the index is out of range the first or last point on the line will be returned.
  28101. The computed point is offset to the left of the line if the offset distance is
  28102. positive, to the right if negative.
  28103. The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.
  28104. </remarks>
  28105. <param name="index">The index of the desired point</param>
  28106. <param name="offsetDistance">The distance the point is offset from the segment (positive is to the left, negative is to the right)</param>
  28107. <returns>The Coordinate at the given index</returns>
  28108. </member>
  28109. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ExtractLine(System.Double,System.Double)">
  28110. <summary>
  28111. Computes the <see cref="T:NetTopologySuite.Geometries.LineString" /> for the interval
  28112. on the line between the given indices.
  28113. If the <paramref name="endIndex" /> lies before the <paramref name="startIndex" />,
  28114. the computed geometry is reversed.
  28115. </summary>
  28116. <param name="startIndex"></param>
  28117. <param name="endIndex"></param>
  28118. <returns></returns>
  28119. </member>
  28120. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.LocationOf(System.Double)">
  28121. <summary>
  28122. </summary>
  28123. <param name="index"></param>
  28124. <returns></returns>
  28125. </member>
  28126. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndexOf(NetTopologySuite.Geometries.Coordinate)">
  28127. <summary>
  28128. Computes the minimum index for a point on the line.
  28129. If the line is not simple (i.e. loops back on itself)
  28130. a single point may have more than one possible index.
  28131. In this case, the smallest index is returned.
  28132. The supplied point does not necessarily have to lie precisely
  28133. on the line, but if it is far from the line the accuracy and
  28134. performance of this function is not guaranteed.
  28135. Use <see cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/> to compute a guaranteed result for points
  28136. which may be far from the line.
  28137. </summary>
  28138. <param name="pt">A point on the line.</param>
  28139. <returns>The minimum index of the point.</returns>
  28140. <seealso cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
  28141. </member>
  28142. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,System.Double)">
  28143. <summary>
  28144. Finds the index for a point on the line
  28145. which is greater than the given index.
  28146. If no such index exists, returns <paramref name="minIndex" />.
  28147. This method can be used to determine all indexes for
  28148. a point which occurs more than once on a non-simple line.
  28149. It can also be used to disambiguate cases where the given point lies
  28150. slightly off the line and is equidistant from two different
  28151. points on the line.
  28152. The supplied point does not necessarily have to lie precisely
  28153. on the line, but if it is far from the line the accuracy and
  28154. performance of this function is not guaranteed.
  28155. Use <see cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)" /> to compute a guaranteed result for points
  28156. which may be far from the line.
  28157. </summary>
  28158. <param name="pt">A point on the line.</param>
  28159. <param name="minIndex">The value the returned index must be greater than.</param>
  28160. <returns>The index of the point greater than the given minimum index.</returns>
  28161. <seealso cref="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
  28162. </member>
  28163. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
  28164. <summary>
  28165. Computes the indices for a subline of the line.
  28166. (The subline must conform to the line; that is,
  28167. all vertices in the subline (except possibly the first and last)
  28168. must be vertices of the line and occur in the same order).
  28169. </summary>
  28170. <param name="subLine">A subLine of the line.</param>
  28171. <returns>A pair of indices for the start and end of the subline..</returns>
  28172. </member>
  28173. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)">
  28174. <summary>
  28175. Computes the index for the closest point on the line to the given point.
  28176. If more than one point has the closest distance the first one along the line is returned.
  28177. (The point does not necessarily have to lie precisely on the line.)
  28178. </summary>
  28179. <param name="pt"></param>
  28180. <returns></returns>
  28181. </member>
  28182. <member name="P:NetTopologySuite.LinearReferencing.LengthIndexedLine.StartIndex">
  28183. <summary>
  28184. Returns the index of the start of the line.
  28185. </summary>
  28186. </member>
  28187. <member name="P:NetTopologySuite.LinearReferencing.LengthIndexedLine.EndIndex">
  28188. <summary>
  28189. Returns the index of the end of the line.
  28190. </summary>
  28191. </member>
  28192. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.IsValidIndex(System.Double)">
  28193. <summary>
  28194. Tests whether an index is in the valid index range for the line.
  28195. </summary>
  28196. <param name="index">The index to test.</param>
  28197. <returns><c>true</c> if the index is in the valid range.</returns>
  28198. </member>
  28199. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexedLine.ClampIndex(System.Double)">
  28200. <summary>
  28201. Computes a valid index for this line
  28202. by clamping the given index to the valid range of index values
  28203. </summary>
  28204. <returns>A valid index value</returns>
  28205. </member>
  28206. <member name="T:NetTopologySuite.LinearReferencing.LengthIndexOfPoint">
  28207. <summary>
  28208. </summary>
  28209. </member>
  28210. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
  28211. <summary>
  28212. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LengthIndexOfPoint"/> class.
  28213. </summary>
  28214. <param name="linearGeom">A linear geometry.</param>
  28215. </member>
  28216. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Coordinate)">
  28217. <summary>
  28218. Find the nearest location along a linear <see cref="T:NetTopologySuite.Geometries.Geometry"/> to a given point.
  28219. </summary>
  28220. <param name="inputPt">The coordinate to locate.</param>
  28221. <returns>The location of the nearest point.</returns>
  28222. </member>
  28223. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,System.Double)">
  28224. <summary>
  28225. Finds the nearest index along the linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28226. to a given <see cref="T:NetTopologySuite.Geometries.Coordinate"/> after the specified minimum index.
  28227. If possible the location returned will be strictly
  28228. greater than the <paramref name="minIndex" />.
  28229. If this is not possible, the value returned
  28230. will equal <paramref name="minIndex" />.
  28231. (An example where this is not possible is when
  28232. <paramref name="minIndex" /> = [end of line] ).
  28233. </summary>
  28234. <param name="inputPt">The coordinate to locate.</param>
  28235. <param name="minIndex">The minimum location for the point location.</param>
  28236. <returns>The location of the nearest point.</returns>
  28237. </member>
  28238. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.IndexOfFromStart(NetTopologySuite.Geometries.Coordinate,System.Double)">
  28239. <summary>
  28240. </summary>
  28241. <param name="inputPt"></param>
  28242. <param name="minIndex"></param>
  28243. <returns></returns>
  28244. </member>
  28245. <member name="M:NetTopologySuite.LinearReferencing.LengthIndexOfPoint.SegmentNearestMeasure(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Coordinate,System.Double)">
  28246. <summary>
  28247. </summary>
  28248. <param name="seg"></param>
  28249. <param name="inputPt"></param>
  28250. <param name="segmentStartMeasure"></param>
  28251. <returns></returns>
  28252. </member>
  28253. <member name="T:NetTopologySuite.LinearReferencing.LengthLocationMap">
  28254. <summary>
  28255. Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for a given length
  28256. along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28257. Negative lengths are measured in reverse from end of the linear geometry.
  28258. Out-of-range values are clamped.
  28259. </summary>
  28260. </member>
  28261. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(NetTopologySuite.Geometries.Geometry,System.Double)">
  28262. <summary>
  28263. Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for a
  28264. given length along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28265. </summary>
  28266. <param name="linearGeom">The linear geometry to use.</param>
  28267. <param name="length">The length index of the location.</param>
  28268. <returns>The <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> for the length.</returns>
  28269. </member>
  28270. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
  28271. <summary>
  28272. Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> for a
  28273. given length along a linear <see cref="T:NetTopologySuite.Geometries.Geometry"/>,
  28274. with control over how the location
  28275. is resolved at component endpoints.
  28276. </summary>
  28277. <param name="linearGeom">The linear geometry to use</param>
  28278. <param name="length">The length index of the location</param>
  28279. <param name="resolveLower">If true lengths are resolved to the lowest possible index</param>
  28280. </member>
  28281. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLength(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation)">
  28282. <summary>
  28283. Computes the length for a given <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />
  28284. on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28285. </summary>
  28286. <param name="linearGeom">The linear geometry to use.</param>
  28287. <param name="loc">The <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> index of the location.</param>
  28288. <returns>The length for the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
  28289. </member>
  28290. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.#ctor(NetTopologySuite.Geometries.Geometry)">
  28291. <summary>
  28292. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LengthLocationMap"/> class.
  28293. </summary>
  28294. <param name="linearGeom">A linear geometry.</param>
  28295. </member>
  28296. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(System.Double)">
  28297. <summary>
  28298. Compute the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> corresponding to a length.
  28299. Negative lengths are measured in reverse from end of the linear geometry.
  28300. Out-of-range values are clamped.
  28301. Ambiguous indexes are resolved to the lowest possible location value.
  28302. </summary>
  28303. <param name="length">The length index.</param>
  28304. <returns>The corresponding <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
  28305. </member>
  28306. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocation(System.Double,System.Boolean)">
  28307. <summary>
  28308. Compute the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> corresponding to a length.
  28309. Negative lengths are measured in reverse from end of the linear geometry.
  28310. Out-of-range values are clamped.
  28311. Ambiguous indexes are resolved to the lowest or highest possible location value,
  28312. depending on the value of <tt>resolveLower</tt>
  28313. </summary>
  28314. <param name="length">The length index</param>
  28315. <param name="resolveLower"></param>
  28316. <returns>The corresponding <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.</returns>
  28317. </member>
  28318. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLocationForward(System.Double)">
  28319. <summary>
  28320. </summary>
  28321. <param name="length"></param>
  28322. <returns></returns>
  28323. </member>
  28324. <member name="M:NetTopologySuite.LinearReferencing.LengthLocationMap.GetLength(NetTopologySuite.LinearReferencing.LinearLocation)">
  28325. <summary>
  28326. </summary>
  28327. <param name="loc"></param>
  28328. <returns></returns>
  28329. </member>
  28330. <member name="T:NetTopologySuite.LinearReferencing.LinearGeometryBuilder">
  28331. <summary>
  28332. Builds a linear geometry (<see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />)
  28333. incrementally (point-by-point).
  28334. </summary>
  28335. </member>
  28336. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  28337. <summary>
  28338. Creates an instance of this class.
  28339. </summary>
  28340. <param name="geomFact">The geometry factory to use.</param>
  28341. </member>
  28342. <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.FixInvalidLines">
  28343. <summary>
  28344. Allows invalid lines to be fixed rather than causing Exceptions.
  28345. An invalid line is one which has only one unique point.
  28346. </summary>
  28347. </member>
  28348. <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.IgnoreInvalidLines">
  28349. <summary>
  28350. Allows invalid lines to be ignored rather than causing Exceptions.
  28351. An invalid line is one which has only one unique point.
  28352. </summary>
  28353. </member>
  28354. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.Add(NetTopologySuite.Geometries.Coordinate)">
  28355. <summary>
  28356. Adds a point to the current line.
  28357. </summary>
  28358. <param name="pt">The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to add.</param>
  28359. </member>
  28360. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.Add(NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  28361. <summary>
  28362. Adds a point to the current line.
  28363. </summary>
  28364. <param name="pt">The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> to add.</param>
  28365. <param name="allowRepeatedPoints">If <c>true</c>, allows the insertions of repeated points.</param>
  28366. </member>
  28367. <member name="P:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.LastCoordinate">
  28368. <summary>
  28369. </summary>
  28370. </member>
  28371. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.EndLine">
  28372. <summary>
  28373. Terminate the current <see cref="T:NetTopologySuite.Geometries.LineString" />.
  28374. </summary>
  28375. </member>
  28376. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.ValidCoordinateSequence(NetTopologySuite.Geometries.Coordinate[])">
  28377. <summary>
  28378. </summary>
  28379. <param name="pts"></param>
  28380. <returns></returns>
  28381. </member>
  28382. <member name="M:NetTopologySuite.LinearReferencing.LinearGeometryBuilder.GetGeometry">
  28383. <summary>
  28384. Builds and returns the <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28385. </summary>
  28386. <returns></returns>
  28387. </member>
  28388. <member name="T:NetTopologySuite.LinearReferencing.LinearIterator">
  28389. <summary>
  28390. An iterator over the components and coordinates of a linear geometry
  28391. (<see cref="T:NetTopologySuite.Geometries.LineString" />s and <see cref="T:NetTopologySuite.Geometries.MultiLineString" />s.
  28392. </summary>
  28393. </member>
  28394. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.SegmentEndVertexIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
  28395. <summary>
  28396. </summary>
  28397. <param name="loc"></param>
  28398. <returns></returns>
  28399. </member>
  28400. <member name="F:NetTopologySuite.LinearReferencing.LinearIterator._currentLine">
  28401. <summary>
  28402. Invariant: currentLine &lt;&gt; null if the iterator is pointing at a valid coordinate
  28403. </summary>
  28404. </member>
  28405. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry)">
  28406. <summary>
  28407. Creates an iterator initialized to the start of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28408. </summary>
  28409. <param name="linearGeom">The linear geometry to iterate over.</param>
  28410. <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
  28411. </member>
  28412. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.LinearReferencing.LinearLocation)">
  28413. <summary>
  28414. Creates an iterator starting at a <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28415. </summary>
  28416. <param name="linearGeom">The linear geometry to iterate over.</param>
  28417. <param name="start">The location to start at.</param>
  28418. <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
  28419. </member>
  28420. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.#ctor(NetTopologySuite.Geometries.Geometry,System.Int32,System.Int32)">
  28421. <summary>
  28422. Creates an iterator starting at
  28423. a component and vertex in a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28424. </summary>
  28425. <param name="linearGeom">The linear geometry to iterate over.</param>
  28426. <param name="componentIndex">The component to start at.</param>
  28427. <param name="vertexIndex">The vertex to start at.</param>
  28428. <exception cref="T:System.ArgumentException"> if <paramref name="linearGeom"/> is not <see cref="T:NetTopologySuite.Geometries.ILineal"/></exception>
  28429. </member>
  28430. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.LoadCurrentLine">
  28431. <summary>
  28432. </summary>
  28433. </member>
  28434. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.HasNext">
  28435. <summary>
  28436. Tests whether there are any vertices left to iterator over.
  28437. Specifically, <c>HasNext()</c> returns <tt>true</tt> if the
  28438. current state of the iterator represents a valid location
  28439. on the linear geometry.
  28440. </summary>
  28441. <returns><c>true</c> if there are more vertices to scan.</returns>
  28442. </member>
  28443. <member name="M:NetTopologySuite.LinearReferencing.LinearIterator.Next">
  28444. <summary>
  28445. Jump to the next element of the iteration.
  28446. </summary>
  28447. </member>
  28448. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.IsEndOfLine">
  28449. <summary>
  28450. Checks whether the iterator cursor is pointing to the
  28451. endpoint of a component <see cref="T:NetTopologySuite.Geometries.LineString"/>.
  28452. </summary>
  28453. </member>
  28454. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.ComponentIndex">
  28455. <summary>
  28456. The component index of the vertex the iterator is currently at.
  28457. </summary>
  28458. </member>
  28459. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.VertexIndex">
  28460. <summary>
  28461. The vertex index of the vertex the iterator is currently at.
  28462. </summary>
  28463. </member>
  28464. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.Line">
  28465. <summary>
  28466. Gets the <see cref="T:NetTopologySuite.Geometries.LineString" /> component the iterator is current at.
  28467. </summary>
  28468. </member>
  28469. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.SegmentStart">
  28470. <summary>
  28471. Gets the first <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of the current segment
  28472. (the coordinate of the current vertex).
  28473. </summary>
  28474. </member>
  28475. <member name="P:NetTopologySuite.LinearReferencing.LinearIterator.SegmentEnd">
  28476. <summary>
  28477. Gets the second <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of the current segment
  28478. (the coordinate of the next vertex).
  28479. If the iterator is at the end of a line, <c>null</c> is returned.
  28480. </summary>
  28481. </member>
  28482. <member name="T:NetTopologySuite.LinearReferencing.LinearLocation">
  28483. <summary>
  28484. Represents a location along a <see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />.<br/>
  28485. The referenced geometry is not maintained within this location,
  28486. but must be provided for operations which require it.
  28487. Various methods are provided to manipulate the location value
  28488. and query the geometry it references.
  28489. </summary>
  28490. </member>
  28491. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetEndLocation(NetTopologySuite.Geometries.Geometry)">
  28492. <summary>
  28493. Gets a location which refers to the end of a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28494. </summary>
  28495. <param name="linear">The linear geometry.</param>
  28496. <returns>A new <c>LinearLocation</c>.</returns>
  28497. </member>
  28498. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.PointAlongSegmentByFraction(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  28499. <summary>
  28500. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> of a point a given fraction
  28501. along the line segment <c>(p0, p1)</c>.
  28502. </summary>
  28503. <remarks>
  28504. <para>
  28505. If the fraction is greater than 1.0 the last
  28506. point of the segment is returned.</para>
  28507. <para>If the fraction is less than or equal to 0.0 the first point
  28508. of the segment is returned.</para>
  28509. <para>
  28510. The Z ordinate is interpolated from the Z-ordinates of the given points,
  28511. if they are specified.</para>
  28512. </remarks>
  28513. <param name="p0">The first point of the line segment.</param>
  28514. <param name="p1">The last point of the line segment.</param>
  28515. <param name="fraction">The length to the desired point.</param>
  28516. <returns></returns>
  28517. </member>
  28518. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor">
  28519. <summary>
  28520. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
  28521. creates a location referring to the start of a linear geometry.
  28522. </summary>
  28523. </member>
  28524. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Double)">
  28525. <summary>
  28526. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
  28527. creates a location referring to the start of a linear geometry.
  28528. </summary>
  28529. <param name="segmentIndex">Index of the segment.</param>
  28530. <param name="segmentFraction">The segment fraction.</param>
  28531. </member>
  28532. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Int32,System.Double)">
  28533. <summary>
  28534. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
  28535. creates a location referring to the start of a linear geometry.
  28536. </summary>
  28537. <param name="componentIndex">Index of the component.</param>
  28538. <param name="segmentIndex">Index of the segment.</param>
  28539. <param name="segmentFraction">The segment fraction.</param>
  28540. </member>
  28541. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(System.Int32,System.Int32,System.Double,System.Boolean)">
  28542. <summary>
  28543. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation"/> class:
  28544. creates a location referring to the start of a linear geometry.
  28545. </summary>
  28546. <param name="componentIndex">Index of the component.</param>
  28547. <param name="segmentIndex">Index of the segment.</param>
  28548. <param name="segmentFraction">The segment fraction.</param>
  28549. <param name="normalize">If <c>true</c>, ensures the individual values are locally valid.</param>
  28550. </member>
  28551. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.#ctor(NetTopologySuite.LinearReferencing.LinearLocation)">
  28552. <summary>
  28553. Creates a new location equal to a given one.
  28554. </summary>
  28555. <param name="loc">A linear location</param>
  28556. </member>
  28557. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.Normalize">
  28558. <summary>
  28559. Ensures the individual values are locally valid.
  28560. Does not ensure that the indexes are valid for
  28561. a particular linear geometry.
  28562. </summary>
  28563. </member>
  28564. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.Clamp(NetTopologySuite.Geometries.Geometry)">
  28565. <summary>
  28566. Ensures the indexes are valid for a given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28567. </summary>
  28568. <param name="linear">A linear geometry.</param>
  28569. </member>
  28570. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.SnapToVertex(NetTopologySuite.Geometries.Geometry,System.Double)">
  28571. <summary>
  28572. Snaps the value of this location to
  28573. the nearest vertex on the given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />,
  28574. if the vertex is closer than <paramref name="minDistance" />.
  28575. </summary>
  28576. <param name="linearGeom">A linear geometry.</param>
  28577. <param name="minDistance">The minimum allowable distance to a vertex.</param>
  28578. </member>
  28579. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetSegmentLength(NetTopologySuite.Geometries.Geometry)">
  28580. <summary>
  28581. Gets the length of the segment in the given
  28582. Geometry containing this location.
  28583. </summary>
  28584. <param name="linearGeom">A linear geometry.</param>
  28585. <returns>The length of the segment.</returns>
  28586. </member>
  28587. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.SetToEnd(NetTopologySuite.Geometries.Geometry)">
  28588. <summary>
  28589. Sets the value of this location to
  28590. refer to the end of a linear geometry.
  28591. </summary>
  28592. <param name="linear">The linear geometry to use to set the end.</param>
  28593. </member>
  28594. <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.ComponentIndex">
  28595. <summary>
  28596. Gets the component index for this location.
  28597. </summary>
  28598. </member>
  28599. <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.SegmentIndex">
  28600. <summary>
  28601. Gets the segment index for this location.
  28602. </summary>
  28603. </member>
  28604. <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.SegmentFraction">
  28605. <summary>
  28606. Gets the segment fraction for this location.
  28607. </summary>
  28608. </member>
  28609. <member name="P:NetTopologySuite.LinearReferencing.LinearLocation.IsVertex">
  28610. <summary>
  28611. Tests whether this location refers to a vertex:
  28612. returns <c>true</c> if the location is a vertex.
  28613. </summary>
  28614. </member>
  28615. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetCoordinate(NetTopologySuite.Geometries.Geometry)">
  28616. <summary>
  28617. Gets the <see cref="T:NetTopologySuite.Geometries.Coordinate" /> along the
  28618. given linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> which is
  28619. referenced by this location.
  28620. </summary>
  28621. <param name="linearGeom">A linear geometry.</param>
  28622. <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the location.</returns>
  28623. </member>
  28624. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.GetSegment(NetTopologySuite.Geometries.Geometry)">
  28625. <summary>
  28626. Gets a <see cref="T:NetTopologySuite.Geometries.LineSegment"/> representing the segment of the given linear <see cref="T:NetTopologySuite.Geometries.Geometry"/> which contains this location.
  28627. </summary>
  28628. <param name="linearGeom">A linear geometry</param>
  28629. <returns>the <c>LineSegment</c> containing the location</returns>
  28630. </member>
  28631. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsValid(NetTopologySuite.Geometries.Geometry)">
  28632. <summary>
  28633. Tests whether this location refers to a valid
  28634. location on the given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28635. </summary>
  28636. <param name="linearGeom">A linear geometry.</param>
  28637. <returns><c>true</c> if this location is valid.</returns>
  28638. </member>
  28639. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareTo(System.Object)">
  28640. <summary>
  28641. Compares the current instance with another object of the same type.
  28642. </summary>
  28643. <param name="obj">
  28644. The <c>LineStringLocation</c> with which this
  28645. <c>Coordinate</c> is being compared.
  28646. </param>
  28647. <returns>
  28648. A negative integer, zero, or a positive integer as this
  28649. <c>LineStringLocation</c> is less than, equal to,
  28650. or greater than the specified <c>LineStringLocation</c>.
  28651. </returns>
  28652. <exception cref="T:System.ArgumentException">
  28653. <paramref name="obj" /> is not the same type as this instance.
  28654. </exception>
  28655. </member>
  28656. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareTo(NetTopologySuite.LinearReferencing.LinearLocation)">
  28657. <summary>
  28658. Compares the current instance with another object of the same type.
  28659. </summary>
  28660. <param name="other">
  28661. The <c>LineStringLocation</c> with which this
  28662. <c>Coordinate</c> is being compared.
  28663. </param>
  28664. <returns>
  28665. A negative integer, zero, or a positive integer as this
  28666. <c>LineStringLocation</c> is less than, equal to,
  28667. or greater than the specified <c>LineStringLocation</c>.
  28668. </returns>
  28669. </member>
  28670. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareLocationValues(System.Int32,System.Int32,System.Double)">
  28671. <summary>
  28672. Compares this object with the specified index values for order.
  28673. </summary>
  28674. <param name="componentIndex1">The component index.</param>
  28675. <param name="segmentIndex1">The segment index.</param>
  28676. <param name="segmentFraction1">The segment fraction.</param>
  28677. <returns>
  28678. A negative integer, zero, or a positive integer as this <c>LineStringLocation</c>
  28679. is less than, equal to, or greater than the specified locationValues.
  28680. </returns>
  28681. </member>
  28682. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.CompareLocationValues(System.Int32,System.Int32,System.Double,System.Int32,System.Int32,System.Double)">
  28683. <summary>
  28684. Compares two sets of location values for order.
  28685. </summary>
  28686. <param name="componentIndex0">The first component index.</param>
  28687. <param name="segmentIndex0">The first segment index.</param>
  28688. <param name="segmentFraction0">The first segment fraction.</param>
  28689. <param name="componentIndex1">The second component index.</param>
  28690. <param name="segmentIndex1">The second segment index.</param>
  28691. <param name="segmentFraction1">The second segment fraction.</param>
  28692. <returns>
  28693. A negative integer, zero, or a positive integer
  28694. as the first set of location values is less than, equal to,
  28695. or greater than the second set of locationValues.
  28696. </returns>
  28697. </member>
  28698. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsOnSameSegment(NetTopologySuite.LinearReferencing.LinearLocation)">
  28699. <summary>
  28700. Tests whether two locations are on the same segment in the parent <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  28701. </summary>
  28702. <param name="loc">A location on the same geometry</param>
  28703. <returns><c>true</c> if the locations are on the same segment of the parent geometry</returns>
  28704. </member>
  28705. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.IsEndpoint(NetTopologySuite.Geometries.Geometry)">
  28706. <summary>
  28707. Tests whether this location is an endpoint of
  28708. the linear component it refers to.
  28709. </summary>
  28710. <param name="linearGeom">The linear geometry referenced by this location</param>
  28711. <returns>True if the location is a component endpoint</returns>
  28712. </member>
  28713. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.ToLowest(NetTopologySuite.Geometries.Geometry)">
  28714. <summary>
  28715. Converts a linear location to the lowest equivalent location index.
  28716. The lowest index has the lowest possible component and segment indices.
  28717. Specifically:
  28718. * if the location point is an endpoint, a location value is returned as (nseg-1, 1.0)
  28719. * if the location point is ambiguous (i.e. an endpoint and a startpoint), the lowest endpoint location is returned
  28720. If the location index is already the lowest possible value, the original location is returned.
  28721. </summary>
  28722. <param name="linearGeom">The linear geometry referenced by this location.</param>
  28723. <returns>The lowest equivalent location.</returns>
  28724. </member>
  28725. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.ToString">
  28726. <inheritdoc cref="M:System.Object.ToString"/>
  28727. </member>
  28728. <member name="M:NetTopologySuite.LinearReferencing.LinearLocation.NumSegments(NetTopologySuite.Geometries.LineString)">
  28729. <summary>
  28730. Gets the count of the number of line segments
  28731. in a <see cref="T:NetTopologySuite.Geometries.LineString"/>.
  28732. This is one less than the number of coordinates.
  28733. </summary>
  28734. <param name="line">A LineString</param>
  28735. <returns>The number of segments</returns>
  28736. </member>
  28737. <member name="T:NetTopologySuite.LinearReferencing.LocationIndexedLine">
  28738. <summary>
  28739. Supports linear referencing along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28740. using <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s as the index.
  28741. </summary>
  28742. </member>
  28743. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.#ctor(NetTopologySuite.Geometries.Geometry)">
  28744. <summary>
  28745. Constructs an object which allows linear referencing along
  28746. a given linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28747. </summary>
  28748. <param name="linearGeom">The linear geometry to reference alo</param>
  28749. </member>
  28750. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(NetTopologySuite.LinearReferencing.LinearLocation)">
  28751. <summary>
  28752. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate" />for the point on the line at the given index.
  28753. If the <paramref name="index" /> is out of range,
  28754. the first or last point on the line will be returned.
  28755. </summary>
  28756. <remarks>
  28757. The Z-ordinate of the computed point will be interpolated from
  28758. the Z-ordinates of the line segment containing it, if they exist.
  28759. </remarks>
  28760. <param name="index">The index of the desired point.</param>
  28761. <returns>The <see cref="T:NetTopologySuite.Geometries.Coordinate" /> at the given index.</returns>
  28762. </member>
  28763. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(NetTopologySuite.LinearReferencing.LinearLocation,System.Double)">
  28764. <summary>
  28765. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point
  28766. on the line at the given index, offset by the given distance.
  28767. If the index is out of range the first or last point on the
  28768. line will be returned.<para/>
  28769. The computed point is offset to the left of the line if the offset distance is
  28770. positive, to the right if negative.<para/>
  28771. The Z-ordinate of the computed point will be interpolated from
  28772. the Z-ordinates of the line segment containing it, if they exist.
  28773. </summary>
  28774. <param name="index">The index of the desired point</param>
  28775. <param name="offsetDistance">The distance the point is offset from the segment
  28776. (positive is to the left, negative is to the right)</param>
  28777. <returns>The Coordinate at the given index</returns>
  28778. </member>
  28779. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractPoint(System.Double,System.Double)">
  28780. <summary>
  28781. Computes the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> for the point on the line at the given index, offset by the given distance.
  28782. </summary>
  28783. <remarks>
  28784. If the index is out of range the first or last point on the line will be returned.
  28785. The computed point is offset to the left of the line if the offset distance is
  28786. positive, to the right if negative.
  28787. The Z-ordinate of the computed point will be interpolated from the Z-ordinates of the line segment containing it, if they exist.
  28788. </remarks>
  28789. <param name="index">The index of the desired point</param>
  28790. <param name="offsetDistance">The distance the point is offset from the segment (positive is to the left, negative is to the right)</param>
  28791. <returns>The Coordinate at the given index</returns>
  28792. </member>
  28793. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ExtractLine(NetTopologySuite.LinearReferencing.LinearLocation,NetTopologySuite.LinearReferencing.LinearLocation)">
  28794. <summary>
  28795. Computes the <see cref="T:NetTopologySuite.Geometries.LineString" /> for the interval
  28796. on the line between the given indices.
  28797. If the start location is after the end location,
  28798. the computed linear geometry has reverse orientation to the input line.
  28799. </summary>
  28800. <param name="startIndex">The index of the start of the interval.</param>
  28801. <param name="endIndex">The index of the end of the interval.</param>
  28802. <returns>The linear interval between the indices.</returns>
  28803. </member>
  28804. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndexOf(NetTopologySuite.Geometries.Coordinate)">
  28805. <summary>
  28806. Computes the index for a given point on the line.
  28807. The supplied point does not necessarily have to lie precisely
  28808. on the line, but if it is far from the line the accuracy and
  28809. performance of this function is not guaranteed.
  28810. Use <see cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)" /> to compute a guaranteed result for points
  28811. which may be far from the line.
  28812. </summary>
  28813. <param name="pt">A point on the line.</param>
  28814. <returns>The index of the point.</returns>
  28815. <seealso cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
  28816. </member>
  28817. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
  28818. <summary>
  28819. Computes the indices for a subline of the line.
  28820. (The subline must conform to the line; that is,
  28821. all vertices in the subline (except possibly the first and last)
  28822. must be vertices of the line and occur in the same order).
  28823. </summary>
  28824. <param name="subLine">A subLine of the line.</param>
  28825. <returns>A pair of indices for the start and end of the subline.</returns>
  28826. </member>
  28827. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.LinearReferencing.LinearLocation)">
  28828. <summary>
  28829. Finds the index for a point on the line which is greater than the given index.
  28830. If no such index exists, returns <paramref name="minIndex" />.
  28831. </summary>
  28832. <remarks>
  28833. <para>
  28834. This method can be used to determine all indexes for
  28835. a point which occurs more than once on a non-simple line.
  28836. It can also be used to disambiguate cases where the given point lies
  28837. slightly off the line and is equidistant from two different
  28838. points on the line.
  28839. </para>
  28840. <para>
  28841. The supplied point does not <i>necessarily</i> have to lie precisely
  28842. on the line, but if it is far from the line the accuracy and
  28843. performance of this function is not guaranteed.
  28844. Use <see cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/> to compute a guaranteed result for points
  28845. which may be far from the line.
  28846. </para>
  28847. </remarks>
  28848. <param name="pt">A point on the line</param>
  28849. <param name="minIndex">The value the returned index must be greater than</param>
  28850. <returns>The index of the point greater than the given minimum index</returns>
  28851. <seealso cref="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)"/>
  28852. </member>
  28853. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.Project(NetTopologySuite.Geometries.Coordinate)">
  28854. <summary>
  28855. Computes the index for the closest point on the line to the given point.
  28856. If more than one point has the closest distance the first one along the line is returned.
  28857. (The point does not necessarily have to lie precisely on the line.)
  28858. </summary>
  28859. <param name="pt">A point on the line.</param>
  28860. <returns>The index of the point.</returns>
  28861. </member>
  28862. <member name="P:NetTopologySuite.LinearReferencing.LocationIndexedLine.StartIndex">
  28863. <summary>
  28864. Returns the index of the start of the line.
  28865. </summary>
  28866. </member>
  28867. <member name="P:NetTopologySuite.LinearReferencing.LocationIndexedLine.EndIndex">
  28868. <summary>
  28869. Returns the index of the end of the line.
  28870. </summary>
  28871. </member>
  28872. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.IsValidIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
  28873. <summary>
  28874. Tests whether an index is in the valid index range for the line.
  28875. </summary>
  28876. <param name="index">The index to test.</param>
  28877. <returns><c>true</c> if the index is in the valid range.</returns>
  28878. </member>
  28879. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexedLine.ClampIndex(NetTopologySuite.LinearReferencing.LinearLocation)">
  28880. <summary>
  28881. Computes a valid index for this line by clamping
  28882. the given index to the valid range of index values.
  28883. </summary>
  28884. <param name="index"></param>
  28885. <returns>A valid index value.</returns>
  28886. </member>
  28887. <member name="T:NetTopologySuite.LinearReferencing.LocationIndexOfLine">
  28888. <summary>
  28889. Determines the location of a subline along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  28890. The location is reported as a pair of <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />s.
  28891. NOTE: Currently this algorithm is not guaranteed to
  28892. return the correct substring in some situations where
  28893. an endpoint of the test line occurs more than once in the input line.
  28894. (However, the common case of a ring is always handled correctly).
  28895. </summary>
  28896. </member>
  28897. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.IndicesOf(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  28898. <summary>
  28899. </summary>
  28900. <param name="linearGeom"></param>
  28901. <param name="subLine"></param>
  28902. <returns></returns>
  28903. </member>
  28904. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.#ctor(NetTopologySuite.Geometries.Geometry)">
  28905. <summary>
  28906. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LocationIndexOfLine"/> class.
  28907. </summary>
  28908. <param name="linearGeom">The linear geom.</param>
  28909. </member>
  28910. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfLine.IndicesOf(NetTopologySuite.Geometries.Geometry)">
  28911. <summary>
  28912. </summary>
  28913. <param name="subLine"></param>
  28914. <returns></returns>
  28915. </member>
  28916. <member name="T:NetTopologySuite.LinearReferencing.LocationIndexOfPoint">
  28917. <summary>
  28918. Computes the <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> of the point
  28919. on a linear <see cref="T:NetTopologySuite.Geometries.Geometry" />nearest a given <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  28920. The nearest point is not necessarily unique; this class
  28921. always computes the nearest point closest
  28922. to the start of the geometry.
  28923. </summary>
  28924. </member>
  28925. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate)">
  28926. <summary>
  28927. </summary>
  28928. <param name="linearGeom"></param>
  28929. <param name="inputPt"></param>
  28930. <returns></returns>
  28931. </member>
  28932. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.#ctor(NetTopologySuite.Geometries.Geometry)">
  28933. <summary>
  28934. Initializes a new instance of the <see cref="T:NetTopologySuite.LinearReferencing.LocationIndexOfPoint"/> class.
  28935. </summary>
  28936. <param name="linearGeom">A linear geometry.</param>
  28937. </member>
  28938. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOf(NetTopologySuite.Geometries.Coordinate)">
  28939. <summary>
  28940. Find the nearest location along a linear <see cref="T:NetTopologySuite.Geometries.Geometry" /> to a given point.
  28941. </summary>
  28942. <param name="inputPt">The coordinate to locate.</param>
  28943. <returns>The location of the nearest point.</returns>
  28944. </member>
  28945. <member name="M:NetTopologySuite.LinearReferencing.LocationIndexOfPoint.IndexOfAfter(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.LinearReferencing.LinearLocation)">
  28946. <summary>
  28947. Find the nearest <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" /> along the linear <see cref="T:NetTopologySuite.Geometries.Geometry" />
  28948. to a given <see cref="T:NetTopologySuite.Geometries.Geometry" /> after the specified minimum <see cref="T:NetTopologySuite.LinearReferencing.LinearLocation" />.
  28949. If possible the location returned will be strictly greater than the <paramref name="minIndex" />.
  28950. If this is not possible, the value returned will equal <paramref name="minIndex" />.
  28951. (An example where this is not possible is when <paramref name="minIndex" /> = [end of line] ).
  28952. </summary>
  28953. <param name="inputPt">The coordinate to locate.</param>
  28954. <param name="minIndex">The minimum location for the point location.</param>
  28955. <returns>The location of the nearest point.</returns>
  28956. </member>
  28957. <member name="T:NetTopologySuite.Mathematics.DD">
  28958. <summary>
  28959. Implements extended-precision floating-point numbers
  28960. which maintain 106 bits (approximately 30 decimal digits) of precision.
  28961. <para/>
  28962. A DoubleDouble uses a representation containing two double-precision values.
  28963. A number x is represented as a pair of doubles, x.hi and x.lo,
  28964. such that the number represented by x is x.hi + x.lo, where
  28965. <pre>
  28966. |x.lo| &lt;= 0.5*ulp(x.hi)
  28967. </pre>
  28968. and ulp(y) means "unit in the last place of y".
  28969. The basic arithmetic operations are implemented using
  28970. convenient properties of IEEE-754 floating-point arithmetic.
  28971. <para/>
  28972. The range of values which can be represented is the same as in IEEE-754.
  28973. The precision of the representable numbers
  28974. is twice as great as IEEE-754 double precision.
  28975. <para/>
  28976. The correctness of the arithmetic algorithms relies on operations
  28977. being performed with standard IEEE-754 double precision and rounding.
  28978. This is the Java standard arithmetic model, but for performance reasons
  28979. Java implementations are not
  28980. constrained to using this standard by default.
  28981. Some processors (notably the Intel Pentium architecture) perform
  28982. floating point operations in (non-IEEE-754-standard) extended-precision.
  28983. A JVM implementation may choose to use the non-standard extended-precision
  28984. as its default arithmetic mode.
  28985. To prevent this from happening, this code uses the
  28986. Java <tt>strictfp</tt> modifier,
  28987. which forces all operations to take place in the standard IEEE-754 rounding model.
  28988. <para/>
  28989. The API provides both a set of value-oriented operations
  28990. and a set of mutating operations.
  28991. Value-oriented operations treat DoubleDouble values as
  28992. immutable; operations on them return new objects carrying the result
  28993. of the operation. This provides a simple and safe semantics for
  28994. writing DoubleDouble expressions. However, there is a performance
  28995. penalty for the object allocations required.
  28996. The mutable interface updates object values in-place.
  28997. It provides optimum memory performance, but requires
  28998. care to ensure that aliasing errors are not created
  28999. and constant values are not changed.
  29000. <para/>
  29001. This implementation uses algorithms originally designed variously by
  29002. Knuth, Kahan, Dekker, and Linnainmaa.
  29003. Douglas Priest developed the first C implementation of these techniques.
  29004. Other more recent C++ implementation are due to Keith M. Briggs and David Bailey et al.
  29005. <h3>References</h3>
  29006. <list type="bullet">
  29007. <item><description>Priest, D., <i>Algorithms for Arbitrary Precision Floating Point Arithmetic</i>,
  29008. in P. Kornerup and D. Matula, Eds., Proc. 10th Symposium on Computer Arithmetic,
  29009. IEEE Computer Society Press, Los Alamitos, Calif., 1991.</description></item>
  29010. <item><description>Yozo Hida, Xiaoye S. Li and David H. Bailey,
  29011. <i>Quad-Double Arithmetic: Algorithms, Implementation, and Application</i>,
  29012. manuscript, Oct 2000; Lawrence Berkeley National Laboratory Report BNL-46996.</description></item>
  29013. <item><description>David Bailey, <i>High Precision Software Directory</i>;
  29014. <tt>http://crd.lbl.gov/~dhbailey/mpdist/index.html</tt></description></item>
  29015. </list>
  29016. </summary>
  29017. <author>Martin Davis</author>
  29018. </member>
  29019. <member name="F:NetTopologySuite.Mathematics.DD.PI">
  29020. <summary>The value nearest to the constant Pi.</summary>
  29021. </member>
  29022. <member name="F:NetTopologySuite.Mathematics.DD.TwoPi">
  29023. <summary>The value nearest to the constant 2 * Pi.</summary>
  29024. </member>
  29025. <member name="F:NetTopologySuite.Mathematics.DD.PiHalf">
  29026. <summary>The value nearest to the constant Pi / 2.</summary>
  29027. </member>
  29028. <member name="F:NetTopologySuite.Mathematics.DD.E">
  29029. <summary>
  29030. The value nearest to the constant e (the natural logarithm base).
  29031. </summary>
  29032. </member>
  29033. <member name="F:NetTopologySuite.Mathematics.DD.NaN">
  29034. <summary>
  29035. A value representing the result of an operation which does not return a valid number.
  29036. </summary>
  29037. </member>
  29038. <member name="F:NetTopologySuite.Mathematics.DD.Epsilon">
  29039. <summary>
  29040. The smallest representable relative difference between two <see cref="T:NetTopologySuite.Mathematics.DD"/> values
  29041. </summary>
  29042. </member>
  29043. <member name="M:NetTopologySuite.Mathematics.DD.ValueOf(System.String)">
  29044. <summary>
  29045. Converts the string argument to a DoubleDouble number.
  29046. </summary>
  29047. <param name="str">A string containing a representation of a numeric value</param>
  29048. <returns>The extended precision version of the value</returns>
  29049. <exception cref="T:System.FormatException">Thrown if <paramref name="str"/> is not a valid representation of a number</exception>
  29050. </member>
  29051. <member name="M:NetTopologySuite.Mathematics.DD.op_Explicit(System.String)~NetTopologySuite.Mathematics.DD">
  29052. <summary>
  29053. Operator to parse a <tt>DoubleDouble</tt> from a string
  29054. </summary>
  29055. <param name="val">The DoubleDouble string</param>
  29056. </member>
  29057. <member name="M:NetTopologySuite.Mathematics.DD.ValueOf(System.Double)">
  29058. <summary>
  29059. Converts the <tt>double</tt> argument to a <tt>DoubleDouble</tt> number.
  29060. </summary>
  29061. <param name="x">A numeric value</param>
  29062. <returns>The extended precision version of the value</returns>
  29063. </member>
  29064. <member name="M:NetTopologySuite.Mathematics.DD.op_Implicit(System.Double)~NetTopologySuite.Mathematics.DD">
  29065. <summary>
  29066. Operator to convert the <tt>double</tt> value to a <tt>DoubleDouble</tt> value.
  29067. </summary>
  29068. <param name="val">The DoubleDouble string</param>
  29069. </member>
  29070. <member name="F:NetTopologySuite.Mathematics.DD.Split">
  29071. <summary>
  29072. The value to split a double-precision value on during multiplication
  29073. </summary>
  29074. </member>
  29075. <member name="F:NetTopologySuite.Mathematics.DD._hi">
  29076. <summary>
  29077. The high-order component of the double-double precision value.
  29078. </summary>
  29079. </member>
  29080. <member name="F:NetTopologySuite.Mathematics.DD._lo">
  29081. <summary>
  29082. The low-order component of the double-double precision value.
  29083. </summary>
  29084. </member>
  29085. <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.Double)">
  29086. <summary>
  29087. Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value x.
  29088. </summary>
  29089. <param name="x">The initial value</param>
  29090. </member>
  29091. <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.Double,System.Double)">
  29092. <summary>
  29093. Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value (hi, lo).
  29094. </summary>
  29095. <param name="hi">The high order component</param>
  29096. <param name="lo">The low order component</param>
  29097. </member>
  29098. <member name="M:NetTopologySuite.Mathematics.DD.#ctor(NetTopologySuite.Mathematics.DD)">
  29099. <summary>
  29100. Creates a <see cref="T:NetTopologySuite.Mathematics.DD"/> with a value equal to the argument
  29101. </summary>
  29102. <param name="dd">The initial value</param>
  29103. </member>
  29104. <member name="M:NetTopologySuite.Mathematics.DD.#ctor(System.String)">
  29105. <summary>
  29106. Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with value equal to the argument.
  29107. </summary>
  29108. <param name="str">The value to initialize by</param>
  29109. <exception cref="T:System.FormatException"> if <paramref name="str"/> is not a valid representation of a number</exception>
  29110. </member>
  29111. <member name="M:NetTopologySuite.Mathematics.DD.Copy(NetTopologySuite.Mathematics.DD)">
  29112. <summary>
  29113. Creates a new <see cref="T:NetTopologySuite.Mathematics.DD"/> with the value of the argument.
  29114. </summary>
  29115. <param name="dd">The value to copy</param>
  29116. <returns>A copy of <paramref name="dd"/></returns>
  29117. </member>
  29118. <member name="M:NetTopologySuite.Mathematics.DD.Clone">
  29119. <summary>
  29120. Creates and returns a copy of this value.
  29121. </summary>
  29122. <returns>A copy of this value</returns>
  29123. </member>
  29124. <member name="M:NetTopologySuite.Mathematics.DD.op_Addition(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29125. <summary>
  29126. Returns the sum of <paramref name="lhs"/> and <paramref name="rhs"/>.
  29127. </summary>
  29128. <param name="lhs">The left hand side</param>
  29129. <param name="rhs">The right hand side</param>
  29130. <returns>The sum of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
  29131. </member>
  29132. <member name="M:NetTopologySuite.Mathematics.DD.op_Addition(NetTopologySuite.Mathematics.DD,System.Double)">
  29133. <summary>
  29134. Returns the sum of <paramref name="lhs"/> and <paramref name="rhs"/>.
  29135. </summary>
  29136. <param name="lhs">The left hand side</param>
  29137. <param name="rhs">The right hand side</param>
  29138. <returns>The sum of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
  29139. </member>
  29140. <member name="M:NetTopologySuite.Mathematics.DD.op_Subtraction(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29141. <summary>
  29142. Returns the difference of <paramref name="lhs"/> and <paramref name="rhs"/>.
  29143. </summary>
  29144. <param name="lhs">The left hand side</param>
  29145. <param name="rhs">The right hand side</param>
  29146. <returns>The difference of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
  29147. </member>
  29148. <member name="M:NetTopologySuite.Mathematics.DD.op_Subtraction(NetTopologySuite.Mathematics.DD,System.Double)">
  29149. <summary>
  29150. Returns the difference of <paramref name="lhs"/> and <paramref name="rhs"/>.
  29151. </summary>
  29152. <param name="lhs">The left hand side</param>
  29153. <param name="rhs">The right hand side</param>
  29154. <returns>The difference of <paramref name="lhs"/> and <paramref name="rhs"/></returns>
  29155. </member>
  29156. <member name="M:NetTopologySuite.Mathematics.DD.op_UnaryNegation(NetTopologySuite.Mathematics.DD)">
  29157. <summary>
  29158. Subtracts the argument from the value of <tt>this</tt>.
  29159. </summary>
  29160. <param name="val">The subtrahend</param>
  29161. <returns>The result of this - y</returns>
  29162. </member>
  29163. <member name="M:NetTopologySuite.Mathematics.DD.op_Multiply(NetTopologySuite.Mathematics.DD,System.Double)">
  29164. <summary>
  29165. Multiplies <paramref name="lhs"/> by <paramref name="rhs"/>.
  29166. </summary>
  29167. <param name="lhs">A DoubleDouble value.</param>
  29168. <param name="rhs">A double value.</param>
  29169. <returns>The result of the multiplication.<para/></returns>
  29170. </member>
  29171. <member name="M:NetTopologySuite.Mathematics.DD.op_Multiply(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29172. <summary>
  29173. Multiplies <paramref name="lhs"/> by <paramref name="rhs"/>.
  29174. </summary>
  29175. <param name="lhs">A DoubleDouble value.</param>
  29176. <param name="rhs">A DoubleDouble value.</param>
  29177. <returns>The result of the multiplication.<para/></returns>
  29178. </member>
  29179. <member name="M:NetTopologySuite.Mathematics.DD.op_Division(NetTopologySuite.Mathematics.DD,System.Double)">
  29180. <summary>
  29181. Divides <paramref name="lhs"/> by <paramref name="rhs"/>.
  29182. </summary>
  29183. <param name="lhs">A DoubleDouble numerator.</param>
  29184. <param name="rhs">A double divisor.</param>
  29185. <returns>The result of the division.<para/></returns>
  29186. </member>
  29187. <member name="M:NetTopologySuite.Mathematics.DD.op_Division(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29188. <summary>
  29189. Divides <paramref name="lhs"/> by <paramref name="rhs"/>.
  29190. </summary>
  29191. <param name="lhs">A DoubleDouble numerator.</param>
  29192. <param name="rhs">A DoubleDouble divisor.</param>
  29193. <returns>The result of the division.<para/></returns>
  29194. </member>
  29195. <member name="M:NetTopologySuite.Mathematics.DD.Reciprocal">
  29196. <summary>
  29197. Returns a <see cref="T:NetTopologySuite.Mathematics.DD"/> whose value is <c>1 / this</c>.
  29198. </summary>
  29199. <returns>The reciprocal of this value</returns>
  29200. </member>
  29201. <member name="M:NetTopologySuite.Mathematics.DD.Determinant(System.Double,System.Double,System.Double,System.Double)">
  29202. <summary>
  29203. Computes the determinant of the 2x2 matrix with the given entries.
  29204. </summary>
  29205. <param name="x1">A matrix entry</param>
  29206. <param name="y1">A matrix entry</param>
  29207. <param name="x2">A matrix entry</param>
  29208. <param name="y2">A matrix entry</param>
  29209. <returns>The determinant of the matrix of values</returns>
  29210. </member>
  29211. <member name="M:NetTopologySuite.Mathematics.DD.Determinant(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29212. <summary>
  29213. Computes the determinant of the 2x2 matrix with the given entries.
  29214. </summary>
  29215. <param name="x1">A matrix entry</param>
  29216. <param name="y1">A matrix entry</param>
  29217. <param name="x2">A matrix entry</param>
  29218. <param name="y2">A matrix entry</param>
  29219. <returns>The determinant of the matrix of values</returns>
  29220. </member>
  29221. <member name="M:NetTopologySuite.Mathematics.DD.Min(NetTopologySuite.Mathematics.DD)">
  29222. <summary>
  29223. Computes the minimum of this and another DD number.
  29224. </summary>
  29225. <param name="x">A DD number</param>
  29226. <returns>The minimum of the two numbers</returns>
  29227. </member>
  29228. <member name="M:NetTopologySuite.Mathematics.DD.Max(NetTopologySuite.Mathematics.DD)">
  29229. <summary>
  29230. Computes the maximum of this and another DD number.
  29231. </summary>
  29232. <param name="x">A DD number</param>
  29233. <returns>The maximum of the two numbers</returns>
  29234. </member>
  29235. <member name="M:NetTopologySuite.Mathematics.DD.Floor">
  29236. <summary>
  29237. Returns the largest (closest to positive infinity)
  29238. value that is not greater than the argument
  29239. and is equal to a mathematical integer.
  29240. Special cases:
  29241. <list type="bullet">
  29242. <item><description>If this value is NaN, returns NaN.</description></item>
  29243. </list>
  29244. </summary>
  29245. <returns>The largest (closest to positive infinity)
  29246. value that is not greater than the argument
  29247. and is equal to a mathematical integer.
  29248. </returns>
  29249. </member>
  29250. <member name="M:NetTopologySuite.Mathematics.DD.Ceiling">
  29251. <summary>
  29252. Returns the smallest (closest to negative infinity) value
  29253. that is not less than the argument and is equal to a mathematical integer.
  29254. Special cases:
  29255. <list type="bullet">
  29256. <item><description>If this value is NaN, returns NaN.</description></item>
  29257. </list>
  29258. </summary>
  29259. <returns>
  29260. The smallest (closest to negative infinity) value
  29261. that is not less than the argument and is equal to a mathematical integer.
  29262. </returns>
  29263. </member>
  29264. <member name="M:NetTopologySuite.Mathematics.DD.Signum">
  29265. <summary>
  29266. Returns an integer indicating the sign of this value.
  29267. <para>
  29268. <list type="bullet">
  29269. <item><description>if this value is &gt; 0, returns 1</description></item>
  29270. <item><description>if this value is &lt; 0, returns -1</description></item>
  29271. <item><description>if this value is = 0, returns 0</description></item>
  29272. <item><description>if this value is NaN, returns 0</description></item>
  29273. </list>
  29274. </para>
  29275. </summary>
  29276. <returns>An integer indicating the sign of this value</returns>
  29277. </member>
  29278. <member name="M:NetTopologySuite.Mathematics.DD.Rint">
  29279. <summary>
  29280. Rounds this value to the nearest integer.
  29281. The value is rounded to an integer by adding 1/2 and taking the floor of the result.
  29282. Special cases:
  29283. <list type="bullet">
  29284. <item><description>If this value is NaN, returns NaN.</description></item>
  29285. </list>
  29286. </summary>
  29287. <returns>This value rounded to the nearest integer</returns>
  29288. </member>
  29289. <member name="M:NetTopologySuite.Mathematics.DD.Truncate">
  29290. <summary>
  29291. Returns the integer which is largest in absolute value and not further
  29292. from zero than this value.
  29293. <para/>
  29294. Special cases:
  29295. <list type="bullet">
  29296. <item><description>If this value is NaN, returns NaN.</description></item>
  29297. </list>
  29298. </summary>
  29299. <returns>
  29300. The integer which is largest in absolute value and not further from zero than this value
  29301. </returns>
  29302. </member>
  29303. <member name="M:NetTopologySuite.Mathematics.DD.Abs">
  29304. <summary>
  29305. Returns the absolute value of this value.
  29306. <para/>
  29307. Special cases:
  29308. <list type="bullet">
  29309. <item><description>if this value is NaN, it is returned.</description></item>
  29310. </list>
  29311. </summary>
  29312. <returns>The absolute value of this value</returns>
  29313. </member>
  29314. <member name="M:NetTopologySuite.Mathematics.DD.Sqr">
  29315. <summary>
  29316. Computes the square of this value.
  29317. </summary>
  29318. <returns>The square of this value</returns>
  29319. </member>
  29320. <member name="M:NetTopologySuite.Mathematics.DD.Sqr(System.Double)">
  29321. <summary>
  29322. Computes the square of this value.
  29323. </summary>
  29324. <returns>The square of this value.</returns>
  29325. </member>
  29326. <member name="M:NetTopologySuite.Mathematics.DD.Sqrt">
  29327. <summary>
  29328. Computes the positive square root of this value.<para/>
  29329. If the number is NaN or negative, NaN is returned.
  29330. </summary>
  29331. <returns>If this is NaN or less than zero, the result is NaN.</returns>
  29332. </member>
  29333. <member name="M:NetTopologySuite.Mathematics.DD.Sqrt(System.Double)">
  29334. <summary>
  29335. Computes the positive square root of a <tt>DoubleDouble</tt> value.<para/>
  29336. If the number is NaN or negative, NaN is returned.
  29337. </summary>
  29338. <param name="x">A numeric value</param>
  29339. <returns>the positive square root of this number.<para/>
  29340. If the argument is NaN or less than zero, the result is NaN.</returns>
  29341. </member>
  29342. <member name="M:NetTopologySuite.Mathematics.DD.Pow(System.Int32)">
  29343. <summary>
  29344. Computes the value of this number raised to an integral power.
  29345. Follows semantics of .Net Math.Pow as closely as possible.
  29346. </summary>
  29347. <param name="exp">The integer exponent</param>
  29348. <returns>x raised to the integral power exp</returns>
  29349. </member>
  29350. <member name="M:NetTopologySuite.Mathematics.DD.ToDoubleValue">
  29351. <summary>
  29352. Converts this value to the nearest <see cref="T:System.Double"/> number.
  29353. </summary>
  29354. <returns>The nearest <see cref="T:System.Double"/> value</returns>
  29355. </member>
  29356. <member name="M:NetTopologySuite.Mathematics.DD.ToIntValue">
  29357. <summary>
  29358. Converts this value to the nearest <see cref="T:System.Int32"/> value.
  29359. </summary>
  29360. <returns>The nearest <see cref="T:System.Int32"/> value</returns>
  29361. </member>
  29362. <member name="P:NetTopologySuite.Mathematics.DD.IsZero">
  29363. <summary>
  29364. Gets a value indicating whether this object is zero (0) or not
  29365. </summary>
  29366. </member>
  29367. <member name="P:NetTopologySuite.Mathematics.DD.IsNegative">
  29368. <summary>
  29369. Gets a value indicating whether this object is negative or not
  29370. </summary>
  29371. </member>
  29372. <member name="M:NetTopologySuite.Mathematics.DD.IsPositive">
  29373. <summary>
  29374. Gets a value indicating whether this object is positive or not
  29375. </summary>
  29376. </member>
  29377. <member name="M:NetTopologySuite.Mathematics.DD.IsNaN(NetTopologySuite.Mathematics.DD)">
  29378. <summary>
  29379. Gets a value indicating whether this object is positive or not
  29380. </summary>
  29381. </member>
  29382. <member name="M:NetTopologySuite.Mathematics.DD.IsInfinity(NetTopologySuite.Mathematics.DD)">
  29383. <summary>
  29384. Checks if <paramref name="value"/> is infinity.
  29385. </summary>
  29386. <param name="value">A DoubleDouble value</param>
  29387. <returns><c>true</c> if <c>value</c> is infinity.</returns>
  29388. </member>
  29389. <member name="M:NetTopologySuite.Mathematics.DD.Equals(NetTopologySuite.Mathematics.DD)">
  29390. <summary>
  29391. Tests whether this value is equal to another <tt>DoubleDouble</tt> value.
  29392. </summary>
  29393. <param name="y">A DoubleDouble value</param>
  29394. <returns><c>true</c> if this value == <paramref name="y"/>.</returns>
  29395. </member>
  29396. <member name="M:NetTopologySuite.Mathematics.DD.op_Equality(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29397. <summary>
  29398. Equality operator for <tt>DoubleDouble</tt> values
  29399. </summary>
  29400. <param name="lhs">A DoubleDouble value</param>
  29401. <param name="rhs">A DoubleDouble value</param>
  29402. <returns><c>true</c> if <paramref name="lhs"/> == <paramref name="rhs"/>.</returns>
  29403. </member>
  29404. <member name="M:NetTopologySuite.Mathematics.DD.op_Inequality(NetTopologySuite.Mathematics.DD,NetTopologySuite.Mathematics.DD)">
  29405. <summary>
  29406. Inequality operator for <tt>DoubleDouble</tt> values
  29407. </summary>
  29408. <param name="lhs">A DoubleDouble value</param>
  29409. <param name="rhs">A DoubleDouble value</param>
  29410. <returns><c>true</c> if <paramref name="lhs"/> != <paramref name="rhs"/>.</returns>
  29411. </member>
  29412. <member name="M:NetTopologySuite.Mathematics.DD.GreaterThan(NetTopologySuite.Mathematics.DD)">
  29413. <summary>
  29414. Tests whether this value is greater than another <tt>DoubleDouble</tt> value.
  29415. </summary>
  29416. <param name="y">A DoubleDouble value</param>
  29417. <returns><c>true</c> if this value &gt; <paramref name="y"/>.</returns>
  29418. </member>
  29419. <member name="M:NetTopologySuite.Mathematics.DD.GreaterOrEqualThan(NetTopologySuite.Mathematics.DD)">
  29420. <summary>
  29421. Tests whether this value is greater than or equals to another <tt>DoubleDouble</tt> value.
  29422. </summary>
  29423. <param name="y">A DoubleDouble value</param>
  29424. <returns><c>true</c> if this value &gt;= <paramref name="y"/>.</returns>
  29425. </member>
  29426. <member name="M:NetTopologySuite.Mathematics.DD.LessThan(NetTopologySuite.Mathematics.DD)">
  29427. <summary>
  29428. Tests whether this value is less than another <tt>DoubleDouble</tt> value.
  29429. </summary>
  29430. <param name="y">A DoubleDouble value</param>
  29431. <returns><c>true</c> if this value is &lt; <paramref name="y"/> </returns>
  29432. </member>
  29433. <member name="M:NetTopologySuite.Mathematics.DD.LessOrEqualThan(NetTopologySuite.Mathematics.DD)">
  29434. <summary>
  29435. Tests whether this value is less than or equal to another <tt>DoubleDouble</tt> value.
  29436. </summary>
  29437. <param name="y">A <tt>DoubleDouble</tt></param>
  29438. <returns><c>true</c> if this value is &lt;= <paramref name="y"/></returns>
  29439. </member>
  29440. <member name="M:NetTopologySuite.Mathematics.DD.CompareTo(NetTopologySuite.Mathematics.DD)">
  29441. <summary>
  29442. Compares two <tt>DoubleDouble</tt> objects numerically.
  29443. </summary>
  29444. <param name="other">An other <tt>DoubleDouble</tt> value</param>
  29445. <returns>
  29446. <c>-1,0</c> or <c>1</c> depending on whether this value is less than, equal to
  29447. or greater than the value of <paramref name="other"/></returns>
  29448. </member>
  29449. <member name="M:NetTopologySuite.Mathematics.DD.CompareTo(System.Object)">
  29450. <inheritdoc cref="M:System.IComparable.CompareTo(System.Object)"/>
  29451. </member>
  29452. <member name="M:NetTopologySuite.Mathematics.DD.Dump">
  29453. <summary>
  29454. Dumps the components of this number to a string.
  29455. </summary>
  29456. <returns>A string showing the components of the number</returns>
  29457. </member>
  29458. <member name="M:NetTopologySuite.Mathematics.DD.ToString">
  29459. <summary>
  29460. Returns a string representation of this number, in either standard or scientific notation.
  29461. If the magnitude of the number is in the range [ 10<sup>-3</sup>, 10<sup>8</sup> ]
  29462. standard notation will be used. Otherwise, scientific notation will be used.
  29463. </summary>
  29464. <returns>A string representation of this number</returns>
  29465. </member>
  29466. <member name="M:NetTopologySuite.Mathematics.DD.ToStandardNotation">
  29467. <summary>
  29468. Returns the string representation of this value in standard notation.
  29469. </summary>
  29470. <returns>The string representation in standard notation</returns>
  29471. </member>
  29472. <member name="M:NetTopologySuite.Mathematics.DD.ToSciNotation">
  29473. <summary>
  29474. Returns the string representation of this value in scientific notation.
  29475. </summary>
  29476. <returns>The string representation in scientific notation</returns>
  29477. </member>
  29478. <member name="M:NetTopologySuite.Mathematics.DD.ExtractSignificantDigits(System.Boolean,System.Int32[])">
  29479. <summary>
  29480. Extracts the significant digits in the decimal representation of the argument.
  29481. A decimal point may be optionally inserted in the string of digits
  29482. (as long as its position lies within the extracted digits
  29483. - if not, the caller must prepend or append the appropriate zeroes and decimal point).
  29484. </summary>
  29485. <param name="insertDecimalPoint"></param>
  29486. <param name="magnitudes"></param>
  29487. <returns>The string containing the significant digits and possibly a decimal point</returns>
  29488. </member>
  29489. <member name="M:NetTopologySuite.Mathematics.DD.GetSpecialNumberString">
  29490. <summary>
  29491. Returns the string for this value if it has a known representation (e.g. NaN or 0.0).
  29492. </summary>
  29493. <returns>The string for this special number <br/>
  29494. or <c>null</c> if the number is not a special number</returns>
  29495. </member>
  29496. <member name="M:NetTopologySuite.Mathematics.DD.Magnitude(System.Double)">
  29497. <summary>
  29498. Determines the decimal magnitude of a number.<para/>
  29499. The magnitude is the exponent of the greatest power of 10 which is less than
  29500. or equal to the number.
  29501. </summary>
  29502. <param name="x">The number to find the magnitude of</param>
  29503. <returns>The decimal magnitude of <paramref name="x"/></returns>
  29504. </member>
  29505. <member name="M:NetTopologySuite.Mathematics.DD.Parse(System.String)">
  29506. <summary>
  29507. Converts a string representation of a real number into a DoubleDouble value.
  29508. The format accepted is similar to the standard Java real number syntax.
  29509. It is defined by the following regular expression:
  29510. <pre>
  29511. [<tt>+</tt>|<tt>-</tt>] {<i>digit</i>} [ <tt>.</tt> {<i>digit</i>} ] [ ( <tt>e</tt> | <tt>E</tt> ) [<tt>+</tt>|<tt>-</tt>] {<i>digit</i>}+
  29512. </pre>
  29513. </summary>
  29514. <param name="str">The string to parse</param>
  29515. <returns>The value of the parsed number</returns>
  29516. <exception cref="T:System.FormatException">Thrown if <tt>str</tt> is not a valid representation of a number</exception>
  29517. </member>
  29518. <member name="M:NetTopologySuite.Mathematics.DD.Equals(System.Object)">
  29519. <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
  29520. </member>
  29521. <member name="M:NetTopologySuite.Mathematics.DD.GetHashCode">
  29522. <inheritdoc cref="M:System.Object.GetHashCode"/>
  29523. </member>
  29524. <member name="T:NetTopologySuite.Mathematics.MathUtil">
  29525. <summary>
  29526. Various utility functions for mathematical and numerical operations.
  29527. </summary>
  29528. </member>
  29529. <member name="M:NetTopologySuite.Mathematics.MathUtil.Clamp(System.Double,System.Double,System.Double)">
  29530. <summary>
  29531. Clamps a <c>double</c> value to a given range.
  29532. </summary>
  29533. <param name="x">The value to clamp</param>
  29534. <param name="min">The minimum value of the range</param>
  29535. <param name="max">The maximum value of the range</param>
  29536. <returns>The clamped value</returns>
  29537. </member>
  29538. <member name="M:NetTopologySuite.Mathematics.MathUtil.Clamp(System.Int32,System.Int32,System.Int32)">
  29539. <summary>
  29540. Clamps a <c>int</c> value to a given range.
  29541. </summary>
  29542. <param name="x">The value to clamp</param>
  29543. <param name="min">The minimum value of the range</param>
  29544. <param name="max">The maximum value of the range</param>
  29545. <returns>The clamped value</returns>
  29546. </member>
  29547. <member name="M:NetTopologySuite.Mathematics.MathUtil.ClampMax(System.Int32,System.Int32)">
  29548. <summary>
  29549. Clamps an integer to a given maximum limit.
  29550. </summary>
  29551. <param name="x">The value to clamp</param>
  29552. <param name="max">The maximum value of the range</param>
  29553. <returns>The clamped value</returns>
  29554. </member>
  29555. <member name="M:NetTopologySuite.Mathematics.MathUtil.Ceiling(System.Int32,System.Int32)">
  29556. <summary>
  29557. Computes the ceiling function of the dividend of two integers.
  29558. </summary>
  29559. <param name="num">The numerator</param>
  29560. <param name="denom">The denominator</param>
  29561. <returns>The ceiling of <c>num / denom</c></returns>
  29562. </member>
  29563. <member name="M:NetTopologySuite.Mathematics.MathUtil.Log10(System.Double)">
  29564. <summary>
  29565. Computes the base-10 logarithm of a <c>double</c> value.
  29566. <para>
  29567. <list type="bullet">
  29568. <item><description>If the argument is NaN or less than zero, then the result is NaN.</description></item>
  29569. <item><description>If the argument is positive infinity, then the result is positive infinity.</description></item>
  29570. <item><description>If the argument is positive zero or negative zero, then the result is negative infinity.</description></item>
  29571. </list>
  29572. </para>
  29573. </summary>
  29574. <param name="x">A positive number</param>
  29575. <returns>The value log a, the base-10 logarithm of the input value</returns>
  29576. </member>
  29577. <member name="M:NetTopologySuite.Mathematics.MathUtil.Wrap(System.Int32,System.Int32)">
  29578. <summary>
  29579. Computes an index which wraps around a given maximum value.
  29580. For values &gt;= 0, this is equals to <c>val % max</c>.
  29581. For values &lt; 0, this is equal to <c>max - (-val) % max</c>
  29582. </summary>
  29583. <param name="index">The index to wrap</param>
  29584. <param name="max">The maximum value (or modulus)</param>
  29585. <returns>The wrapped index</returns>
  29586. </member>
  29587. <member name="M:NetTopologySuite.Mathematics.MathUtil.Average(System.Double,System.Double)">
  29588. <summary>
  29589. Computes the average of two numbers.
  29590. </summary>
  29591. <param name="x1">A number</param>
  29592. <param name="x2">A number</param>
  29593. <returns>The average of the inputs</returns>
  29594. </member>
  29595. <member name="M:NetTopologySuite.Mathematics.MathUtil.Max(System.Double,System.Double,System.Double)">
  29596. <summary>
  29597. Computes the maximum fo three values
  29598. </summary>
  29599. <param name="v1">A number</param>
  29600. <param name="v2">A number</param>
  29601. <param name="v3">A number</param>
  29602. <returns>The maximum value of <paramref name="v1"/>, <paramref name="v2"/> and <paramref name="v3"/></returns>
  29603. </member>
  29604. <member name="M:NetTopologySuite.Mathematics.MathUtil.Max(System.Double,System.Double,System.Double,System.Double)">
  29605. <summary>
  29606. Computes the maximum of four values
  29607. </summary>
  29608. <param name="v1">A number</param>
  29609. <param name="v2">A number</param>
  29610. <param name="v3">A number</param>
  29611. <param name="v4">A number</param>
  29612. <returns>The maximum value of <paramref name="v1"/>, <paramref name="v2"/>, <paramref name="v3"/> and <paramref name="v4"/></returns>
  29613. </member>
  29614. <member name="M:NetTopologySuite.Mathematics.MathUtil.Min(System.Double,System.Double,System.Double)">
  29615. <summary>
  29616. Computes the minimum of four values
  29617. </summary>
  29618. <param name="v1">A number</param>
  29619. <param name="v2">A number</param>
  29620. <param name="v3">A number</param>
  29621. <returns>The minimum value of <paramref name="v1"/>, <paramref name="v2"/> and <paramref name="v3"/></returns>
  29622. </member>
  29623. <member name="M:NetTopologySuite.Mathematics.MathUtil.Min(System.Double,System.Double,System.Double,System.Double)">
  29624. <summary>
  29625. Computes the minimum of four values
  29626. </summary>
  29627. <param name="v1">A number</param>
  29628. <param name="v2">A number</param>
  29629. <param name="v3">A number</param>
  29630. <param name="v4">A number</param>
  29631. <returns>The minimum value of <paramref name="v1"/>, <paramref name="v2"/>, <paramref name="v3"/> and <paramref name="v4"/></returns>
  29632. </member>
  29633. <member name="F:NetTopologySuite.Mathematics.MathUtil.PhiInv">
  29634. <summary>The inverse of the Golden Ratio phi.</summary>
  29635. </member>
  29636. <member name="M:NetTopologySuite.Mathematics.MathUtil.QuasiRandom(System.Double)">
  29637. <summary>
  29638. Generates a quasi-random sequence of numbers in the range [0,1].
  29639. They are produced by an additive recurrence with 1/&#966; as the constant.
  29640. This produces a low-discrepancy sequence which is more evenly
  29641. distribute than random numbers.
  29642. <para/>
  29643. See <a href='https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Additive_recurrence'>Wikipedia: Low-discrepancy Sequences - Additive Recurrence</a>.
  29644. <para/>
  29645. The sequence is initialized by calling it
  29646. with any positive fractional number; 0 works well for most uses.
  29647. </summary>
  29648. <param name="curr">The current number in the sequence</param>
  29649. <returns>The next value in the sequence</returns>
  29650. </member>
  29651. <member name="M:NetTopologySuite.Mathematics.MathUtil.QuasiRandom(System.Double,System.Double)">
  29652. <summary>
  29653. Generates a quasi-random sequence of numbers in the range [0,1].
  29654. They are produced by an additive recurrence with constant &#945;.
  29655. <code>
  29656. R(&#945;) : t<sub>n</sub> = { t<sub>0</sub> + n&#945; }, n = 1,2,3,...
  29657. </code>
  29658. When &#945; is irrational this produces a
  29659. <a href='https://en.wikipedia.org/wiki/Low-discrepancy_sequence#Additive_recurrence'>Low discrepancy sequence</a>
  29660. which is more evenly distributed than random numbers.
  29661. <para/>
  29662. The sequence is initialized by calling it
  29663. with any positive fractional number. 0 works well for most uses.
  29664. </summary>
  29665. <param name="curr">The current number in the sequence</param>
  29666. <param name="alpha">the sequence's additive constant</param>
  29667. <returns>The next value in the sequence</returns>
  29668. </member>
  29669. <member name="M:NetTopologySuite.Mathematics.MathUtil.Shuffle(System.Int32)">
  29670. <summary>
  29671. Generates a randomly-shuffled list of the integers from [0..n-1].
  29672. <para/>
  29673. One use is to randomize points inserted into a <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/>.
  29674. </summary>
  29675. <param name="n">The number of integers to shuffle</param>
  29676. <returns>The shuffled array</returns>
  29677. </member>
  29678. <member name="T:NetTopologySuite.Mathematics.Matrix">
  29679. <summary>
  29680. Implements some 2D matrix operations
  29681. (in particular, solving systems of linear equations).
  29682. </summary>
  29683. <author>Martin Davis</author>
  29684. </member>
  29685. <member name="M:NetTopologySuite.Mathematics.Matrix.Solve(System.Double[][],System.Double[])">
  29686. <summary>
  29687. Solves a system of equations using Gaussian Elimination.
  29688. In order to avoid overhead the algorithm runs in-place
  29689. on <see paramref="a"/> - if <see paramref="a"/> should not be modified the client must supply a copy.
  29690. </summary>
  29691. <param name="a">An nxn matrix in row/column order )modified by this method)</param>
  29692. <param name="b">A vector of length n</param>
  29693. <returns>A vector containing the solution (if any)<br/>or <c>null</c> if the system has no or no unique solution
  29694. </returns>
  29695. <exception cref="T:System.ArgumentException">If the matrix has the wrong size</exception>
  29696. </member>
  29697. <member name="T:NetTopologySuite.Mathematics.Plane">
  29698. <summary>
  29699. Enumeration for the 3 coordinate planes
  29700. </summary>
  29701. </member>
  29702. <member name="T:NetTopologySuite.Mathematics.Plane3D">
  29703. <summary>
  29704. Models a plane in 3-dimensional Cartesian space.
  29705. </summary>
  29706. <author>Martin Davis</author>
  29707. </member>
  29708. <member name="M:NetTopologySuite.Mathematics.Plane3D.OrientedDistance(NetTopologySuite.Geometries.Coordinate)">
  29709. <summary>
  29710. Computes the oriented distance from a point to the plane.<br/>
  29711. The distance is:
  29712. <list type="bullet">
  29713. <item><description><b>positive</b> if the point lies above the plane (relative to the plane normal)</description></item>
  29714. <item><description><b>zero</b> if the point is on the plane</description></item>
  29715. <item><description><b>negative</b> if the point lies below the plane (relative to the plane normal)</description></item>
  29716. </list>
  29717. </summary>
  29718. <param name="p">The point to compute the distance for</param>
  29719. <returns>The oriented distance to the plane</returns>
  29720. </member>
  29721. <member name="M:NetTopologySuite.Mathematics.Plane3D.ClosestAxisPlane">
  29722. <summary>
  29723. Computes the axis plane that this plane lies closest to.
  29724. <para/>
  29725. Geometries lying in this plane undergo least distortion
  29726. (and have maximum area)
  29727. when projected to the closest axis plane.
  29728. This provides optimal conditioning for
  29729. computing a Point-in-Polygon test.
  29730. </summary>
  29731. <returns>The index of the closest axis plane</returns>
  29732. </member>
  29733. <member name="T:NetTopologySuite.Mathematics.Vector2D">
  29734. <summary>
  29735. A 2-dimensional mathematical vector represented by double-precision X and Y components.
  29736. </summary>
  29737. <author>mbdavis</author>
  29738. </member>
  29739. <member name="P:NetTopologySuite.Mathematics.Vector2D.Zero">
  29740. <summary>
  29741. Creates a new vector with all components set to Zero
  29742. </summary>
  29743. </member>
  29744. <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(System.Double,System.Double)">
  29745. <summary>
  29746. Creates a new vector with given X and Y components.
  29747. </summary>
  29748. <param name="x">The x component</param>
  29749. <param name="y">The y component</param>
  29750. <returns>A new vector</returns>
  29751. </member>
  29752. <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Mathematics.Vector2D)">
  29753. <summary>
  29754. Creates a new vector from an existing one.
  29755. </summary>
  29756. <param name="v">The vector to copy</param>
  29757. <returns>A new vector</returns>
  29758. </member>
  29759. <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Geometries.Coordinate)">
  29760. <summary>
  29761. Creates a vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  29762. </summary>
  29763. <param name="coord">The coordinate to copy</param>
  29764. <returns>A new vector</returns>
  29765. </member>
  29766. <member name="M:NetTopologySuite.Mathematics.Vector2D.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  29767. <summary>Creates a vector with the direction and magnitude
  29768. of the difference between the
  29769. <paramref name="to"/> and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  29770. </summary>
  29771. <param name="from">The origin coordinate</param>
  29772. <param name="to">The destination coordinate</param>
  29773. <returns>A new vector</returns>
  29774. </member>
  29775. <member name="F:NetTopologySuite.Mathematics.Vector2D._x">
  29776. <summary>The X component of this vector</summary>
  29777. </member>
  29778. <member name="F:NetTopologySuite.Mathematics.Vector2D._y">
  29779. <summary>The Y component of this vector.</summary>
  29780. </member>
  29781. <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor">
  29782. <summary>
  29783. Creates an new vector instance
  29784. </summary>
  29785. </member>
  29786. <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(System.Double,System.Double)">
  29787. <summary>
  29788. Creates a new vector instance using the provided <paramref name="x"/> and <paramref name="y"/> ordinates
  29789. </summary>
  29790. <param name="x">The x-ordinate value</param>
  29791. <param name="y">The y-ordinate value</param>
  29792. </member>
  29793. <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Mathematics.Vector2D)">
  29794. <summary>
  29795. Creates a new vector instance based on <paramref name="v"/>.
  29796. </summary>
  29797. <param name="v">The vector</param>
  29798. </member>
  29799. <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  29800. <summary>Creates a new vector with the direction and magnitude
  29801. of the difference between the
  29802. <paramref name="to"/> and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  29803. </summary>
  29804. <param name="from">The origin coordinate</param>
  29805. <param name="to">The destination coordinate</param>
  29806. </member>
  29807. <member name="M:NetTopologySuite.Mathematics.Vector2D.#ctor(NetTopologySuite.Geometries.Coordinate)">
  29808. <summary>
  29809. Creates a vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  29810. </summary>
  29811. <param name="v">The coordinate</param>
  29812. <returns>A new vector</returns>
  29813. </member>
  29814. <member name="P:NetTopologySuite.Mathematics.Vector2D.X">
  29815. <summary>
  29816. Gets the x-ordinate value
  29817. </summary>
  29818. </member>
  29819. <member name="P:NetTopologySuite.Mathematics.Vector2D.Y">
  29820. <summary>
  29821. Gets the y-ordinate value
  29822. </summary>
  29823. </member>
  29824. <member name="P:NetTopologySuite.Mathematics.Vector2D.Item(System.Int32)">
  29825. <summary>
  29826. Gets the ordinate values by index
  29827. </summary>
  29828. <param name="index">The index</param>
  29829. <exception cref="T:System.ArgumentOutOfRangeException">Thrown if index &lt; 0 or &gt; 1</exception>
  29830. </member>
  29831. <member name="M:NetTopologySuite.Mathematics.Vector2D.Add(NetTopologySuite.Mathematics.Vector2D)">
  29832. <summary>
  29833. Adds <paramref name="v"/> to this vector instance.
  29834. </summary>
  29835. <param name="v">The vector to add</param>
  29836. <returns>The result vector</returns>
  29837. </member>
  29838. <member name="M:NetTopologySuite.Mathematics.Vector2D.Subtract(NetTopologySuite.Mathematics.Vector2D)">
  29839. <summary>
  29840. Subtracts <paramref name="v"/> from this vector instance
  29841. </summary>
  29842. <param name="v">The vector to subtract</param>
  29843. <returns>The result vector</returns>
  29844. </member>
  29845. <member name="M:NetTopologySuite.Mathematics.Vector2D.Multiply(System.Double)">
  29846. <summary>
  29847. Multiplies the vector by a scalar value.
  29848. </summary>
  29849. <param name="d">The value to multiply by</param>
  29850. <returns>A new vector with the value v * d</returns>
  29851. </member>
  29852. <member name="M:NetTopologySuite.Mathematics.Vector2D.Divide(System.Double)">
  29853. <summary>
  29854. Divides the vector by a scalar value.
  29855. </summary>
  29856. <param name="d">The value to divide by</param>
  29857. <returns>A new vector with the value v / d</returns>
  29858. </member>
  29859. <member name="M:NetTopologySuite.Mathematics.Vector2D.Negate">
  29860. <summary>
  29861. Negates this vector
  29862. </summary>
  29863. <returns>A new vector with [-_x, -_y]</returns>
  29864. </member>
  29865. <member name="M:NetTopologySuite.Mathematics.Vector2D.Length">
  29866. <summary>
  29867. </summary>
  29868. <returns></returns>
  29869. </member>
  29870. <member name="M:NetTopologySuite.Mathematics.Vector2D.LengthSquared">
  29871. <summary>
  29872. </summary>
  29873. <returns></returns>
  29874. </member>
  29875. <member name="M:NetTopologySuite.Mathematics.Vector2D.Normalize">
  29876. <summary>
  29877. Normalizes the vector
  29878. </summary>
  29879. <returns>A new normalized vector</returns>
  29880. </member>
  29881. <member name="M:NetTopologySuite.Mathematics.Vector2D.Average(NetTopologySuite.Mathematics.Vector2D)">
  29882. <summary>
  29883. </summary>
  29884. <param name="v"></param>
  29885. <returns></returns>
  29886. </member>
  29887. <member name="M:NetTopologySuite.Mathematics.Vector2D.WeightedSum(NetTopologySuite.Mathematics.Vector2D,System.Double)">
  29888. <summary>
  29889. Computes the weighted sum of this vector
  29890. with another vector,
  29891. with this vector contributing a fraction
  29892. of <tt>frac</tt> to the total.
  29893. <para/>
  29894. In other words,
  29895. <pre>
  29896. sum = frac * this + (1 - frac) * v
  29897. </pre>
  29898. </summary>
  29899. <param name="v">The vector to sum</param>
  29900. <param name="frac">The fraction of the total contributed by this vector</param>
  29901. <returns>The weighted sum of the two vectors</returns>
  29902. </member>
  29903. <member name="M:NetTopologySuite.Mathematics.Vector2D.Distance(NetTopologySuite.Mathematics.Vector2D)">
  29904. <summary>
  29905. Computes the distance between this vector and another one.
  29906. </summary>
  29907. <param name="v">A vector</param>
  29908. <returns>The distance between the vectors</returns>
  29909. </member>
  29910. <member name="M:NetTopologySuite.Mathematics.Vector2D.Dot(NetTopologySuite.Mathematics.Vector2D)">
  29911. <summary>
  29912. Computes the dot-product of two vectors
  29913. </summary>
  29914. <param name="v">A vector</param>
  29915. <returns>The dot product of the vectors</returns>
  29916. </member>
  29917. <member name="M:NetTopologySuite.Mathematics.Vector2D.Angle">
  29918. <summary>
  29919. Computes the angle this vector describes to the horizontal axis
  29920. </summary>
  29921. <returns>The angle</returns>
  29922. </member>
  29923. <member name="M:NetTopologySuite.Mathematics.Vector2D.Angle(NetTopologySuite.Mathematics.Vector2D)">
  29924. <summary>
  29925. </summary>
  29926. <param name="v"></param>
  29927. <returns></returns>
  29928. </member>
  29929. <member name="M:NetTopologySuite.Mathematics.Vector2D.AngleTo(NetTopologySuite.Mathematics.Vector2D)">
  29930. <summary>
  29931. </summary>
  29932. <param name="v"></param>
  29933. <returns></returns>
  29934. </member>
  29935. <member name="M:NetTopologySuite.Mathematics.Vector2D.Rotate(System.Double)">
  29936. <summary>
  29937. Rotates this vector by <paramref name="angle"/>
  29938. </summary>
  29939. <param name="angle">The angle</param>
  29940. <returns>The rotated vector</returns>
  29941. </member>
  29942. <member name="M:NetTopologySuite.Mathematics.Vector2D.RotateByQuarterCircle(System.Int32)">
  29943. <summary>
  29944. Rotates a vector by a given number of quarter-circles (i.e. multiples of 90
  29945. degrees or Pi/2 radians). A positive number rotates counter-clockwise, a
  29946. negative number rotates clockwise. Under this operation the magnitude of
  29947. the vector and the absolute values of the ordinates do not change, only
  29948. their sign and ordinate index.
  29949. </summary>
  29950. <param name="numQuarters">The number of quarter-circles to rotate by</param>
  29951. <returns>The rotated vector.</returns>
  29952. </member>
  29953. <member name="M:NetTopologySuite.Mathematics.Vector2D.IsParallel(NetTopologySuite.Mathematics.Vector2D)">
  29954. <summary>
  29955. </summary>
  29956. <param name="v"></param>
  29957. <returns></returns>
  29958. </member>
  29959. <member name="M:NetTopologySuite.Mathematics.Vector2D.Translate(NetTopologySuite.Geometries.Coordinate)">
  29960. <summary>
  29961. Gets a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> made of this vector translated by <paramref name="coord"/>.
  29962. </summary>
  29963. <param name="coord">The translation coordinate</param>
  29964. <returns>A coordinate</returns>
  29965. </member>
  29966. <member name="M:NetTopologySuite.Mathematics.Vector2D.ToCoordinate">
  29967. <summary>
  29968. Gets a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> from this vector
  29969. </summary>
  29970. <returns>A coordinate</returns>
  29971. </member>
  29972. <member name="M:NetTopologySuite.Mathematics.Vector2D.Clone">
  29973. <summary>
  29974. Creates a copy of this vector
  29975. </summary>
  29976. <returns>A copy of this vector</returns>
  29977. </member>
  29978. <member name="M:NetTopologySuite.Mathematics.Vector2D.ToString">
  29979. <summary>
  29980. Gets a string representation of this vector
  29981. </summary>
  29982. <returns>A string representing this vector</returns>
  29983. </member>
  29984. <member name="M:NetTopologySuite.Mathematics.Vector2D.Equals(System.Object)">
  29985. <summary>
  29986. Tests if a vector <paramref name="o"/> has the same values for the x and y components.
  29987. </summary>
  29988. <param name="o">A <see cref="T:NetTopologySuite.Mathematics.Vector2D"/> with which to do the comparison.</param>
  29989. <returns>true if <paramref name="o"/> is a <see cref="T:NetTopologySuite.Mathematics.Vector2D"/>with the same values for the X and Y components.</returns>
  29990. </member>
  29991. <member name="M:NetTopologySuite.Mathematics.Vector2D.GetHashCode">
  29992. <summary>
  29993. Gets a hashcode for this vector.
  29994. </summary>
  29995. <returns>A hashcode for this vector</returns>
  29996. </member>
  29997. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Addition(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  29998. <summary>
  29999. Adds two vectors.
  30000. </summary>
  30001. <param name="left">The first vector to add.</param>
  30002. <param name="right">The second vector to add.</param>
  30003. <returns>The sum of the two vectors.</returns>
  30004. </member>
  30005. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  30006. <summary>
  30007. Modulates a vector with another by performing component-wise multiplication"/>.
  30008. </summary>
  30009. <param name="left">The first vector to multiply.</param>
  30010. <param name="right">The second vector to multiply.</param>
  30011. <returns>The multiplication of the two vectors.</returns>
  30012. </member>
  30013. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Subtraction(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  30014. <summary>
  30015. Subtracts two vectors.
  30016. </summary>
  30017. <param name="left">The first vector to subtract.</param>
  30018. <param name="right">The second vector to subtract.</param>
  30019. <returns>The difference of the two vectors.</returns>
  30020. </member>
  30021. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_UnaryNegation(NetTopologySuite.Mathematics.Vector2D)">
  30022. <summary>
  30023. Reverses the direction of a given vector.
  30024. </summary>
  30025. <param name="value">The vector to negate.</param>
  30026. <returns>A vector facing in the opposite direction.</returns>
  30027. </member>
  30028. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(System.Double,NetTopologySuite.Mathematics.Vector2D)">
  30029. <summary>
  30030. Scales a vector by the given value.
  30031. </summary>
  30032. <param name="value">The vector to scale.</param>
  30033. <param name="scale">The amount by which to scale the vector.</param>
  30034. <returns>The scaled vector.</returns>
  30035. </member>
  30036. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Multiply(NetTopologySuite.Mathematics.Vector2D,System.Double)">
  30037. <summary>
  30038. Scales a vector by the given value.
  30039. </summary>
  30040. <param name="value">The vector to scale.</param>
  30041. <param name="scale">The amount by which to scale the vector.</param>
  30042. <returns>The scaled vector.</returns>
  30043. </member>
  30044. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Division(NetTopologySuite.Mathematics.Vector2D,System.Double)">
  30045. <summary>
  30046. Scales a vector by the given value.
  30047. </summary>
  30048. <param name="value">The vector to scale.</param>
  30049. <param name="scale">The amount by which to scale the vector.</param>
  30050. <returns>The scaled vector.</returns>
  30051. </member>
  30052. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Division(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  30053. <summary>
  30054. Scales a vector by the given value.
  30055. </summary>
  30056. <param name="value">The vector to scale.</param>
  30057. <param name="scale">The amount by which to scale the vector.</param>
  30058. <returns>The scaled vector.</returns>
  30059. </member>
  30060. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Equality(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  30061. <summary>
  30062. Tests for equality between two objects.
  30063. </summary>
  30064. <param name="left">The first value to compare.</param>
  30065. <param name="right">The second value to compare.</param>
  30066. <returns><c>true</c> if <paramref name="left"/> has the same value as
  30067. <paramref name="right"/>; otherwise, <c>false</c>.</returns>
  30068. </member>
  30069. <member name="M:NetTopologySuite.Mathematics.Vector2D.op_Inequality(NetTopologySuite.Mathematics.Vector2D,NetTopologySuite.Mathematics.Vector2D)">
  30070. <summary>
  30071. Tests for inequality between two objects.
  30072. </summary>
  30073. <param name="left">The first value to compare.</param>
  30074. <param name="right">The second value to compare.</param>
  30075. <returns><c>true</c> if <paramref name="left"/> has a different value
  30076. than <paramref name="right"/>; otherwise, <c>false</c>.</returns>
  30077. </member>
  30078. <member name="T:NetTopologySuite.Mathematics.Vector3D">
  30079. <summary>
  30080. Represents a vector in 3-dimensional Cartesian space.
  30081. </summary>
  30082. <author>Martin Davis</author>
  30083. </member>
  30084. <member name="P:NetTopologySuite.Mathematics.Vector3D.Zero">
  30085. <summary>
  30086. Creates a new vector with all components set to Zero
  30087. </summary>
  30088. </member>
  30089. <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30090. <summary>
  30091. Computes the dot product of the 3D vectors AB and CD.
  30092. </summary>
  30093. <param name="A">The start point of the 1st vector</param>
  30094. <param name="B">The end point of the 1st vector</param>
  30095. <param name="C">The start point of the 2nd vector</param>
  30096. <param name="D">The end point of the 2nd vector</param>
  30097. <returns>The dot product</returns>
  30098. </member>
  30099. <member name="M:NetTopologySuite.Mathematics.Vector3D.Cross(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30100. <summary>
  30101. Calculates the cross product of two vectors.
  30102. </summary>
  30103. <param name="left">First source vector.</param>
  30104. <param name="right">Second source vector.</param>
  30105. </member>
  30106. <member name="M:NetTopologySuite.Mathematics.Vector3D.Create(System.Double,System.Double,System.Double)">
  30107. <summary>
  30108. Creates a new vector with given <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/> components.
  30109. </summary>
  30110. <param name="x">The x component</param>
  30111. <param name="y">The y component</param>
  30112. <param name="z">The z component</param>
  30113. <returns>A new vector</returns>
  30114. </member>
  30115. <member name="M:NetTopologySuite.Mathematics.Vector3D.Create(NetTopologySuite.Geometries.Coordinate)">
  30116. <summary>
  30117. Creates a vector from a 3D <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.
  30118. <para/>
  30119. The coordinate should have the
  30120. X,Y and Z ordinates specified.
  30121. </summary>
  30122. <param name="coord">The coordinate to copy</param>
  30123. <returns>A new vector</returns>
  30124. </member>
  30125. <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30126. <summary>
  30127. Computes the 3D dot-product of two <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s
  30128. </summary>
  30129. <param name="v1">The 1st vector</param>
  30130. <param name="v2">The 2nd vector</param>
  30131. <returns>The dot product of the (coordinate) vectors</returns>
  30132. </member>
  30133. <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Geometries.Coordinate)">
  30134. <summary>
  30135. Creates a new 3D vector from a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.<para/> The coordinate should have
  30136. the X,Y and Z ordinates specified.
  30137. </summary>
  30138. <param name="coord">The coordinate to copy</param>
  30139. </member>
  30140. <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30141. <summary>
  30142. Creates a new vector with the direction and magnitude
  30143. of the difference between the <paramref name="to"/>
  30144. and <paramref name="from"/> <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  30145. </summary>
  30146. <param name="from">The origin coordinate</param>
  30147. <param name="to">The destination coordinate</param>
  30148. </member>
  30149. <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(System.Double,System.Double,System.Double)">
  30150. <summary>
  30151. Creates a new vector with the given <paramref name="x"/>, <paramref name="y"/> and <paramref name="z"/> components
  30152. </summary>
  30153. <param name="x">The x component</param>
  30154. <param name="y">The y component</param>
  30155. <param name="z">The z component</param>
  30156. </member>
  30157. <member name="M:NetTopologySuite.Mathematics.Vector3D.#ctor(NetTopologySuite.Mathematics.Vector2D,System.Double)">
  30158. <summary>
  30159. Creates a new <see cref="T:NetTopologySuite.Mathematics.Vector3D"/> using a <see cref="T:NetTopologySuite.Mathematics.Vector2D"/> plus a value for <paramref name="z"/> component
  30160. </summary>
  30161. <param name="value">A vector containing the values with which to initialize the X and Y components.</param>
  30162. <param name="z">Initial value for the Z component of the vector.</param>
  30163. </member>
  30164. <member name="P:NetTopologySuite.Mathematics.Vector3D.X">
  30165. <summary>
  30166. Gets a value indicating the x-ordinate
  30167. </summary>
  30168. </member>
  30169. <member name="P:NetTopologySuite.Mathematics.Vector3D.Y">
  30170. <summary>
  30171. Gets a value indicating the y-ordinate
  30172. </summary>
  30173. </member>
  30174. <member name="P:NetTopologySuite.Mathematics.Vector3D.Z">
  30175. <summary>
  30176. Gets a value indicating the z-ordinate
  30177. </summary>
  30178. </member>
  30179. <member name="M:NetTopologySuite.Mathematics.Vector3D.Add(NetTopologySuite.Mathematics.Vector3D)">
  30180. <summary>
  30181. Computes a vector which is the sum
  30182. of this vector and the given vector.
  30183. </summary>
  30184. <param name="v">The vector to add</param>
  30185. <returns>The sum of this and <c>v</c></returns>
  30186. </member>
  30187. <member name="M:NetTopologySuite.Mathematics.Vector3D.Subtract(NetTopologySuite.Mathematics.Vector3D)">
  30188. <summary>
  30189. Computes a vector which is the difference
  30190. of this vector and the given vector.
  30191. </summary>
  30192. <param name="v">The vector to subtract</param>
  30193. <returns>The difference of this and <c>v</c></returns>
  30194. </member>
  30195. <member name="M:NetTopologySuite.Mathematics.Vector3D.Divide(System.Double)">
  30196. <summary>
  30197. Creates a new vector which has the same direction
  30198. and with length equals to the length of this vector
  30199. divided by the scalar value <c>d</c>.
  30200. </summary>
  30201. <param name="d">The scalar divisor</param>
  30202. <returns>A new vector with divided length</returns>
  30203. </member>
  30204. <member name="M:NetTopologySuite.Mathematics.Vector3D.Dot(NetTopologySuite.Mathematics.Vector3D)">
  30205. <summary>
  30206. Computes the dot-product of this <see cref="T:NetTopologySuite.Mathematics.Vector3D"/> and <paramref name="v"/>
  30207. </summary>
  30208. <paramref name="v">The 2nd vector</paramref>
  30209. <returns>The dot product of the vectors</returns>
  30210. </member>
  30211. <member name="M:NetTopologySuite.Mathematics.Vector3D.Cross(NetTopologySuite.Mathematics.Vector3D)">
  30212. <summary>
  30213. Computes the cross-product of this <see cref="T:NetTopologySuite.Mathematics.Vector3D"/> and <paramref name="v"/>
  30214. </summary>
  30215. <paramref name="v">The 2nd vector</paramref>
  30216. <returns>The cross product of the vectors</returns>
  30217. </member>
  30218. <member name="M:NetTopologySuite.Mathematics.Vector3D.Length">
  30219. <summary>
  30220. Computes the length of this vector
  30221. </summary>
  30222. <returns>The length of this vector</returns>
  30223. </member>
  30224. <member name="M:NetTopologySuite.Mathematics.Vector3D.Length(NetTopologySuite.Geometries.Coordinate)">
  30225. <summary>
  30226. Computes the length of vector <paramref name="v"/>.
  30227. </summary>
  30228. <param name="v">A coordinate representing a 3D Vector</param>
  30229. <returns>The length of <paramref name="v"/></returns>
  30230. </member>
  30231. <member name="M:NetTopologySuite.Mathematics.Vector3D.Normalize">
  30232. <summary>
  30233. Computes a vector having identical direction
  30234. but normalized to have length 1.
  30235. </summary>
  30236. <returns>A new normalized vector</returns>
  30237. </member>
  30238. <member name="M:NetTopologySuite.Mathematics.Vector3D.Normalize(NetTopologySuite.Geometries.Coordinate)">
  30239. <summary>
  30240. Computes a vector having identical direction as <c>v</c>
  30241. but normalized to have length 1.
  30242. </summary>
  30243. <param name="v">A coordinate representing a 3D vector</param>
  30244. <returns>A coordinate representing the normalized vector</returns>
  30245. </member>
  30246. <member name="M:NetTopologySuite.Mathematics.Vector3D.ToString">
  30247. <inheritdoc cref="M:System.Object.ToString"/>
  30248. </member>
  30249. <member name="M:NetTopologySuite.Mathematics.Vector3D.Equals(System.Object)">
  30250. <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
  30251. </member>
  30252. <member name="M:NetTopologySuite.Mathematics.Vector3D.GetHashCode">
  30253. <inheritdoc cref="M:System.Object.GetHashCode"/>
  30254. </member>
  30255. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Addition(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30256. <summary>
  30257. Adds two vectors.
  30258. </summary>
  30259. <param name="left">The first vector to add.</param>
  30260. <param name="right">The second vector to add.</param>
  30261. <returns>The sum of the two vectors.</returns>
  30262. </member>
  30263. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30264. <summary>
  30265. Modulates a vector with another by performing component-wise multiplication.
  30266. </summary>
  30267. <param name="left">The first vector to multiply.</param>
  30268. <param name="right">The second vector to multiply.</param>
  30269. <returns>The multiplication of the two vectors.</returns>
  30270. </member>
  30271. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_UnaryPlus(NetTopologySuite.Mathematics.Vector3D)">
  30272. <summary>
  30273. Assert a vector (return it unchanged).
  30274. </summary>
  30275. <param name="value">The vector to assert (unchanged).</param>
  30276. <returns>The asserted (unchanged) vector.</returns>
  30277. </member>
  30278. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Subtraction(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30279. <summary>
  30280. Subtracts two vectors.
  30281. </summary>
  30282. <param name="left">The first vector to subtract.</param>
  30283. <param name="right">The second vector to subtract.</param>
  30284. <returns>The difference of the two vectors.</returns>
  30285. </member>
  30286. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_UnaryNegation(NetTopologySuite.Mathematics.Vector3D)">
  30287. <summary>
  30288. Reverses the direction of a given vector.
  30289. </summary>
  30290. <param name="value">The vector to negate.</param>
  30291. <returns>A vector facing in the opposite direction.</returns>
  30292. </member>
  30293. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(System.Double,NetTopologySuite.Mathematics.Vector3D)">
  30294. <summary>
  30295. Scales a vector by the given value.
  30296. </summary>
  30297. <param name="value">The vector to scale.</param>
  30298. <param name="scale">The amount by which to scale the vector.</param>
  30299. <returns>The scaled vector.</returns>
  30300. </member>
  30301. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Multiply(NetTopologySuite.Mathematics.Vector3D,System.Double)">
  30302. <summary>
  30303. Scales a vector by the given value.
  30304. </summary>
  30305. <param name="value">The vector to scale.</param>
  30306. <param name="scale">The amount by which to scale the vector.</param>
  30307. <returns>The scaled vector.</returns>
  30308. </member>
  30309. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Division(NetTopologySuite.Mathematics.Vector3D,System.Double)">
  30310. <summary>
  30311. Scales a vector by the given value.
  30312. </summary>
  30313. <param name="value">The vector to scale.</param>
  30314. <param name="scale">The amount by which to scale the vector.</param>
  30315. <returns>The scaled vector.</returns>
  30316. </member>
  30317. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Division(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30318. <summary>
  30319. Scales a vector by the given value.
  30320. </summary>
  30321. <param name="value">The vector to scale.</param>
  30322. <param name="scale">The amount by which to scale the vector.</param>
  30323. <returns>The scaled vector.</returns>
  30324. </member>
  30325. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Equality(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30326. <summary>
  30327. Tests for equality between two objects.
  30328. </summary>
  30329. <param name="left">The first value to compare.</param>
  30330. <param name="right">The second value to compare.</param>
  30331. <returns><c>true</c> if <paramref name="left"/> has the same value as <paramref name="right"/>; otherwise, <c>false</c>.</returns>
  30332. </member>
  30333. <member name="M:NetTopologySuite.Mathematics.Vector3D.op_Inequality(NetTopologySuite.Mathematics.Vector3D,NetTopologySuite.Mathematics.Vector3D)">
  30334. <summary>
  30335. Tests for inequality between two objects.
  30336. </summary>
  30337. <param name="left">The first value to compare.</param>
  30338. <param name="right">The second value to compare.</param>
  30339. <returns><c>true</c> if <paramref name="left"/> has a different value than <paramref name="right"/>; otherwise, <c>false</c>.</returns>
  30340. </member>
  30341. <member name="T:NetTopologySuite.Mathematics.VectorMath">
  30342. <summary>
  30343. Functions for performing vector mathematics.
  30344. </summary>
  30345. </member>
  30346. <member name="M:NetTopologySuite.Mathematics.VectorMath.NormalToTriangle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30347. <summary>
  30348. Computes the normal vector to the triangle p0-p1-p2. In order to compute the normal each
  30349. triangle coordinate must have a Z value. If this is not the case, the returned Coordinate
  30350. will have NaN values. The returned vector has unit length.
  30351. </summary>
  30352. <param name="p0">A point</param>
  30353. <param name="p1">A point</param>
  30354. <param name="p2">A point</param>
  30355. <returns>The normal vector to the triangle <paramref name="p0"/>-<paramref name="p1"/>-<paramref name="p2"/></returns>
  30356. </member>
  30357. <member name="M:NetTopologySuite.Mathematics.VectorMath.Normalize(NetTopologySuite.Geometries.Coordinate)">
  30358. <summary>
  30359. Normalizes the vector <paramref name="v"/>
  30360. </summary>
  30361. <param name="v">The normalized <paramref name="v"/></param>
  30362. </member>
  30363. <member name="M:NetTopologySuite.Mathematics.VectorMath.CrossProduct(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30364. <summary>
  30365. Computes the cross product of <paramref name="v1"/> and <paramref name="v2"/>
  30366. </summary>
  30367. <param name="v1">A vector</param>
  30368. <param name="v2">A vector</param>
  30369. <returns>The cross product of <paramref name="v1"/> and <paramref name="v2"/></returns>
  30370. </member>
  30371. <member name="M:NetTopologySuite.Mathematics.VectorMath.DotProduct(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  30372. <summary>
  30373. Computes the dot product of <paramref name="v1"/> and <paramref name="v2"/>
  30374. </summary>
  30375. <param name="v1">A vector</param>
  30376. <param name="v2">A vector</param>
  30377. <returns>The dot product of <paramref name="v1"/> and <paramref name="v2"/></returns>
  30378. </member>
  30379. <member name="M:NetTopologySuite.Mathematics.VectorMath.Det(System.Double,System.Double,System.Double,System.Double)">
  30380. <summary>
  30381. Computes the determinant of a 2x2 matrix
  30382. </summary>
  30383. <param name="a1">The m[0,0] value</param>
  30384. <param name="a2">The m[0,1] value</param>
  30385. <param name="b1">The m[1,0] value</param>
  30386. <param name="b2">The m[1,1] value</param>
  30387. <returns>The determinant</returns>
  30388. </member>
  30389. <member name="T:NetTopologySuite.Noding.BasicSegmentString">
  30390. <summary>
  30391. Represents a read-only list of contiguous line segments.
  30392. This can be used for detection of intersections or nodes.
  30393. <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s can carry a context object, which is useful
  30394. for preserving topological or parentage information.
  30395. <para/>
  30396. If adding nodes is required use <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>.
  30397. </summary>
  30398. <seealso cref="T:NetTopologySuite.Noding.NodedSegmentString"/>
  30399. </member>
  30400. <member name="M:NetTopologySuite.Noding.BasicSegmentString.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Object)">
  30401. <summary>
  30402. Creates a new segment string from a list of vertices.
  30403. </summary>
  30404. <param name="pts">the vertices of the segment string</param>
  30405. <param name="data">the user-defined data of this segment string (may be null)</param>
  30406. </member>
  30407. <member name="P:NetTopologySuite.Noding.BasicSegmentString.Context">
  30408. <summary>Gets the user-defined data for this segment string.
  30409. </summary>
  30410. </member>
  30411. <member name="M:NetTopologySuite.Noding.BasicSegmentString.GetCoordinate(System.Int32)">
  30412. <inheritdoc/>
  30413. </member>
  30414. <member name="P:NetTopologySuite.Noding.BasicSegmentString.Coordinates">
  30415. <inheritdoc/>
  30416. </member>
  30417. <member name="P:NetTopologySuite.Noding.BasicSegmentString.IsClosed">
  30418. <inheritdoc/>
  30419. </member>
  30420. <member name="P:NetTopologySuite.Noding.BasicSegmentString.Count">
  30421. <inheritdoc/>
  30422. </member>
  30423. <member name="M:NetTopologySuite.Noding.BasicSegmentString.GetSegmentOctant(System.Int32)">
  30424. <summary>
  30425. Gets the octant of the segment starting at vertex <c>index</c>
  30426. </summary>
  30427. <param name="index">the index of the vertex starting the segment. Must not be the last index in the vertex list</param>
  30428. <returns>octant of the segment at the vertex</returns>
  30429. </member>
  30430. <member name="M:NetTopologySuite.Noding.BasicSegmentString.ToString">
  30431. <inheritdoc cref="M:System.Object.ToString"/>
  30432. </member>
  30433. <member name="T:NetTopologySuite.Noding.BoundaryChainNoder">
  30434. <summary>
  30435. A noder which extracts chains of boundary segments
  30436. as {@link SegmentString}s from a polygonal coverage.
  30437. Boundary segments are those which are not duplicated in the input polygonal coverage.
  30438. Extracting chains of segments minimize the number of segment strings created,
  30439. which produces a more efficient topological graph structure.
  30440. <para/>
  30441. This enables fast overlay of polygonal coverages in <see cref="T:NetTopologySuite.Coverage.CoverageUnion"/>.
  30442. Using this noder is faster than <see cref="T:NetTopologySuite.Noding.SegmentExtractingNoder"/>
  30443. and <see cref="T:NetTopologySuite.Noding.BoundarySegmentNoder"/>.
  30444. <para/>
  30445. No precision reduction is carried out.
  30446. If that is required, another noder must be used (such as a snap-rounding noder),
  30447. or the input must be precision-reduced beforehand.
  30448. </summary>
  30449. <author>Martin Davis</author>
  30450. </member>
  30451. <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.#ctor">
  30452. <summary>
  30453. Creates a new boundary-extracting noder.
  30454. </summary>
  30455. </member>
  30456. <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30457. <inheritdoc/>
  30458. </member>
  30459. <member name="M:NetTopologySuite.Noding.BoundaryChainNoder.GetNodedSubstrings">
  30460. <inheritdoc/>
  30461. </member>
  30462. <member name="T:NetTopologySuite.Noding.BoundarySegmentNoder">
  30463. <summary>
  30464. A noder which extracts boundary line segments
  30465. as <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
  30466. Boundary segments are those which are not duplicated in the input.
  30467. It is appropriate for use with valid polygonal coverages.
  30468. <para/>
  30469. No precision reduction is carried out.
  30470. If that is required, another noder must be used (such as a snap-rounding noder),
  30471. or the input must be precision-reduced beforehand.
  30472. </summary>
  30473. <author>Martin Davis</author>
  30474. </member>
  30475. <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.#ctor">
  30476. <summary>
  30477. Creates a new segment-dissolving noder.
  30478. </summary>
  30479. </member>
  30480. <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30481. <inheritdoc/>
  30482. </member>
  30483. <member name="M:NetTopologySuite.Noding.BoundarySegmentNoder.GetNodedSubstrings">
  30484. <inheritdoc/>
  30485. </member>
  30486. <member name="T:NetTopologySuite.Noding.FastNodingValidator">
  30487. <summary>
  30488. Validates that a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s is correctly noded.
  30489. Indexing is used to improve performance.
  30490. </summary>
  30491. <remarks>
  30492. <para>
  30493. By default validation stops after a single
  30494. non-noded intersection is detected.
  30495. Alternatively, it can be requested to detect all intersections
  30496. by using the <see cref="P:NetTopologySuite.Noding.FastNodingValidator.FindAllIntersections"/> property.
  30497. <para/>
  30498. The validator does not check for topology collapse situations
  30499. (e.g. where two segment strings are fully co-incident).
  30500. <para/>
  30501. The validator checks for the following situations which indicated incorrect noding:
  30502. <list type="Bullen">
  30503. <item><description>Proper intersections between segments (i.e. the intersection is interior to both segments)</description></item>
  30504. <item><description>Intersections at an interior vertex (i.e. with an endpoint or another interior vertex)</description></item>
  30505. </list>
  30506. </para>
  30507. <para>
  30508. The client may either test the <see cref="P:NetTopologySuite.Noding.FastNodingValidator.IsValid"/> condition,
  30509. or request that a suitable <see cref="T:NetTopologySuite.Geometries.TopologyException"/> be thrown.
  30510. </para>
  30511. </remarks>
  30512. <seealso cref="T:NetTopologySuite.Noding.NodingValidator"/>
  30513. </member>
  30514. <member name="M:NetTopologySuite.Noding.FastNodingValidator.ComputeIntersections(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  30515. <summary>
  30516. Gets a list of all intersections found.
  30517. Intersections are represented as <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  30518. List is empty if none were found.
  30519. <param name="segStrings">A collection of SegmentStrings</param>
  30520. <returns>a list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/></returns>
  30521. </summary>
  30522. </member>
  30523. <member name="M:NetTopologySuite.Noding.FastNodingValidator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  30524. <summary>
  30525. Creates a new noding validator for a given set of linework.
  30526. </summary>
  30527. <param name="segStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</param>
  30528. </member>
  30529. <member name="P:NetTopologySuite.Noding.FastNodingValidator.FindAllIntersections">
  30530. <summary>
  30531. Gets or sets whether all intersections should be found.
  30532. </summary>
  30533. </member>
  30534. <member name="P:NetTopologySuite.Noding.FastNodingValidator.Intersections">
  30535. <summary>
  30536. Gets a list of all intersections found.
  30537. <remarks>
  30538. Intersections are represented as <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  30539. List is empty if none were found.
  30540. </remarks>
  30541. </summary>
  30542. </member>
  30543. <member name="P:NetTopologySuite.Noding.FastNodingValidator.IsValid">
  30544. <summary>
  30545. Checks for an intersection and reports if one is found.
  30546. </summary>
  30547. </member>
  30548. <member name="M:NetTopologySuite.Noding.FastNodingValidator.GetErrorMessage">
  30549. <summary>
  30550. Returns an error message indicating the segments containing the intersection.
  30551. </summary>
  30552. <returns>an error message documenting the intersection location</returns>
  30553. </member>
  30554. <member name="M:NetTopologySuite.Noding.FastNodingValidator.CheckValid">
  30555. <summary>
  30556. Checks for an intersection and throws
  30557. a TopologyException if one is found.
  30558. </summary>
  30559. <exception cref="T:NetTopologySuite.Geometries.TopologyException">if an intersection is found</exception>
  30560. </member>
  30561. <member name="T:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder">
  30562. <summary>
  30563. Finds if two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s intersect.
  30564. </summary>
  30565. <remarks>
  30566. Uses indexing for fast performance and to optimize repeated tests
  30567. against a target set of lines.
  30568. Short-circuited to return as soon an intersection is found.
  30569. <para/>
  30570. Immutable and thread-safe.
  30571. </remarks>
  30572. </member>
  30573. <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  30574. <summary>
  30575. Creates an intersection finder against a given set of segment strings.
  30576. </summary>
  30577. <param name="baseSegStrings">The segment strings to search for intersections</param>
  30578. </member>
  30579. <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.ElevationModel)">
  30580. <summary>
  30581. Creates an intersection finder against a given set of segment strings.
  30582. </summary>
  30583. <param name="baseSegStrings">The segment strings to search for intersections</param>
  30584. <param name="em">An elevation model, may be <c>null</c></param>
  30585. </member>
  30586. <member name="P:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.SegmentSetIntersector">
  30587. <summary>Gets the segment set intersector used by this class.</summary>
  30588. <remarks>This allows other uses of the same underlying indexed structure.</remarks>
  30589. </member>
  30590. <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.Intersects(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30591. <summary>
  30592. Tests for intersections with a given set of target <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  30593. </summary>
  30594. <param name="segStrings">The SegmentStrings to test</param>
  30595. <returns><c>true</c> if an intersection was found</returns>
  30596. </member>
  30597. <member name="M:NetTopologySuite.Noding.FastSegmentSetIntersectionFinder.Intersects(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.SegmentIntersectionDetector)">
  30598. <summary>
  30599. Tests for intersections with a given set of target <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  30600. using a given SegmentIntersectionDetector.
  30601. </summary>
  30602. <param name="segStrings">The SegmentStrings to test</param>
  30603. <param name="intDetector">The intersection detector to use</param>
  30604. <returns><c>true</c> if the detector reports intersections</returns>
  30605. </member>
  30606. <member name="T:NetTopologySuite.Noding.INodableSegmentString">
  30607. <summary>
  30608. An interface for classes which support adding nodes to a segment string.
  30609. </summary>
  30610. </member>
  30611. <member name="M:NetTopologySuite.Noding.INodableSegmentString.AddIntersection(NetTopologySuite.Geometries.Coordinate,System.Int32)">
  30612. <summary>Adds an intersection node for a given point and segment to this segment string.
  30613. </summary>
  30614. <param name="intPt">the location of the intersection</param>
  30615. <param name="segmentIndex">the index of the segment containing the intersection</param>
  30616. </member>
  30617. <member name="T:NetTopologySuite.Noding.INoder">
  30618. <summary>
  30619. Computes all intersections between segments in a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  30620. Intersections found are represented as <see cref="T:NetTopologySuite.Noding.SegmentNode" />s and added to the
  30621. <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in which they occur.
  30622. As a final step in the noding a new set of segment strings split at the nodes may be returned.
  30623. </summary>
  30624. </member>
  30625. <member name="M:NetTopologySuite.Noding.INoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30626. <summary>
  30627. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  30628. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
  30629. others may only add some or none at all.
  30630. </summary>
  30631. <param name="segStrings"></param>
  30632. </member>
  30633. <member name="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings">
  30634. <summary>
  30635. Returns a <see cref="T:System.Collections.Generic.IList`1" /> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  30636. The <see cref="T:NetTopologySuite.Noding.ISegmentString" />s have the same context as their parent.
  30637. </summary>
  30638. <returns></returns>
  30639. </member>
  30640. <member name="T:NetTopologySuite.Noding.InteriorIntersectionFinderAdder">
  30641. <summary>
  30642. Finds <b>interior</b> intersections
  30643. between line segments in <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s,
  30644. and adds them as nodes
  30645. using <see cref="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)"/>.
  30646. This class is used primarily for Snap-Rounding.
  30647. For general-purpose noding, use <see cref="T:NetTopologySuite.Noding.IntersectionAdder"/>.
  30648. </summary>
  30649. <seealso cref="T:NetTopologySuite.Noding.IntersectionAdder"/>
  30650. </member>
  30651. <member name="M:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
  30652. <summary>
  30653. Creates an intersection finder which finds all proper intersections.
  30654. </summary>
  30655. <param name="li">The <see cref="T:NetTopologySuite.Algorithm.LineIntersector" /> to use.</param>
  30656. </member>
  30657. <member name="P:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.InteriorIntersections">
  30658. <summary>
  30659. </summary>
  30660. </member>
  30661. <member name="M:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30662. <summary>
  30663. This method is called by clients
  30664. of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> class to process
  30665. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" />s being intersected.<br/>
  30666. Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
  30667. this call for segment pairs which they have determined do not intersect
  30668. (e.g. by an disjoint envelope test).
  30669. </summary>
  30670. <param name="e0"></param>
  30671. <param name="segIndex0"></param>
  30672. <param name="e1"></param>
  30673. <param name="segIndex1"></param>
  30674. </member>
  30675. <member name="P:NetTopologySuite.Noding.InteriorIntersectionFinderAdder.IsDone">
  30676. <summary>
  30677. Always process all intersections
  30678. </summary>
  30679. </member>
  30680. <member name="T:NetTopologySuite.Noding.IntersectionAdder">
  30681. <summary>
  30682. Computes the possible intersections between two line segments in <see cref="T:NetTopologySuite.Noding.ISegmentString" />s
  30683. and adds them to each string
  30684. using <see cref="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)"/>.
  30685. </summary>
  30686. </member>
  30687. <member name="M:NetTopologySuite.Noding.IntersectionAdder.IsAdjacentSegments(System.Int32,System.Int32)">
  30688. <summary>
  30689. </summary>
  30690. <param name="i1"></param>
  30691. <param name="i2"></param>
  30692. <returns></returns>
  30693. </member>
  30694. <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumIntersections">
  30695. <summary>
  30696. </summary>
  30697. </member>
  30698. <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumInteriorIntersections">
  30699. <summary>
  30700. </summary>
  30701. </member>
  30702. <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumProperIntersections">
  30703. <summary>
  30704. </summary>
  30705. </member>
  30706. <member name="F:NetTopologySuite.Noding.IntersectionAdder.NumTests">
  30707. <summary>
  30708. </summary>
  30709. </member>
  30710. <member name="M:NetTopologySuite.Noding.IntersectionAdder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
  30711. <summary>
  30712. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.IntersectionAdder"/> class.
  30713. </summary>
  30714. <param name="li"></param>
  30715. </member>
  30716. <member name="P:NetTopologySuite.Noding.IntersectionAdder.LineIntersector">
  30717. <summary>
  30718. </summary>
  30719. </member>
  30720. <member name="P:NetTopologySuite.Noding.IntersectionAdder.ProperIntersectionPoint">
  30721. <summary>
  30722. Returns the proper intersection point, or <c>null</c> if none was found.
  30723. </summary>
  30724. </member>
  30725. <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasIntersection">
  30726. <summary>
  30727. </summary>
  30728. </member>
  30729. <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasProperIntersection">
  30730. <summary>
  30731. A proper intersection is an intersection which is interior to at least two
  30732. line segments. Note that a proper intersection is not necessarily
  30733. in the interior of the entire <see cref="T:NetTopologySuite.Geometries.Geometry" />, since another edge may have
  30734. an endpoint equal to the intersection, which according to SFS semantics
  30735. can result in the point being on the Boundary of the <see cref="T:NetTopologySuite.Geometries.Geometry" />.
  30736. </summary>
  30737. </member>
  30738. <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasProperInteriorIntersection">
  30739. <summary>
  30740. A proper interior intersection is a proper intersection which is not
  30741. contained in the set of boundary nodes set for this <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" />.
  30742. </summary>
  30743. </member>
  30744. <member name="P:NetTopologySuite.Noding.IntersectionAdder.HasInteriorIntersection">
  30745. <summary>
  30746. An interior intersection is an intersection which is
  30747. in the interior of some segment.
  30748. </summary>
  30749. </member>
  30750. <member name="M:NetTopologySuite.Noding.IntersectionAdder.IsTrivialIntersection(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30751. <summary>
  30752. A trivial intersection is an apparent self-intersection which in fact
  30753. is simply the point shared by adjacent line segments.
  30754. Note that closed edges require a special check for the point shared by the beginning and end segments.
  30755. </summary>
  30756. <param name="e0"></param>
  30757. <param name="segIndex0"></param>
  30758. <param name="e1"></param>
  30759. <param name="segIndex1"></param>
  30760. <returns></returns>
  30761. </member>
  30762. <member name="M:NetTopologySuite.Noding.IntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30763. <summary>
  30764. This method is called by clients
  30765. of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> class to process
  30766. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" /> being intersected.<br/>
  30767. Note that some clients (such as <c>MonotoneChain</c>") may optimize away
  30768. this call for segment pairs which they have determined do not intersect
  30769. (e.g. by an disjoint envelope test).
  30770. </summary>
  30771. <param name="e0"></param>
  30772. <param name="segIndex0"></param>
  30773. <param name="e1"></param>
  30774. <param name="segIndex1"></param>
  30775. </member>
  30776. <member name="P:NetTopologySuite.Noding.IntersectionAdder.IsDone">
  30777. <summary>
  30778. Always process all intersections
  30779. </summary>
  30780. </member>
  30781. <member name="T:NetTopologySuite.Noding.ISegmentIntersector">
  30782. <summary>
  30783. Processes possible intersections detected by a <see cref="T:NetTopologySuite.Noding.INoder"/>.
  30784. </summary>
  30785. <remarks>
  30786. <para>
  30787. The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> is passed to a <see cref="T:NetTopologySuite.Noding.INoder" />.
  30788. </para>
  30789. The <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
  30790. method is called whenever the <see cref="T:NetTopologySuite.Noding.INoder" />
  30791. detects that two <see cref="T:NetTopologySuite.Noding.ISegmentString" />s might intersect.
  30792. <para>
  30793. This class may be used either to find all intersections, or
  30794. to detect the presence of an intersection. In the latter case,
  30795. Noders may choose to short-circuit their computation by calling the
  30796. <see cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/> property.
  30797. </para>
  30798. <para>
  30799. </para>
  30800. This class is an example of the <i>Strategy</i> pattern.
  30801. <para>
  30802. This class may be used either to find all intersections, or
  30803. to detect the presence of an intersection. In the latter case,
  30804. Noders may choose to short-circuit their computation by calling the
  30805. <see cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/> property.
  30806. </para>
  30807. </remarks>
  30808. </member>
  30809. <member name="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30810. <summary>
  30811. This method is called by clients
  30812. of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> interface to process
  30813. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString" />s being intersected.
  30814. </summary>
  30815. <param name="e0"></param>
  30816. <param name="segIndex0"></param>
  30817. <param name="e1"></param>
  30818. <param name="segIndex1"></param>
  30819. </member>
  30820. <member name="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone">
  30821. <summary>
  30822. Reports whether the client of this class needs to continue testing
  30823. all intersections in an arrangement.
  30824. </summary>
  30825. <returns>if there is no need to continue testing segments</returns>
  30826. </member>
  30827. <member name="T:NetTopologySuite.Noding.ISegmentString">
  30828. <summary>
  30829. An interface for classes which represent a sequence of contiguous line segments.
  30830. SegmentStrings can carry a context object, which is useful
  30831. for preserving topological or parentage information.
  30832. </summary>
  30833. </member>
  30834. <member name="P:NetTopologySuite.Noding.ISegmentString.Context">
  30835. <summary>
  30836. Gets/Sets the user-defined data for this segment string.
  30837. </summary>
  30838. </member>
  30839. <member name="P:NetTopologySuite.Noding.ISegmentString.Count">
  30840. <summary>
  30841. Gets the number of <c>Coordinate</c>s in this segment string.
  30842. </summary>
  30843. </member>
  30844. <member name="P:NetTopologySuite.Noding.ISegmentString.Coordinates">
  30845. <summary>
  30846. Points that make up <see cref="T:NetTopologySuite.Noding.ISegmentString"/>
  30847. </summary>
  30848. </member>
  30849. <member name="P:NetTopologySuite.Noding.ISegmentString.IsClosed">
  30850. <summary>
  30851. States whether ISegmentString is closed
  30852. </summary>
  30853. </member>
  30854. <member name="T:NetTopologySuite.Noding.SegmentStringEx">
  30855. <summary>
  30856. Extension methods to mimic JTS' default methods on SegmentString interface
  30857. </summary>
  30858. </member>
  30859. <member name="M:NetTopologySuite.Noding.SegmentStringEx.GetCoordinate(NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30860. <summary>
  30861. Gets the segment string <c>Coordinate</c> at a given index
  30862. </summary>
  30863. <param name="self">A segment string forming a ring</param>
  30864. <param name="idx">An index</param>
  30865. <returns>The <c>Coordinate</c> at the index</returns>
  30866. </member>
  30867. <member name="M:NetTopologySuite.Noding.SegmentStringEx.PrevInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30868. <summary>
  30869. Gets the previous vertex in a ring from a vertex index.
  30870. </summary>
  30871. <param name="self">A segment string forming a ring</param>
  30872. <param name="index">The vertex index</param>
  30873. <returns>The previous vertex in the ring</returns>
  30874. <seealso cref="P:NetTopologySuite.Noding.ISegmentString.IsClosed"/>
  30875. </member>
  30876. <member name="M:NetTopologySuite.Noding.SegmentStringEx.NextInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
  30877. <summary>
  30878. Gets the next vertex in a ring from a vertex index.
  30879. </summary>
  30880. <param name="self">A segment string forming a ring</param>
  30881. <param name="index">The vertex index</param>
  30882. <returns>The next vertex in the ring</returns>
  30883. <seealso cref="P:NetTopologySuite.Noding.ISegmentString.IsClosed"/>
  30884. </member>
  30885. <member name="T:NetTopologySuite.Noding.IteratedNoder">
  30886. <summary>
  30887. Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s completely.
  30888. The set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s is fully noded;
  30889. i.e. noding is repeated until no further intersections are detected.
  30890. <para>
  30891. Iterated noding using a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating" /> precision model is not guaranteed to converge,
  30892. due to round off error. This problem is detected and an exception is thrown.
  30893. Clients can choose to rerun the noding using a lower precision model.
  30894. </para>
  30895. </summary>
  30896. </member>
  30897. <member name="F:NetTopologySuite.Noding.IteratedNoder.MaxIterations">
  30898. <summary>
  30899. </summary>
  30900. </member>
  30901. <member name="M:NetTopologySuite.Noding.IteratedNoder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  30902. <summary>
  30903. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.IteratedNoder"/> class.
  30904. </summary>
  30905. <param name="pm"></param>
  30906. </member>
  30907. <member name="P:NetTopologySuite.Noding.IteratedNoder.MaximumIterations">
  30908. <summary>
  30909. Gets/Sets the maximum number of noding iterations performed before
  30910. the noding is aborted. Experience suggests that this should rarely need to be changed
  30911. from the default. The default is <see cref="F:NetTopologySuite.Noding.IteratedNoder.MaxIterations" />.
  30912. </summary>
  30913. </member>
  30914. <member name="M:NetTopologySuite.Noding.IteratedNoder.GetNodedSubstrings">
  30915. <summary>
  30916. Returns a <see cref="T:System.Collections.IList"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  30917. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
  30918. </summary>
  30919. <returns></returns>
  30920. </member>
  30921. <member name="M:NetTopologySuite.Noding.IteratedNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30922. <summary>
  30923. Fully nodes a list of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s, i.e. performs noding iteratively
  30924. until no intersections are found between segments.
  30925. Maintains labelling of edges correctly through the noding.
  30926. </summary>
  30927. <param name="segStrings">A collection of SegmentStrings to be noded.</param>
  30928. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If the iterated noding fails to converge.</exception>
  30929. </member>
  30930. <member name="M:NetTopologySuite.Noding.IteratedNoder.Node(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},System.Int32[])">
  30931. <summary>
  30932. Node the input segment strings once
  30933. and create the split edges between the nodes.
  30934. </summary>
  30935. <param name="segStrings"></param>
  30936. <param name="numInteriorIntersections"></param>
  30937. </member>
  30938. <member name="T:NetTopologySuite.Noding.MCIndexNoder">
  30939. <summary>
  30940. Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s using a index based
  30941. on <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain" />s and a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" />.
  30942. The <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" /> used should be something that supports
  30943. envelope (range) queries efficiently (such as a <c>Quadtree</c>"
  30944. or <see cref="T:NetTopologySuite.Index.HPRtree.HPRtree`1" />.
  30945. <para/>
  30946. The noder supports using an overlap tolerance distance.
  30947. This allows determining segment intersection using a buffer for uses
  30948. involving snapping with a distance tolerance.
  30949. </summary>
  30950. </member>
  30951. <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor">
  30952. <summary>
  30953. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
  30954. </summary>
  30955. </member>
  30956. <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
  30957. <summary>
  30958. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
  30959. </summary>
  30960. <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> to use.</param>
  30961. </member>
  30962. <member name="M:NetTopologySuite.Noding.MCIndexNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector,System.Double)">
  30963. <summary>
  30964. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> class.
  30965. </summary>
  30966. <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> to use.</param>
  30967. <param name="overlapTolerance">The expansion distance for overlap tests</param>
  30968. </member>
  30969. <member name="P:NetTopologySuite.Noding.MCIndexNoder.MonotoneChains">
  30970. <summary>
  30971. </summary>
  30972. </member>
  30973. <member name="P:NetTopologySuite.Noding.MCIndexNoder.Index">
  30974. <summary>
  30975. </summary>
  30976. </member>
  30977. <member name="M:NetTopologySuite.Noding.MCIndexNoder.GetNodedSubstrings">
  30978. <summary>
  30979. Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  30980. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
  30981. </summary>
  30982. <returns></returns>
  30983. </member>
  30984. <member name="M:NetTopologySuite.Noding.MCIndexNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  30985. <summary>
  30986. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  30987. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s;
  30988. others may only add some or none at all.
  30989. </summary>
  30990. <param name="inputSegStrings"></param>
  30991. </member>
  30992. <member name="M:NetTopologySuite.Noding.MCIndexNoder.IntersectChains">
  30993. <summary>
  30994. </summary>
  30995. </member>
  30996. <member name="M:NetTopologySuite.Noding.MCIndexNoder.Add(NetTopologySuite.Noding.ISegmentString)">
  30997. <summary>
  30998. </summary>
  30999. <param name="segStr"></param>
  31000. </member>
  31001. <member name="T:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction">
  31002. <summary>
  31003. </summary>
  31004. </member>
  31005. <member name="M:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
  31006. <summary>
  31007. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction"/> class.
  31008. </summary>
  31009. <param name="si">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /></param>
  31010. </member>
  31011. <member name="M:NetTopologySuite.Noding.MCIndexNoder.SegmentOverlapAction.Overlap(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32,NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
  31012. <summary>
  31013. </summary>
  31014. <param name="mc1"></param>
  31015. <param name="start1"></param>
  31016. <param name="mc2"></param>
  31017. <param name="start2"></param>
  31018. </member>
  31019. <member name="T:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector">
  31020. <summary>
  31021. Intersects two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s using a index based
  31022. on <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s and a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1"/>.
  31023. <para/>
  31024. Thread-safe and immutable.
  31025. </summary>
  31026. </member>
  31027. <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  31028. <summary>
  31029. Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  31030. </summary>
  31031. <param name="baseSegStrings">The base segment strings to intersect</param>
  31032. </member>
  31033. <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Geometries.Envelope)">
  31034. <summary>
  31035. Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  31036. </summary>
  31037. <param name="baseSegStrings">The base segment strings to intersect</param>
  31038. <param name="env">The envelope</param>
  31039. </member>
  31040. <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},System.Double)">
  31041. <summary>
  31042. Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  31043. </summary>
  31044. <param name="baseSegStrings">The base segment strings to intersect</param>
  31045. <param name="overlapTolerance">A tolerance for overlapping segments</param>
  31046. </member>
  31047. <member name="P:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.Index">
  31048. <summary>
  31049. Gets the index constructed over the base segment strings
  31050. </summary>
  31051. <remarks>NOTE: To retain thread-safety, treat returned value as immutable</remarks>
  31052. </member>
  31053. <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
  31054. <summary>
  31055. Calls <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
  31056. for all <i>candidate</i> intersections between
  31057. the given collection of SegmentStrings and the set of indexed segments.
  31058. </summary>
  31059. <param name="segStrings">A set of segments to intersect</param>
  31060. <param name="segInt">The <c>SegmentIntersector</c> to use</param>
  31061. </member>
  31062. <member name="T:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.SegmentOverlapAction">
  31063. <summary>
  31064. Segment overlap action class
  31065. </summary>
  31066. </member>
  31067. <member name="M:NetTopologySuite.Noding.MCIndexSegmentSetMutualIntersector.SegmentOverlapAction.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
  31068. <summary>
  31069. Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/>
  31070. </summary>
  31071. <param name="si">The segment intersector to use</param>
  31072. </member>
  31073. <member name="T:NetTopologySuite.Noding.NodedSegmentString">
  31074. <summary>
  31075. Represents a list of contiguous line segments, and supports noding the segments.
  31076. The line segments are represented by an array of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
  31077. Intended to optimize the noding of contiguous segments by
  31078. reducing the number of allocated objects.
  31079. <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s can carry a context object, which is useful
  31080. for preserving topological or parentage information.
  31081. All noded substrings are initialized with the same context object.
  31082. <para/>
  31083. For read-only applications use <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>,
  31084. which is (slightly)more lightweight.
  31085. </summary>
  31086. <seealso cref="T:NetTopologySuite.Noding.BasicSegmentString"/>
  31087. </member>
  31088. <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetNodedSubstrings(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  31089. <summary>
  31090. Gets the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which result from splitting this string at node points.
  31091. </summary>
  31092. <param name="segStrings">A collection of NodedSegmentStrings</param>
  31093. <returns>A collection of NodedSegmentStrings representing the substrings</returns>
  31094. </member>
  31095. <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetNodedSubstrings(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},System.Collections.Generic.ICollection{NetTopologySuite.Noding.ISegmentString})">
  31096. <summary>
  31097. Adds the noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which result from splitting this string at node points.
  31098. </summary>
  31099. <param name="segStrings">A collection of NodedSegmentStrings</param>
  31100. <param name="resultEdgelist">A list which will collect the NodedSegmentStrings representing the substrings</param>
  31101. </member>
  31102. <member name="M:NetTopologySuite.Noding.NodedSegmentString.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Object)">
  31103. <summary>
  31104. Creates an instance from a list of vertices and optional data object.
  31105. </summary>
  31106. <param name="pts">The vertices of the segment string.</param>
  31107. <param name="context">The user-defined data of this segment string (may be null).</param>
  31108. </member>
  31109. <member name="M:NetTopologySuite.Noding.NodedSegmentString.#ctor(NetTopologySuite.Noding.ISegmentString)">
  31110. <summary>
  31111. Creates a new instance from a <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
  31112. </summary>
  31113. <param name="ss">The segment string to use.</param>
  31114. </member>
  31115. <member name="P:NetTopologySuite.Noding.NodedSegmentString.Context">
  31116. <summary>
  31117. Gets/Sets the user-defined data for this segment string.
  31118. </summary>
  31119. <remarks>In JTS this property is called <i>Data</i></remarks>
  31120. </member>
  31121. <member name="P:NetTopologySuite.Noding.NodedSegmentString.NodeList">
  31122. <summary>
  31123. </summary>
  31124. </member>
  31125. <member name="P:NetTopologySuite.Noding.NodedSegmentString.Count">
  31126. <summary>
  31127. </summary>
  31128. <value></value>
  31129. </member>
  31130. <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetCoordinate(System.Int32)">
  31131. <summary>
  31132. </summary>
  31133. <param name="i"></param>
  31134. <returns></returns>
  31135. </member>
  31136. <member name="P:NetTopologySuite.Noding.NodedSegmentString.Coordinates">
  31137. <summary>
  31138. </summary>
  31139. </member>
  31140. <member name="P:NetTopologySuite.Noding.NodedSegmentString.NodedCoordinates">
  31141. <summary>
  31142. Gets a list of coordinates with all nodes included.
  31143. </summary>
  31144. <returns>An array of coordinates including nodes</returns>
  31145. </member>
  31146. <member name="P:NetTopologySuite.Noding.NodedSegmentString.IsClosed">
  31147. <summary>
  31148. </summary>
  31149. </member>
  31150. <member name="P:NetTopologySuite.Noding.NodedSegmentString.HasNodes">
  31151. <summary>
  31152. Gets a value indicating if any nodes have been added.
  31153. </summary>
  31154. </member>
  31155. <member name="M:NetTopologySuite.Noding.NodedSegmentString.GetSegmentOctant(System.Int32)">
  31156. <summary>
  31157. Gets the octant of the segment starting at vertex <c>index</c>.
  31158. </summary>
  31159. <param name="index">
  31160. The index of the vertex starting the segment.
  31161. Must not be the last index in the vertex list
  31162. </param>
  31163. <returns>The octant of the segment at the vertex</returns>
  31164. </member>
  31165. <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersections(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32)">
  31166. <summary>
  31167. Adds EdgeIntersections for one or both
  31168. intersections found for a segment of an edge to the edge intersection list.
  31169. </summary>
  31170. <param name="li"></param>
  31171. <param name="segmentIndex"></param>
  31172. <param name="geomIndex"></param>
  31173. </member>
  31174. <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,System.Int32,System.Int32,System.Int32)">
  31175. <summary>
  31176. Add an <see cref="T:NetTopologySuite.Noding.SegmentNode" /> for intersection intIndex.
  31177. An intersection that falls exactly on a vertex
  31178. of the <see cref="T:NetTopologySuite.Noding.NodedSegmentString" /> is normalized
  31179. to use the higher of the two possible segmentIndexes.
  31180. </summary>
  31181. <param name="li"></param>
  31182. <param name="segmentIndex"></param>
  31183. <param name="geomIndex"></param>
  31184. <param name="intIndex"></param>
  31185. </member>
  31186. <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersection(NetTopologySuite.Geometries.Coordinate,System.Int32)">
  31187. <summary>
  31188. </summary>
  31189. <param name="intPt"></param>
  31190. <param name="segmentIndex"></param>
  31191. </member>
  31192. <member name="M:NetTopologySuite.Noding.NodedSegmentString.AddIntersectionNode(NetTopologySuite.Geometries.Coordinate,System.Int32)">
  31193. <summary>
  31194. Adds an intersection node for a given point and segment to this segment string.
  31195. If an intersection already exists for this exact location, the existing
  31196. node will be returned.
  31197. </summary>
  31198. <param name="intPt">The location of the intersection</param>
  31199. <param name="segmentIndex">The index of the segment containing the intersection</param>
  31200. <returns>the intersection node for the point</returns>
  31201. </member>
  31202. <member name="M:NetTopologySuite.Noding.NodedSegmentString.ToString">
  31203. <inheritdoc cref="M:System.Object.ToString"/>
  31204. </member>
  31205. <member name="T:NetTopologySuite.Noding.NodingIntersectionFinder">
  31206. <summary>
  31207. Finds non-noded intersections in a set of {@link SegmentString}s,
  31208. if any exist.
  31209. <para/>
  31210. Non-noded intersections include:
  31211. <list type="Bullet">
  31212. <item><term>Interior intersections</term><description>which lie in the interior of a segment
  31213. (with another segment interior or with a vertex or endpoint)</description></item>
  31214. <item><term>Vertex intersections</term><description>which occur at vertices in the interior of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
  31215. (with a segment string endpoint or with another interior vertex)</description></item>
  31216. </list>
  31217. The finder can be limited to finding only interior intersections
  31218. by setting <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersectionsOnly"/>.
  31219. <para/>
  31220. By default only the first intersection is found,
  31221. but all can be found by setting <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.FindAllIntersections"/>.
  31222. </summary>
  31223. </member>
  31224. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateAnyIntersectionFinder(NetTopologySuite.Algorithm.LineIntersector)">
  31225. <summary>
  31226. Creates a finder which tests if there is at least one intersection.
  31227. Uses short-circuiting for efficient performance.
  31228. The intersection found is recorded.
  31229. </summary>
  31230. <param name="li">A line intersector.</param>
  31231. <returns>A finder which tests if there is at least one intersection.</returns>
  31232. </member>
  31233. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateAllIntersectionsFinder(NetTopologySuite.Algorithm.LineIntersector)">
  31234. <summary>
  31235. Creates a finder which tests if there is at least one intersection.
  31236. The intersections are recorded for later inspection.
  31237. </summary>
  31238. <param name="li">A line intersector.</param>
  31239. <returns>A finder which finds all intersections.</returns>
  31240. </member>
  31241. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateInteriorIntersectionsFinder(NetTopologySuite.Algorithm.LineIntersector)">
  31242. <summary>
  31243. Creates a finder which finds all interior intersections.
  31244. The intersections are recorded for later inspection.
  31245. </summary>
  31246. <param name="li">A line intersector</param>
  31247. <returns>A finder which finds all interior intersections.</returns>
  31248. </member>
  31249. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateIntersectionCounter(NetTopologySuite.Algorithm.LineIntersector)">
  31250. <summary>
  31251. Creates a finder which counts all intersections.
  31252. The intersections are note recorded to reduce memory usage.
  31253. </summary>
  31254. <param name="li">A line intersector.</param>
  31255. <returns>A finder which counts all intersections.</returns>
  31256. </member>
  31257. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.CreateInteriorIntersectionCounter(NetTopologySuite.Algorithm.LineIntersector)">
  31258. <summary>
  31259. Creates a finder which counts all interior intersections.
  31260. The intersections are note recorded to reduce memory usage.
  31261. </summary>
  31262. <param name="li">A line intersector.</param>
  31263. <returns>A finder which counts all interior intersections.</returns>
  31264. </member>
  31265. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
  31266. <summary>
  31267. Creates an intersection finder which finds an interior intersection if one exists
  31268. </summary>
  31269. <param name="li">the LineIntersector to use</param>
  31270. </member>
  31271. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.FindAllIntersections">
  31272. <summary>
  31273. Gets/Sets whether all intersections should be computed.
  31274. <remarks>
  31275. When this is <c>false</c> (the default value), the value of <see cref="P:NetTopologySuite.Noding.NodingIntersectionFinder.IsDone"/>
  31276. is <c>true</c> after the first intersection is found.
  31277. Default is <c>false</c>.
  31278. </remarks>
  31279. </summary>
  31280. </member>
  31281. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersectionsOnly">
  31282. <summary>
  31283. Gets or sets a value indicating whether only interior (proper) intersections will be found.
  31284. </summary>
  31285. </member>
  31286. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.KeepIntersections">
  31287. <summary>
  31288. Gets/Sets whether intersection points are recorded.
  31289. <remarks>
  31290. If the only need is to count intersection points, this can be set to <c>false</c>.
  31291. Default is <c>true</c>.
  31292. </remarks>
  31293. </summary>
  31294. </member>
  31295. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.CheckEndSegmentsOnly">
  31296. <summary>
  31297. Gets/Sets whether only end segments should be tested for intersection.
  31298. This is a performance optimization that may be used if
  31299. the segments have been previously noded by an appropriate algorithm.
  31300. It may be known that any potential noding failures will occur only in
  31301. end segments.
  31302. </summary>
  31303. </member>
  31304. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.HasIntersection">
  31305. <summary>
  31306. Tests whether an intersection was found.
  31307. </summary>
  31308. </member>
  31309. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Intersections">
  31310. <summary>
  31311. Gets the intersections found.
  31312. </summary>
  31313. <returns>A list of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>.</returns>
  31314. </member>
  31315. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Count">
  31316. <summary>
  31317. Gets the count of intersections found.
  31318. </summary>
  31319. <returns>The intersection count.</returns>
  31320. </member>
  31321. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.InteriorIntersection">
  31322. <summary>
  31323. Gets the computed location of the intersection.
  31324. Due to round-off, the location may not be exact.
  31325. </summary>
  31326. </member>
  31327. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.Intersection">
  31328. <summary>
  31329. Gets the computed location of the intersection.
  31330. Due to round-off, the location may not be exact.
  31331. </summary>
  31332. </member>
  31333. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.IntersectionSegments">
  31334. <summary>
  31335. Gets the endpoints of the intersecting segments.
  31336. </summary>
  31337. </member>
  31338. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  31339. <summary>
  31340. This method is called by clients of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
  31341. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.<br/>
  31342. Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
  31343. this call for segment pairs which they have determined do not intersect
  31344. (e.g. by an disjoint envelope test).
  31345. </summary>
  31346. <param name="e0"></param>
  31347. <param name="segIndex0"></param>
  31348. <param name="e1"></param>
  31349. <param name="segIndex1"></param>
  31350. </member>
  31351. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.IsInteriorVertexIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
  31352. <summary>
  31353. Tests if an intersection occurs between a segmentString interior vertex and another vertex.
  31354. Note that intersections between two endpoint vertices are valid noding,
  31355. and are not flagged.
  31356. </summary>
  31357. <param name="p00">A segment vertex</param>
  31358. <param name="p01">A segment vertex</param>
  31359. <param name="p10">A segment vertex</param>
  31360. <param name="p11">A segment vertex</param>
  31361. <param name="isEnd00">true if vertex is a segmentString endpoint</param>
  31362. <param name="isEnd01">true if vertex is a segmentString endpoint</param>
  31363. <param name="isEnd10">true if vertex is a segmentString endpoint</param>
  31364. <param name="isEnd11">true if vertex is a segmentString endpoint</param>
  31365. <returns><c>true</c> if an intersection is found/</returns>
  31366. </member>
  31367. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.IsInteriorVertexIntersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Boolean,System.Boolean)">
  31368. <summary>
  31369. Tests if two vertices with at least one in a segmentString interior
  31370. are equal.
  31371. </summary>
  31372. <param name="p0">A segment vertex</param>
  31373. <param name="p1">A segment vertex</param>
  31374. <param name="isEnd0"><c>true</c> if vertex is a segmentString endpoint</param>
  31375. <param name="isEnd1"><c>true</c> if vertex is a segmentString endpoint</param>
  31376. <returns><c>true</c> if an intersection is found</returns>
  31377. </member>
  31378. <member name="M:NetTopologySuite.Noding.NodingIntersectionFinder.IsEndSegment(NetTopologySuite.Noding.ISegmentString,System.Int32)">
  31379. <summary>
  31380. Tests whether a segment in a <see cref="T:NetTopologySuite.Noding.ISegmentString" /> is an end segment.
  31381. (either the first or last).
  31382. </summary>
  31383. <param name="segStr">a segment string</param>
  31384. <param name="index">the index of a segment in the segment string</param>
  31385. <returns>true if the segment is an end segment</returns>
  31386. </member>
  31387. <member name="P:NetTopologySuite.Noding.NodingIntersectionFinder.IsDone">
  31388. <summary>
  31389. </summary>
  31390. </member>
  31391. <member name="T:NetTopologySuite.Noding.NodingValidator">
  31392. <summary>
  31393. Validates that a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s is correctly noded.
  31394. Throws an appropriate exception if an noding error is found.
  31395. </summary>
  31396. </member>
  31397. <member name="M:NetTopologySuite.Noding.NodingValidator.#ctor(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  31398. <summary>
  31399. Creates a new validator for the given collection
  31400. of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  31401. </summary>
  31402. <param name="segStrings">The seg strings.</param>
  31403. </member>
  31404. <member name="M:NetTopologySuite.Noding.NodingValidator.CheckValid">
  31405. <summary>
  31406. Checks whether the supplied segment strings
  31407. are correctly noded. Throws an exception if they are not.
  31408. </summary>
  31409. </member>
  31410. <member name="M:NetTopologySuite.Noding.NodingValidator.CheckCollapses">
  31411. <summary>
  31412. Checks if a segment string contains a segment pattern a-b-a (which implies a self-intersection).
  31413. </summary>
  31414. </member>
  31415. <member name="M:NetTopologySuite.Noding.NodingValidator.CheckInteriorIntersections">
  31416. <summary>
  31417. Checks all pairs of segments for intersections at an interior point of a segment.
  31418. </summary>
  31419. </member>
  31420. <member name="M:NetTopologySuite.Noding.NodingValidator.CheckEndPtVertexIntersections">
  31421. <summary>
  31422. Checks for intersections between an endpoint of a segment string
  31423. and an interior vertex of another segment string
  31424. </summary>
  31425. </member>
  31426. <member name="T:NetTopologySuite.Noding.Octants">
  31427. <summary>
  31428. Octants in the Cartesian plane.
  31429. Octants are numbered as follows:
  31430. <para>
  31431. \2|1/
  31432. 3 \|/ 0
  31433. ---+--
  31434. 4 /|\ 7
  31435. /5|6\
  31436. </para>
  31437. If line segments lie along a coordinate axis, the octant is the lower of the two possible values.
  31438. </summary>
  31439. </member>
  31440. <member name="F:NetTopologySuite.Noding.Octants.Null">
  31441. <summary>
  31442. </summary>
  31443. </member>
  31444. <member name="F:NetTopologySuite.Noding.Octants.Zero">
  31445. <summary>
  31446. </summary>
  31447. </member>
  31448. <member name="F:NetTopologySuite.Noding.Octants.One">
  31449. <summary>
  31450. </summary>
  31451. </member>
  31452. <member name="F:NetTopologySuite.Noding.Octants.Two">
  31453. <summary>
  31454. </summary>
  31455. </member>
  31456. <member name="F:NetTopologySuite.Noding.Octants.Three">
  31457. <summary>
  31458. </summary>
  31459. </member>
  31460. <member name="F:NetTopologySuite.Noding.Octants.Four">
  31461. <summary>
  31462. </summary>
  31463. </member>
  31464. <member name="F:NetTopologySuite.Noding.Octants.Five">
  31465. <summary>
  31466. </summary>
  31467. </member>
  31468. <member name="F:NetTopologySuite.Noding.Octants.Six">
  31469. <summary>
  31470. </summary>
  31471. </member>
  31472. <member name="F:NetTopologySuite.Noding.Octants.Seven">
  31473. <summary>
  31474. </summary>
  31475. </member>
  31476. <member name="T:NetTopologySuite.Noding.Octant">
  31477. <summary>
  31478. Methods for computing and working with <see cref="T:NetTopologySuite.Noding.Octants"/> of the Cartesian plane.
  31479. </summary>
  31480. </member>
  31481. <member name="M:NetTopologySuite.Noding.Octant.GetOctant(System.Double,System.Double)">
  31482. <summary>
  31483. Returns the octant of a directed line segment (specified as x and y
  31484. displacements, which cannot both be 0).
  31485. </summary>
  31486. <param name="dx"></param>
  31487. <param name="dy"></param>
  31488. <returns></returns>
  31489. </member>
  31490. <member name="M:NetTopologySuite.Noding.Octant.GetOctant(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  31491. <summary>
  31492. Returns the octant of a directed line segment from p0 to p1.
  31493. </summary>
  31494. <param name="p0"></param>
  31495. <param name="p1"></param>
  31496. <returns></returns>
  31497. </member>
  31498. <member name="T:NetTopologySuite.Noding.OrientedCoordinateArray">
  31499. <summary>
  31500. Allows comparing <see cref="T:NetTopologySuite.Geometries.Coordinate" /> arrays in an orientation-independent way.
  31501. </summary>
  31502. </member>
  31503. <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  31504. <summary>
  31505. Creates a new <see cref="T:NetTopologySuite.Noding.OrientedCoordinateArray" />}
  31506. for the given <see cref="T:NetTopologySuite.Geometries.Coordinate" /> array.
  31507. </summary>
  31508. <param name="pts"></param>
  31509. </member>
  31510. <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.Orientation(NetTopologySuite.Geometries.Coordinate[])">
  31511. <summary>
  31512. Computes the canonical orientation for a coordinate array.
  31513. </summary>
  31514. <param name="pts"></param>
  31515. <returns>
  31516. <c>true</c> if the points are oriented forwards <br/>
  31517. or <c>false</c>if the points are oriented in reverse.
  31518. </returns>
  31519. </member>
  31520. <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.CompareTo(System.Object)">
  31521. <summary>
  31522. Compares two <see cref="T:NetTopologySuite.Noding.OrientedCoordinateArray" />s for their relative order.
  31523. </summary>
  31524. <param name="o1"></param>
  31525. <returns>
  31526. -1 this one is smaller;<br/>
  31527. 0 the two objects are equal;<br/>
  31528. 1 this one is greater.
  31529. </returns>
  31530. </member>
  31531. <member name="M:NetTopologySuite.Noding.OrientedCoordinateArray.CompareOriented(NetTopologySuite.Geometries.Coordinate[],System.Boolean,NetTopologySuite.Geometries.Coordinate[],System.Boolean)">
  31532. <summary>
  31533. </summary>
  31534. <param name="pts1"></param>
  31535. <param name="orientation1"></param>
  31536. <param name="pts2"></param>
  31537. <param name="orientation2"></param>
  31538. <returns></returns>
  31539. </member>
  31540. <member name="T:NetTopologySuite.Noding.ScaledNoder">
  31541. <summary>
  31542. Wraps a <see cref="T:NetTopologySuite.Noding.INoder" /> and transforms its input into the integer domain.
  31543. This is intended for use with Snap-Rounding noders,
  31544. which typically are only intended to work in the integer domain.
  31545. <para>
  31546. Clients should be aware that rescaling can involve loss of precision,
  31547. which can cause zero-length line segments to be created.
  31548. These in turn can cause problems when used to build a planar graph.
  31549. This situation should be checked for and collapsed segments removed if necessary.
  31550. </para>
  31551. </summary>
  31552. </member>
  31553. <member name="M:NetTopologySuite.Noding.ScaledNoder.#ctor(NetTopologySuite.Noding.INoder,System.Double)">
  31554. <summary>
  31555. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.ScaledNoder"/> class.
  31556. </summary>
  31557. <param name="noder">The noder to use</param>
  31558. <param name="scaleFactor">The scale factor to use</param>
  31559. </member>
  31560. <member name="P:NetTopologySuite.Noding.ScaledNoder.IsIntegerPrecision">
  31561. <summary>
  31562. </summary>
  31563. </member>
  31564. <member name="M:NetTopologySuite.Noding.ScaledNoder.GetNodedSubstrings">
  31565. <summary>
  31566. </summary>
  31567. <returns></returns>
  31568. </member>
  31569. <member name="M:NetTopologySuite.Noding.ScaledNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  31570. <summary>
  31571. </summary>
  31572. <param name="inputSegStrings"></param>
  31573. </member>
  31574. <member name="M:NetTopologySuite.Noding.ScaledNoder.Scale(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  31575. <summary>
  31576. </summary>
  31577. <param name="segStrings"></param>
  31578. <returns></returns>
  31579. </member>
  31580. <member name="M:NetTopologySuite.Noding.ScaledNoder.Scale(NetTopologySuite.Geometries.Coordinate[])">
  31581. <summary>
  31582. </summary>
  31583. <param name="pts"></param>
  31584. <returns></returns>
  31585. </member>
  31586. <member name="T:NetTopologySuite.Noding.SegmentExtractingNoder">
  31587. <summary>
  31588. A noder which extracts all line segments
  31589. as <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  31590. This enables fast overlay of geometries which are known to be already fully noded.
  31591. In particular, it provides fast union of polygonal and linear coverages.
  31592. Unioning a noded set of lines is an effective way
  31593. to perform line merging and line dissolving.
  31594. <para/>
  31595. No precision reduction is carried out.
  31596. If that is required, another noder must be used (such as a snap-rounding noder),
  31597. or the input must be precision-reduced beforehand.
  31598. </summary>
  31599. <author>Martin Davis</author>
  31600. </member>
  31601. <member name="T:NetTopologySuite.Noding.SegmentIntersectionDetector">
  31602. <summary>
  31603. Detects and records an intersection between two <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
  31604. if one exists. Only a single intersection is recorded.
  31605. </summary>
  31606. <remarks>
  31607. This strategy can be configured to search for <b>proper</b> intersections.
  31608. In this case, the presence of <i>any</i> intersection will still be recorded,
  31609. but searching will continue until either a proper intersection has been found
  31610. or no intersections are detected.
  31611. </remarks>
  31612. </member>
  31613. <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor">
  31614. <summary>
  31615. Creates an intersection finder using a <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
  31616. </summary>
  31617. </member>
  31618. <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor(NetTopologySuite.Algorithm.ElevationModel)">
  31619. <summary>
  31620. Creates an intersection finder using a <see cref="T:NetTopologySuite.Algorithm.RobustLineIntersector"/>
  31621. with an <see cref="T:NetTopologySuite.Algorithm.ElevationModel"/>
  31622. </summary>
  31623. <param name="em">An elevation model. May be <c>null</c></param>
  31624. </member>
  31625. <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
  31626. <summary>
  31627. Creates an intersection finder using a given <see cref="T:NetTopologySuite.Algorithm.LineIntersector"/>
  31628. </summary>
  31629. <param name="li">The LineIntersector to use</param>
  31630. </member>
  31631. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.FindProper">
  31632. <summary>
  31633. Gets or sets whether processing must continue until a proper intersection is found
  31634. </summary>
  31635. </member>
  31636. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.FindAllIntersectionTypes">
  31637. <summary>
  31638. Gets or sets whether processing can terminate once any intersection is found.
  31639. </summary>
  31640. </member>
  31641. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasIntersection">
  31642. <summary>
  31643. Tests whether an intersection was found.
  31644. </summary>
  31645. </member>
  31646. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasProperIntersection">
  31647. <summary>
  31648. Tests whether a proper intersection was found.
  31649. </summary>
  31650. </member>
  31651. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.HasNonProperIntersection">
  31652. <summary>
  31653. Tests whether a non-proper intersection was found.
  31654. </summary>
  31655. </member>
  31656. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.Intersection">
  31657. <summary>
  31658. Gets the computed location of the intersection. Due to round-off, the location may not be exact.
  31659. </summary>
  31660. </member>
  31661. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.IntersectionSegments">
  31662. <summary>Gets the endpoints of the intersecting segments.
  31663. </summary>
  31664. <remarks>An array of the segment endpoints (p00, p01, p10, p11)</remarks>
  31665. </member>
  31666. <member name="M:NetTopologySuite.Noding.SegmentIntersectionDetector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  31667. <summary>
  31668. This method is called by clients of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
  31669. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.
  31670. </summary>
  31671. <remarks>
  31672. Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
  31673. this call for segment pairs which they have determined do not intersect
  31674. (e.g. by an disjoint envelope test).
  31675. </remarks>
  31676. </member>
  31677. <member name="P:NetTopologySuite.Noding.SegmentIntersectionDetector.IsDone">
  31678. <summary>
  31679. Tests whether processing can terminate,
  31680. because all required information has been obtained
  31681. (e.g. an intersection of the desired type has been detected).
  31682. </summary>
  31683. </member>
  31684. <member name="T:NetTopologySuite.Noding.SegmentNode">
  31685. <summary>
  31686. Represents an intersection point between two <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  31687. </summary>
  31688. </member>
  31689. <member name="F:NetTopologySuite.Noding.SegmentNode.Coord">
  31690. <summary>
  31691. </summary>
  31692. </member>
  31693. <member name="F:NetTopologySuite.Noding.SegmentNode.SegmentIndex">
  31694. <summary>
  31695. </summary>
  31696. </member>
  31697. <member name="M:NetTopologySuite.Noding.SegmentNode.#ctor(NetTopologySuite.Noding.INodableSegmentString,NetTopologySuite.Geometries.Coordinate,System.Int32,NetTopologySuite.Noding.Octants)">
  31698. <summary>
  31699. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SegmentNode"/> class.
  31700. </summary>
  31701. <param name="segString"></param>
  31702. <param name="coord"></param>
  31703. <param name="segmentIndex"></param>
  31704. <param name="segmentOctant"></param>
  31705. </member>
  31706. <member name="P:NetTopologySuite.Noding.SegmentNode.Coordinate">
  31707. <summary>
  31708. Gets the <see cref="T:NetTopologySuite.Geometries.Coordinate"/> giving the location of this node.
  31709. </summary>
  31710. </member>
  31711. <member name="P:NetTopologySuite.Noding.SegmentNode.IsInterior">
  31712. <summary>
  31713. </summary>
  31714. <returns></returns>
  31715. </member>
  31716. <member name="M:NetTopologySuite.Noding.SegmentNode.IsEndPoint(System.Int32)">
  31717. <summary>
  31718. </summary>
  31719. <param name="maxSegmentIndex"></param>
  31720. <returns></returns>
  31721. </member>
  31722. <member name="M:NetTopologySuite.Noding.SegmentNode.CompareTo(System.Object)">
  31723. <summary>
  31724. </summary>
  31725. <param name="obj"></param>
  31726. <returns>
  31727. -1 this SegmentNode is located before the argument location;<br/>
  31728. 0 this SegmentNode is at the argument location;<br/>
  31729. 1 this SegmentNode is located after the argument location.
  31730. </returns>
  31731. </member>
  31732. <member name="M:NetTopologySuite.Noding.SegmentNode.Write(System.IO.StreamWriter)">
  31733. <summary>
  31734. </summary>
  31735. <param name="outstream"></param>
  31736. </member>
  31737. <member name="M:NetTopologySuite.Noding.SegmentNode.ToString">
  31738. <inheritdoc cref="M:System.Object.ToString"/>>
  31739. </member>
  31740. <member name="T:NetTopologySuite.Noding.SegmentNodeList">
  31741. <summary>
  31742. A list of the <see cref="T:NetTopologySuite.Noding.SegmentNode" />s present along a noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.
  31743. </summary>
  31744. </member>
  31745. <member name="M:NetTopologySuite.Noding.SegmentNodeList.#ctor(NetTopologySuite.Noding.NodedSegmentString)">
  31746. <summary>
  31747. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SegmentNodeList"/> class.
  31748. </summary>
  31749. <param name="edge">The edge.</param>
  31750. </member>
  31751. <member name="P:NetTopologySuite.Noding.SegmentNodeList.Count">
  31752. <summary>
  31753. Gets a value indicating the number of nodes in the list.
  31754. </summary>
  31755. </member>
  31756. <member name="P:NetTopologySuite.Noding.SegmentNodeList.Edge">
  31757. <summary>
  31758. </summary>
  31759. <value></value>
  31760. </member>
  31761. <member name="M:NetTopologySuite.Noding.SegmentNodeList.Add(NetTopologySuite.Geometries.Coordinate,System.Int32)">
  31762. <summary>
  31763. Adds an intersection into the list, if it isn't already there.
  31764. The input segmentIndex and dist are expected to be normalized.
  31765. </summary>
  31766. <param name="intPt"></param>
  31767. <param name="segmentIndex"></param>
  31768. <returns>The SegmentIntersection found or added.</returns>
  31769. </member>
  31770. <member name="M:NetTopologySuite.Noding.SegmentNodeList.GetEnumerator">
  31771. <summary>
  31772. Returns an iterator of SegmentNodes.
  31773. </summary>
  31774. <returns>An iterator of SegmentNodes.</returns>
  31775. </member>
  31776. <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddEndpoints">
  31777. <summary>
  31778. Adds nodes for the first and last points of the edge.
  31779. </summary>
  31780. </member>
  31781. <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddCollapsedNodes">
  31782. <summary>
  31783. Adds nodes for any collapsed edge pairs.
  31784. Collapsed edge pairs can be caused by inserted nodes, or they can be
  31785. pre-existing in the edge vertex list.
  31786. In order to provide the correct fully noded semantics,
  31787. the vertex at the base of a collapsed pair must also be added as a node.
  31788. </summary>
  31789. </member>
  31790. <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapsesFromExistingVertices(System.Collections.Generic.List{System.Int32})">
  31791. <summary>
  31792. Adds nodes for any collapsed edge pairs
  31793. which are pre-existing in the vertex list.
  31794. </summary>
  31795. <param name="collapsedVertexIndexes"></param>
  31796. </member>
  31797. <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapsesFromInsertedNodes(System.Collections.Generic.List{System.Int32})">
  31798. <summary>
  31799. Adds nodes for any collapsed edge pairs caused by inserted nodes
  31800. Collapsed edge pairs occur when the same coordinate is inserted as a node
  31801. both before and after an existing edge vertex.
  31802. To provide the correct fully noded semantics,
  31803. the vertex must be added as a node as well.
  31804. </summary>
  31805. <param name="collapsedVertexIndexes"></param>
  31806. </member>
  31807. <member name="M:NetTopologySuite.Noding.SegmentNodeList.FindCollapseIndex(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode,System.Int32@)">
  31808. <summary>
  31809. </summary>
  31810. <param name="ei0"></param>
  31811. <param name="ei1"></param>
  31812. <param name="collapsedVertexIndex"></param>
  31813. <returns></returns>
  31814. </member>
  31815. <member name="M:NetTopologySuite.Noding.SegmentNodeList.AddSplitEdges(System.Collections.Generic.ICollection{NetTopologySuite.Noding.ISegmentString})">
  31816. <summary>
  31817. Creates new edges for all the edges that the intersections in this
  31818. list split the parent edge into.
  31819. Adds the edges to the provided argument list
  31820. (this is so a single list can be used to accumulate all split edges
  31821. for a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s).
  31822. </summary>
  31823. <param name="edgeList"></param>
  31824. </member>
  31825. <member name="M:NetTopologySuite.Noding.SegmentNodeList.CreateSplitEdge(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode)">
  31826. <summary>
  31827. Create a new "split edge" with the section of points between
  31828. (and including) the two intersections.
  31829. The label for the new edge is the same as the label for the parent edge.
  31830. </summary>
  31831. <param name="ei0"></param>
  31832. <param name="ei1"></param>
  31833. <returns></returns>
  31834. </member>
  31835. <member name="M:NetTopologySuite.Noding.SegmentNodeList.CreateSplitEdgePts(NetTopologySuite.Noding.SegmentNode,NetTopologySuite.Noding.SegmentNode)">
  31836. <summary>
  31837. Extracts the points for a split edge running between two nodes.
  31838. The extracted points should contain no duplicate points.
  31839. There should always be at least two points extracted
  31840. (which will be the given nodes).
  31841. </summary>
  31842. <param name="ei0">The start node of the split edge</param>
  31843. <param name="ei1">The end node of the split edge</param>
  31844. <returns>The points for the split edge</returns>
  31845. </member>
  31846. <member name="M:NetTopologySuite.Noding.SegmentNodeList.GetSplitCoordinates">
  31847. <summary>Gets the list of coordinates for the fully noded segment string,
  31848. including all original segment string vertices and vertices
  31849. introduced by nodes in this list.
  31850. Repeated coordinates are collapsed.
  31851. </summary>
  31852. <returns>An array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s</returns>
  31853. </member>
  31854. <member name="M:NetTopologySuite.Noding.SegmentNodeList.Write(System.IO.StreamWriter)">
  31855. <summary>
  31856. </summary>
  31857. <param name="outstream"></param>
  31858. </member>
  31859. <member name="T:NetTopologySuite.Noding.NodeVertexIterator">
  31860. <summary>
  31861. </summary>
  31862. </member>
  31863. <member name="M:NetTopologySuite.Noding.NodeVertexIterator.#ctor(NetTopologySuite.Noding.SegmentNodeList)">
  31864. <summary>
  31865. </summary>
  31866. <param name="nodeList"></param>
  31867. </member>
  31868. <member name="M:NetTopologySuite.Noding.NodeVertexIterator.ReadNextNode">
  31869. <summary>
  31870. </summary>
  31871. </member>
  31872. <member name="P:NetTopologySuite.Noding.NodeVertexIterator.Current">
  31873. <summary>
  31874. </summary>
  31875. </member>
  31876. <member name="M:NetTopologySuite.Noding.NodeVertexIterator.MoveNext">
  31877. <summary>
  31878. </summary>
  31879. <returns></returns>
  31880. </member>
  31881. <member name="M:NetTopologySuite.Noding.NodeVertexIterator.Reset">
  31882. <summary>
  31883. </summary>
  31884. </member>
  31885. <member name="T:NetTopologySuite.Noding.SegmentPointComparator">
  31886. <summary>
  31887. Implements a robust method of comparing the relative position of two points along the same segment.
  31888. The coordinates are assumed to lie "near" the segment.
  31889. This means that this algorithm will only return correct results
  31890. if the input coordinates have the same precision and correspond to rounded values
  31891. of exact coordinates lying on the segment.
  31892. </summary>
  31893. </member>
  31894. <member name="M:NetTopologySuite.Noding.SegmentPointComparator.Compare(NetTopologySuite.Noding.Octants,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  31895. <summary>
  31896. Compares two <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for their relative position along a segment
  31897. lying in the specified <see cref="T:NetTopologySuite.Noding.Octant" />.
  31898. </summary>
  31899. <param name="octant"></param>
  31900. <param name="p0"></param>
  31901. <param name="p1"></param>
  31902. <returns>
  31903. -1 if node0 occurs first, or<br/>
  31904. 0 if the two nodes are equal, or <br/>
  31905. 1 if node1 occurs first.
  31906. </returns>
  31907. </member>
  31908. <member name="M:NetTopologySuite.Noding.SegmentPointComparator.RelativeSign(System.Double,System.Double)">
  31909. <summary>
  31910. </summary>
  31911. <param name="x0"></param>
  31912. <param name="x1"></param>
  31913. <returns></returns>
  31914. </member>
  31915. <member name="M:NetTopologySuite.Noding.SegmentPointComparator.CompareValue(System.Int32,System.Int32)">
  31916. <summary>
  31917. </summary>
  31918. <param name="compareSign0"></param>
  31919. <param name="compareSign1"></param>
  31920. <returns></returns>
  31921. </member>
  31922. <member name="T:NetTopologySuite.Noding.ISegmentSetMutualIntersector">
  31923. <summary>
  31924. An intersector for the red-blue intersection problem.
  31925. In this class of line arrangement problem,
  31926. two disjoint sets of linestrings are intersected.
  31927. <para/>
  31928. Implementing classes must provide a way
  31929. of supplying the base set of segment strings to
  31930. test against (e.g. in the constructor,
  31931. for straightforward thread-safety).
  31932. <para/>
  31933. In order to allow optimizing processing,
  31934. the following condition is assumed to hold for each set:
  31935. <list Type="Bullet">
  31936. <item><description>the only intersection between any two linestrings occurs at their endpoints.</description></item>
  31937. </list>
  31938. Implementations can take advantage of this fact to optimize processing
  31939. (i.e. by avoiding testing for intersections between linestrings
  31940. belonging to the same set).
  31941. </summary>
  31942. </member>
  31943. <member name="M:NetTopologySuite.Noding.ISegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
  31944. <summary>
  31945. Computes the intersections with a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
  31946. using the supplied <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/>.
  31947. </summary>
  31948. <param name="segmentStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s to node</param>
  31949. <param name="segmentIntersector">The intersection detector to either record intersection occurrences
  31950. or add intersection nodes to the input segment strings.</param>
  31951. </member>
  31952. <member name="T:NetTopologySuite.Noding.SegmentStringDissolver">
  31953. <summary>
  31954. Dissolves a noded collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s to produce
  31955. a set of merged linework with unique segments.
  31956. </summary>
  31957. <remarks>
  31958. A custom <see cref="T:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger"/> merging strategy
  31959. can be supplied.
  31960. This strategy will be called when two identical (up to orientation)
  31961. strings are dissolved together.
  31962. The default merging strategy is simply to discard one of the merged strings.
  31963. <para>
  31964. A common use for this class is to merge noded edges
  31965. while preserving topological labelling.
  31966. This requires a custom merging strategy to be supplied
  31967. to merge the topology labels appropriately.
  31968. </para>
  31969. </remarks>
  31970. </member>
  31971. <member name="T:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger">
  31972. <summary>
  31973. A merging strategy which can be used to update the context data of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
  31974. which are merged during the dissolve process.
  31975. </summary>
  31976. <author>mbdavis</author>
  31977. </member>
  31978. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger.Merge(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString,System.Boolean)">
  31979. <summary>
  31980. Updates the context data of a <see cref="T:NetTopologySuite.Noding.ISegmentString" />
  31981. when an identical (up to orientation) one is found during dissolving.
  31982. </summary>
  31983. <param name="mergeTarget">The segment string to update.</param>
  31984. <param name="ssToMerge">The segment string being dissolved.</param>
  31985. <param name="isSameOrientation">
  31986. <c>true</c> if the strings are in the same direction,
  31987. <c>false</c> if they are opposite.
  31988. </param>
  31989. </member>
  31990. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.#ctor(NetTopologySuite.Noding.SegmentStringDissolver.ISegmentStringMerger)">
  31991. <summary>
  31992. Creates a dissolver with a user-defined merge strategy.
  31993. </summary>
  31994. <param name="merger"></param>
  31995. </member>
  31996. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.#ctor">
  31997. <summary>
  31998. Creates a dissolver with the default merging strategy.
  31999. </summary>
  32000. </member>
  32001. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Dissolve(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  32002. <summary>
  32003. Dissolve all <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in the input <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
  32004. </summary>
  32005. <param name="segStrings"></param>
  32006. </member>
  32007. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Add(NetTopologySuite.Noding.OrientedCoordinateArray,NetTopologySuite.Noding.ISegmentString)">
  32008. <summary>
  32009. </summary>
  32010. <param name="oca"></param>
  32011. <param name="segString"></param>
  32012. </member>
  32013. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.Dissolve(NetTopologySuite.Noding.ISegmentString)">
  32014. <summary>
  32015. Dissolve the given <see cref="T:NetTopologySuite.Noding.ISegmentString" />.
  32016. </summary>
  32017. <param name="segString"></param>
  32018. </member>
  32019. <member name="M:NetTopologySuite.Noding.SegmentStringDissolver.FindMatching(NetTopologySuite.Noding.OrientedCoordinateArray)">
  32020. <returns></returns>
  32021. </member>
  32022. <member name="P:NetTopologySuite.Noding.SegmentStringDissolver.Dissolved">
  32023. <summary>
  32024. Gets the collection of dissolved (i.e. unique) <see cref="T:NetTopologySuite.Noding.ISegmentString" />s
  32025. </summary>
  32026. </member>
  32027. <member name="T:NetTopologySuite.Noding.SegmentStringUtil">
  32028. <summary>
  32029. Utility methods for processing <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s
  32030. </summary>
  32031. <author>Martin Davis</author>
  32032. </member>
  32033. <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractSegmentStrings(NetTopologySuite.Geometries.Geometry)">
  32034. <summary>
  32035. Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  32036. to <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.<br/>
  32037. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>'s data item is set to be the source <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  32038. </summary>
  32039. <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
  32040. <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
  32041. </member>
  32042. <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractNodedSegmentStrings(NetTopologySuite.Geometries.Geometry)">
  32043. <summary>
  32044. Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  32045. to <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.<br/>
  32046. The <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>'s data item is set to be the source <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  32047. </summary>
  32048. <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
  32049. <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
  32050. </member>
  32051. <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ExtractBasicSegmentStrings(NetTopologySuite.Geometries.Geometry)">
  32052. <summary>
  32053. Extracts all linear components from a given <see cref="T:NetTopologySuite.Geometries.Geometry"/> to <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>s.
  32054. The <see cref="T:NetTopologySuite.Noding.BasicSegmentString"/>'s data item is set to be the source Geometry.
  32055. </summary>
  32056. <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to extract from.</param>
  32057. <returns>a list of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.</returns>
  32058. </member>
  32059. <member name="M:NetTopologySuite.Noding.SegmentStringUtil.ToGeometry(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Geometries.GeometryFactory)">
  32060. <summary>
  32061. Converts a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s into a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  32062. The geometry will be either a <see cref="T:NetTopologySuite.Geometries.LineString"/>
  32063. or a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> (possibly empty).
  32064. </summary>
  32065. <param name="segStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>.</param>
  32066. <param name="geomFact">A geometry factory</param>
  32067. <returns>A <see cref="T:NetTopologySuite.Geometries.LineString"/> or a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.</returns>
  32068. </member>
  32069. <member name="T:NetTopologySuite.Noding.SimpleNoder">
  32070. <summary>
  32071. Nodes a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s by
  32072. performing a brute-force comparison of every segment to every other one.
  32073. This has n^2 performance, so is too slow for use on large numbers of segments.
  32074. </summary>
  32075. </member>
  32076. <member name="M:NetTopologySuite.Noding.SimpleNoder.#ctor">
  32077. <summary>
  32078. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SimpleNoder"/> class.
  32079. </summary>
  32080. </member>
  32081. <member name="M:NetTopologySuite.Noding.SimpleNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
  32082. <summary>
  32083. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SimpleNoder"/> class.
  32084. </summary>
  32085. <param name="segInt"></param>
  32086. </member>
  32087. <member name="M:NetTopologySuite.Noding.SimpleNoder.GetNodedSubstrings">
  32088. <summary>
  32089. Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.
  32090. The <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s have the same context as their parent.
  32091. </summary>
  32092. <returns></returns>
  32093. </member>
  32094. <member name="M:NetTopologySuite.Noding.SimpleNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32095. <summary>
  32096. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  32097. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
  32098. others may only add some or none at all.
  32099. </summary>
  32100. <param name="inputSegStrings"></param>
  32101. </member>
  32102. <member name="M:NetTopologySuite.Noding.SimpleNoder.ComputeIntersects(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString)">
  32103. <summary>
  32104. </summary>
  32105. <param name="e0"></param>
  32106. <param name="e1"></param>
  32107. </member>
  32108. <member name="T:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector">
  32109. <summary>
  32110. Intersects two sets of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s using
  32111. brute-force comparison.
  32112. </summary>
  32113. </member>
  32114. <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  32115. <summary>
  32116. Constructs a new intersector for a given set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  32117. </summary>
  32118. <param name="baseSegStrings">The base segment strings to intersect</param>
  32119. </member>
  32120. <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.Process(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Noding.ISegmentIntersector)">
  32121. <summary>
  32122. Calls <see cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
  32123. for all <i>candidate</i> intersections between
  32124. the given collection of SegmentStrings and the set of base segments.
  32125. </summary>
  32126. <param name="segmentStrings">A collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s to node</param>
  32127. <param name="segmentIntersector">The intersection detector to either record intersection occurences
  32128. or add intersection nodes to the input segment strings.</param>
  32129. </member>
  32130. <member name="M:NetTopologySuite.Noding.SimpleSegmentSetMutualIntersector.Intersect(NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentString,NetTopologySuite.Noding.ISegmentIntersector)">
  32131. <summary>
  32132. Processes all of the segment pairs in the given segment strings
  32133. using the given <paramref name="segInt">SegmentIntersector</paramref>.
  32134. </summary>
  32135. <param name="ss0">A segment string</param>
  32136. <param name="ss1">A segment string</param>
  32137. <param name="segInt">The segment intersector to use</param>
  32138. </member>
  32139. <member name="T:NetTopologySuite.Noding.SinglePassNoder">
  32140. <summary>
  32141. Base class for <see cref="T:NetTopologySuite.Noding.INoder" />s which make a single pass to find intersections.
  32142. This allows using a custom <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" />
  32143. (which for instance may simply identify intersections, rather than insert them).
  32144. </summary>
  32145. </member>
  32146. <member name="M:NetTopologySuite.Noding.SinglePassNoder.#ctor">
  32147. <summary>
  32148. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SinglePassNoder"/> class.
  32149. </summary>
  32150. </member>
  32151. <member name="M:NetTopologySuite.Noding.SinglePassNoder.#ctor(NetTopologySuite.Noding.ISegmentIntersector)">
  32152. <summary>
  32153. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.SinglePassNoder"/> class.
  32154. </summary>
  32155. <param name="segInt">The <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> to use.</param>
  32156. </member>
  32157. <member name="P:NetTopologySuite.Noding.SinglePassNoder.SegmentIntersector">
  32158. <summary>
  32159. Gets/sets the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> to use with this noder.
  32160. A <see cref="T:NetTopologySuite.Noding.ISegmentIntersector" /> will normally add intersection nodes
  32161. to the input segment strings, but it may not - it may
  32162. simply record the presence of intersections.
  32163. However, some <see cref="T:NetTopologySuite.Noding.INoder" />s may require that intersections be added.
  32164. </summary>
  32165. </member>
  32166. <member name="M:NetTopologySuite.Noding.SinglePassNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32167. <summary>
  32168. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  32169. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s;
  32170. others may only add some or none at all.
  32171. </summary>
  32172. <param name="segStrings"></param>
  32173. </member>
  32174. <member name="M:NetTopologySuite.Noding.SinglePassNoder.GetNodedSubstrings">
  32175. <summary>
  32176. Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  32177. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
  32178. </summary>
  32179. <returns></returns>
  32180. </member>
  32181. <member name="T:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder">
  32182. <summary>
  32183. Finds intersections between line segments which are being snapped,
  32184. and adds them as nodes.
  32185. </summary>
  32186. <version>1.17</version>
  32187. </member>
  32188. <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Noding.Snap.SnappingPointIndex)">
  32189. <summary>
  32190. Creates an intersector which finds all snapped intersections,
  32191. and adds them as nodes.
  32192. </summary>
  32193. <param name="snapTolerance">The snapping tolerance distance</param>
  32194. <param name="snapPointIndex">A snap index to use</param>
  32195. </member>
  32196. <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Noding.Snap.SnappingPointIndex,NetTopologySuite.Algorithm.ElevationModel)">
  32197. <summary>
  32198. Creates an intersector which finds all snapped intersections,
  32199. and adds them as nodes.
  32200. </summary>
  32201. <param name="snapTolerance">The snapping tolerance distance</param>
  32202. <param name="snapPointIndex">A snap index to use</param>
  32203. <param name="em">An elevation model. May be <c>null</c></param>
  32204. </member>
  32205. <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  32206. <summary>
  32207. This method is called by clients
  32208. of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
  32209. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s being intersected.
  32210. Note that some clients (such as <c>MonotoneChain</c>s) may optimize away
  32211. this call for segment pairs which they have determined do not intersect
  32212. (e.g. by an disjoint envelope test).
  32213. </summary>
  32214. </member>
  32215. <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.ProcessNearVertex(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  32216. <summary>
  32217. If an endpoint of one segment is near
  32218. the <i>interior</i> of the other segment, add it as an intersection.
  32219. EXCEPT if the endpoint is also close to a segment endpoint
  32220. (since this can introduce "zigs" in the linework).
  32221. <para/>
  32222. This resolves situations where
  32223. a segment A endpoint is extremely close to another segment B,
  32224. but is not quite crossing. Due to robustness issues
  32225. in orientation detection, this can
  32226. result in the snapped segment A crossing segment B
  32227. without a node being introduced.
  32228. </summary>
  32229. </member>
  32230. <member name="M:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.IsAdjacent(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  32231. <summary>
  32232. Test if two segments are adjacent segments on the same SegmentString.
  32233. Note that closed edges require a special check for the point shared by the beginning
  32234. and end segments.
  32235. </summary>
  32236. </member>
  32237. <member name="P:NetTopologySuite.Noding.Snap.SnappingIntersectionAdder.IsDone">
  32238. <inheritdoc cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/>>
  32239. <remarks>Always process all intersections</remarks>>
  32240. <returns><c>false</c></returns>
  32241. </member>
  32242. <member name="T:NetTopologySuite.Noding.Snap.SnappingNoder">
  32243. <summary>
  32244. Nodes a set of segment strings
  32245. snapping vertices and intersection points together if
  32246. they lie within the given snap tolerance distance.
  32247. Vertices take priority over intersection points for snapping.
  32248. Input segment strings are generally only split at true node points
  32249. (i.e.the output segment strings are of maximal length in the output arrangement).
  32250. <para/>
  32251. The snap tolerance should be chosen to be as small as possible
  32252. while still producing a correct result.
  32253. It probably only needs to be small enough to eliminate
  32254. "nearly-coincident" segments, for which intersection points cannot be computed accurately.
  32255. This implies a factor of about 10e-12
  32256. smaller than the magnitude of the segment coordinates.
  32257. <para/>
  32258. With an appropriate snap tolerance this algorithm appears to be very robust.
  32259. So far no failure cases have been found,
  32260. given a small enough snap tolerance.
  32261. <para/>
  32262. The correctness of the output is not verified by this noder.
  32263. If required this can be done by <see cref="T:NetTopologySuite.Noding.ValidatingNoder"/>.
  32264. </summary>
  32265. <version>1.17</version>
  32266. </member>
  32267. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.#ctor(System.Double)">
  32268. <summary>
  32269. Creates a snapping noder using the given snap distance tolerance.
  32270. </summary>
  32271. <param name="snapTolerance">Points are snapped if within this distance</param>
  32272. </member>
  32273. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.#ctor(System.Double,NetTopologySuite.Algorithm.ElevationModel)">
  32274. <summary>
  32275. Creates a snapping noder using the given snap distance tolerance.
  32276. </summary>
  32277. <param name="snapTolerance">Points are snapped if within this distance</param>
  32278. <param name="em">An elevation model. May be <c>null</c></param>
  32279. </member>
  32280. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.GetNodedSubstrings">
  32281. <inheritdoc cref="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings"/>>
  32282. <returns>A collection of <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s representing the substrings</returns>
  32283. </member>
  32284. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32285. <summary>Computes the noding of a set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</summary>
  32286. <param name="inputSegmentStrings">A Collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s</param>
  32287. </member>
  32288. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.SeedSnapIndex(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  32289. <summary>
  32290. Seeds the snap index with a small set of vertices
  32291. chosen quasi-randomly using a low-discrepancy sequence.
  32292. Seeding the snap index KdTree induces a more balanced tree.
  32293. This prevents monotonic runs of vertices
  32294. unbalancing the tree and causing poor query performance.
  32295. </summary>
  32296. <param name="segStrings">The segStrings to be noded</param>
  32297. </member>
  32298. <member name="M:NetTopologySuite.Noding.Snap.SnappingNoder.ComputeIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32299. <summary>
  32300. Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
  32301. and returns their <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s.
  32302. <para/>
  32303. Also adds the intersection nodes to the segments.
  32304. </summary>
  32305. <returns>A list of noded substrings</returns>
  32306. </member>
  32307. <member name="T:NetTopologySuite.Noding.Snap.SnappingPointIndex">
  32308. <summary>
  32309. An index providing fast creation and lookup of snap points.
  32310. </summary>
  32311. </member>
  32312. <member name="F:NetTopologySuite.Noding.Snap.SnappingPointIndex._snapPointIndex">
  32313. <summary>
  32314. Since points are added incrementally, this index needs to be dynamic.
  32315. This class also makes use of the KdTree support for a tolerance distance
  32316. for point equality.
  32317. </summary>
  32318. </member>
  32319. <member name="M:NetTopologySuite.Noding.Snap.SnappingPointIndex.#ctor(System.Double)">
  32320. <summary>
  32321. Creates a snap point index using a specified distance tolerance.
  32322. </summary>
  32323. <param name="snapTolerance">Points are snapped if within this distance</param>
  32324. </member>
  32325. <member name="M:NetTopologySuite.Noding.Snap.SnappingPointIndex.Snap(NetTopologySuite.Geometries.Coordinate)">
  32326. <summary>
  32327. Snaps a coordinate to an existing snap point,
  32328. if it is within the snap tolerance distance.
  32329. Otherwise adds the coordinate to the snap point index.
  32330. </summary>
  32331. <param name="p">The point to snap</param>
  32332. <returns>The point it snapped to, or the input point</returns>
  32333. </member>
  32334. <member name="P:NetTopologySuite.Noding.Snap.SnappingPointIndex.Tolerance">
  32335. <summary>
  32336. Gets a value indicating the snapping tolerance value for the index
  32337. </summary>
  32338. </member>
  32339. <member name="P:NetTopologySuite.Noding.Snap.SnappingPointIndex.Depth">
  32340. <summary>
  32341. Gets a value indicating the depth of the tree
  32342. </summary>
  32343. </member>
  32344. <member name="T:NetTopologySuite.Noding.Snapround.GeometryNoder">
  32345. <summary>
  32346. Nodes the linework in a list of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s using Snap-Rounding
  32347. to a given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  32348. <para>
  32349. The input coordinates do not need to be rounded to the
  32350. precision model.
  32351. All output coordinates are rounded to the precision model.
  32352. </para><para>
  32353. This class does <b>not</b> dissolve the output linework,
  32354. so there may be duplicate linestrings in the output.
  32355. Subsequent processing (e.g. polygonization) may require
  32356. the linework to be unique. Using <c>UnaryUnion</c> is one way
  32357. to do this (although this is an inefficient approach).
  32358. </para></summary>
  32359. </member>
  32360. <member name="M:NetTopologySuite.Noding.Snapround.GeometryNoder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  32361. <summary>
  32362. Creates a new noder which snap-rounds to a grid specified by the given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>
  32363. </summary>
  32364. <param name="pm">The precision model for the grid to snap-round to.</param>
  32365. </member>
  32366. <member name="P:NetTopologySuite.Noding.Snapround.GeometryNoder.IsValidityChecked">
  32367. <summary>
  32368. Gets or sets whether noding validity is checked after noding is performed.
  32369. </summary>
  32370. </member>
  32371. <member name="M:NetTopologySuite.Noding.Snapround.GeometryNoder.Node(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  32372. <summary>
  32373. Nodes the linework of a set of Geometrys using SnapRounding.
  32374. </summary>
  32375. <param name="geoms">A collection of Geometrys of any type</param>
  32376. <returns>A list of LineStrings representing the noded linework of the input</returns>
  32377. </member>
  32378. <member name="T:NetTopologySuite.Noding.Snapround.HotPixel">
  32379. <summary>
  32380. Implements a "hot pixel" as used in the Snap Rounding algorithm.
  32381. A hot pixel is a square region centred
  32382. on the rounded valud of the coordinate given,
  32383. and of width equal to the size of the scale factor.
  32384. It is a partially open region, which contains
  32385. the interior of the tolerance square and
  32386. the boundary
  32387. <b>minus</b> the top and right segments.
  32388. This ensures that every point of the space lies in a unique hot pixel.
  32389. It also matches the rounding semantics for numbers.
  32390. <para/>
  32391. The hot pixel operations are all computed in the integer domain
  32392. to avoid rounding problems.
  32393. <para/>
  32394. Hot Pixels support being marked as nodes.
  32395. This is used to prevent introducing nodes at line vertices
  32396. which do not have other lines snapped to them.
  32397. </summary>
  32398. </member>
  32399. <member name="F:NetTopologySuite.Noding.Snapround.HotPixel._hpx">
  32400. <summary>The <b>scaled</b> x-ordinate of the hot pixel point (<see cref="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate"/>)</summary>
  32401. </member>
  32402. <member name="F:NetTopologySuite.Noding.Snapround.HotPixel._hpy">
  32403. <summary>The <b>scaled</b> y-ordinate of the hot pixel point (<see cref="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate"/>)</summary>
  32404. </member>
  32405. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.#ctor(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Algorithm.LineIntersector)">
  32406. <summary>
  32407. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel"/> class.
  32408. </summary>
  32409. <param name="pt">The coordinate at the center of the hot pixel</param>
  32410. <param name="scaleFactor">The scale factor determining the pixel size</param>
  32411. <param name="li">The intersector to use for testing intersection with line segments</param>
  32412. </member>
  32413. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.#ctor(NetTopologySuite.Geometries.Coordinate,System.Double)">
  32414. <summary>
  32415. Creates a new hot pixel centered on a rounded point, using a given scale factor.
  32416. The scale factor must be strictly positive(non-zero).
  32417. </summary>
  32418. <param name="pt">The coordinate at the center of the hot pixel (already rounded)</param>
  32419. <param name="scaleFactor">The scale factor determining the pixel size</param>
  32420. </member>
  32421. <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.Coordinate">
  32422. <summary>
  32423. Gets the coordinate this hot pixel is based at.
  32424. </summary>
  32425. </member>
  32426. <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.ScaleFactor">
  32427. <summary>
  32428. Gets the scale factor for the precision grid for this pixel.
  32429. </summary>
  32430. </member>
  32431. <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.Width">
  32432. <summary>
  32433. Gets the width of the hot pixel in the original coordinate system.
  32434. </summary>
  32435. </member>
  32436. <member name="P:NetTopologySuite.Noding.Snapround.HotPixel.IsNode">
  32437. <summary>
  32438. Gets or sets a value indicating whether this pixel has been marked as a node.
  32439. </summary>
  32440. <returns><c>true</c> if the pixel is marked as a node</returns>
  32441. </member>
  32442. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Scale(System.Double)">
  32443. <summary>
  32444. Scale without rounding.
  32445. This ensures intersections are checked against original
  32446. linework.
  32447. This is required to ensure that intersections are not missed
  32448. because the segment is moved by snapping.
  32449. </summary>
  32450. </member>
  32451. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.GetSafeEnvelope">
  32452. <summary>
  32453. Returns a "safe" envelope that is guaranteed to contain the hot pixel.
  32454. The envelope returned will be larger than the exact envelope of the pixel.
  32455. </summary>
  32456. <returns>An envelope which contains the pixel</returns>
  32457. </member>
  32458. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Intersects(NetTopologySuite.Geometries.Coordinate)">
  32459. <summary>
  32460. Tests whether a coordinate lies in (intersects) this hot pixel.
  32461. </summary>
  32462. <param name="p">The coordinate to test</param>
  32463. <returns><c>true</c> if the coordinate intersects this hot pixel</returns>
  32464. </member>
  32465. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  32466. <summary>
  32467. Tests whether the line segment (p0-p1)
  32468. intersects this hot pixel.
  32469. </summary>
  32470. <param name="p0">The first coordinate of the line segment to test</param>
  32471. <param name="p1">The second coordinate of the line segment to test</param>
  32472. <returns>true if the line segment intersects this hot pixel.</returns>
  32473. </member>
  32474. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.IntersectsScaled(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  32475. <summary>
  32476. </summary>
  32477. <param name="p0"></param>
  32478. <param name="p1"></param>
  32479. <returns></returns>
  32480. </member>
  32481. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.IntersectsPixelClosure(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  32482. <summary>
  32483. Test whether the given segment intersects
  32484. the closure of this hot pixel.
  32485. This is NOT the test used in the standard snap-rounding
  32486. algorithm, which uses the partially closed tolerance square instead.
  32487. This routine is provided for testing purposes only.
  32488. </summary>
  32489. <param name="p0"></param>
  32490. <param name="p1"></param>
  32491. <returns></returns>
  32492. </member>
  32493. <member name="M:NetTopologySuite.Noding.Snapround.HotPixel.AddSnappedNode(NetTopologySuite.Noding.INodableSegmentString,System.Int32)">
  32494. <summary>
  32495. Adds a new node (equal to the snap pt) to the specified segment
  32496. if the segment passes through the hot pixel
  32497. </summary>
  32498. <param name="segStr"></param>
  32499. <param name="segIndex"></param>
  32500. <returns><c>true</c> if a node was added to the segment</returns>
  32501. </member>
  32502. <member name="T:NetTopologySuite.Noding.Snapround.HotPixelIndex">
  32503. <summary>
  32504. An index which creates unique <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel"/>s for provided points,
  32505. and performs range queries on them.
  32506. The points passed to the index do not needed to be
  32507. rounded to the specified scale factor; this is done internally
  32508. when creating the HotPixels for them.
  32509. </summary>
  32510. <author>Martin Davis</author>
  32511. </member>
  32512. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  32513. <summary>
  32514. Creates a new hot pixel index using the provided <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  32515. </summary>
  32516. <param name="pm">The precision model</param>
  32517. </member>
  32518. <member name="T:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates">
  32519. <summary>
  32520. Utility class to enumerate through a shuffled array of
  32521. <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s using the
  32522. <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates shuffle algorithm</a>
  32523. </summary>
  32524. </member>
  32525. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  32526. <summary>
  32527. Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  32528. </summary>
  32529. <param name="pts">An array of coordinates</param>
  32530. </member>
  32531. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  32532. <summary>
  32533. Creates an instance of this class using the provided <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  32534. </summary>
  32535. <param name="pts">An array of coordinates</param>
  32536. </member>
  32537. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.MoveNext">
  32538. <inheritdoc cref="M:System.Collections.IEnumerator.MoveNext"/>
  32539. </member>
  32540. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Reset">
  32541. <inheritdoc cref="M:System.Collections.IEnumerator.Reset"/>
  32542. </member>
  32543. <member name="P:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Current">
  32544. <inheritdoc cref="P:System.Collections.Generic.IEnumerator`1.Current"/>
  32545. </member>
  32546. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.ShuffledCoordinatesEnumerator.Dispose">
  32547. <inheritdoc cref="M:System.IDisposable.Dispose"/>
  32548. </member>
  32549. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.ShuffledCoordinates.GetEnumerator">
  32550. <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>
  32551. </member>
  32552. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  32553. <summary>
  32554. Adds a series of points as non-node pixels
  32555. </summary>
  32556. <param name="pts">The points to add</param>
  32557. </member>
  32558. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.AddNodes(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  32559. <summary>
  32560. Adds a list of points as node pixels.
  32561. </summary>
  32562. <param name="pts">The points to add</param>
  32563. </member>
  32564. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Add(NetTopologySuite.Geometries.Coordinate)">
  32565. <summary>
  32566. Adds a point as a Hot Pixel. <br/>
  32567. If the point has been added already, it is marked as a node.
  32568. </summary>
  32569. <param name="p">The point to add</param>
  32570. <returns>The hot-pixel for the point</returns>
  32571. </member>
  32572. <member name="M:NetTopologySuite.Noding.Snapround.HotPixelIndex.Query(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Index.KdTree.IKdNodeVisitor{NetTopologySuite.Noding.Snapround.HotPixel})">
  32573. <summary>
  32574. Visits all the hot pixels which may intersect a segment (p0-p1).
  32575. The visitor must determine whether each hot pixel actually intersects
  32576. the segment.
  32577. </summary>
  32578. <param name="p0">The segment start point</param>
  32579. <param name="p1">The segment end point</param>
  32580. <param name="visitor">The visitor to apply</param>
  32581. </member>
  32582. <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper">
  32583. <summary>
  32584. "Snaps" all <see cref="T:NetTopologySuite.Noding.ISegmentString" />s in a <see cref="T:NetTopologySuite.Index.ISpatialIndex`1" /> containing
  32585. <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain" />s to a given <see cref="T:NetTopologySuite.Noding.Snapround.HotPixel" />.
  32586. </summary>
  32587. </member>
  32588. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.#ctor(NetTopologySuite.Index.ISpatialIndex{NetTopologySuite.Index.Chain.MonotoneChain})">
  32589. <summary>
  32590. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper"/> class.
  32591. </summary>
  32592. <param name="index"></param>
  32593. </member>
  32594. <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor">
  32595. <summary>
  32596. </summary>
  32597. </member>
  32598. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor.#ctor(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction)">
  32599. <summary>
  32600. </summary>
  32601. <param name="env"></param>
  32602. <param name="action"></param>
  32603. </member>
  32604. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.QueryVisitor.VisitItem(NetTopologySuite.Index.Chain.MonotoneChain)">
  32605. <summary>
  32606. </summary>
  32607. <param name="item"></param>
  32608. </member>
  32609. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.Snap(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  32610. <summary>
  32611. Snaps (nodes) all interacting segments to this hot pixel.
  32612. The hot pixel may represent a vertex of an edge,
  32613. in which case this routine uses the optimization
  32614. of not noding the vertex itself
  32615. </summary>
  32616. <param name="hotPixel">The hot pixel to snap to.</param>
  32617. <param name="parentEdge">The edge containing the vertex, if applicable, or <c>null</c>.</param>
  32618. <param name="hotPixelVertexIndex"></param>
  32619. <returns><c>true</c> if a node was added for this pixel.</returns>
  32620. </member>
  32621. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.Snap(NetTopologySuite.Noding.Snapround.HotPixel)">
  32622. <summary>
  32623. Snaps (nodes) all interacting segments to this hot pixel.
  32624. The hot pixel may represent a vertex of an edge,
  32625. in which case this routine uses the optimization
  32626. of not noding the vertex itself
  32627. </summary>
  32628. <param name="hotPixel">The hot pixel to snap to.</param>
  32629. <returns><c>true</c> if a node was added for this pixel.</returns>
  32630. </member>
  32631. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.GetSafeEnvelope(NetTopologySuite.Noding.Snapround.HotPixel)">
  32632. <summary>
  32633. Returns a "safe" envelope that is guaranteed to contain the hot pixel.
  32634. The envelope returned is larger than the exact envelope of the
  32635. pixel by a safe margin.
  32636. </summary>
  32637. <returns>An envelope which contains the hot pixel</returns>
  32638. </member>
  32639. <member name="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction">
  32640. <summary>
  32641. </summary>
  32642. </member>
  32643. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.#ctor(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  32644. <summary>
  32645. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction"/> class.
  32646. </summary>
  32647. <param name="hotPixel"></param>
  32648. <param name="parentEdge"></param>
  32649. <param name="hotPixelVertexIndex"></param>
  32650. </member>
  32651. <member name="P:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.IsNodeAdded">
  32652. <summary>
  32653. Reports whether the HotPixel caused a node to be added in any target
  32654. segmentString(including its own). If so, the HotPixel must be added as a
  32655. node as well.
  32656. </summary>
  32657. <returns>
  32658. <c>true</c> if a node was added in any target segmentString.
  32659. </returns>
  32660. </member>
  32661. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.Select(NetTopologySuite.Index.Chain.MonotoneChain,System.Int32)">
  32662. <summary>
  32663. Check if a segment of the monotone chain intersects
  32664. the hot pixel vertex and introduce a snap node if so.
  32665. Optimized to avoid noding segments which
  32666. contain the vertex (which otherwise
  32667. would cause every vertex to be noded).
  32668. </summary>
  32669. <param name="mc">A monotone chain</param>
  32670. <param name="startIndex">A start index</param>
  32671. </member>
  32672. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexPointSnapper.HotPixelSnapAction.AddSnappedNode(NetTopologySuite.Noding.Snapround.HotPixel,NetTopologySuite.Noding.INodableSegmentString,System.Int32)">
  32673. <summary>
  32674. Adds a new node (equal to the snap pt) to the specified segment
  32675. if the segment passes through the hot pixel
  32676. </summary>
  32677. <returns><see langword="true"/> if a node was added to the segment</returns>
  32678. </member>
  32679. <member name="T:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder">
  32680. <summary>
  32681. Uses Snap Rounding to compute a rounded,
  32682. fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  32683. Implements the Snap Rounding technique described in
  32684. papers by Hobby, Guibas and Marimont, and Goodrich et al.
  32685. Snap Rounding assumes that all vertices lie on a uniform grid;
  32686. hence the precision model of the input must be fixed precision,
  32687. and all the input vertices must be rounded to that precision.
  32688. <para/>
  32689. This implementation uses a monotone chains and a spatial index to
  32690. speed up the intersection tests.
  32691. <para/>
  32692. <h3>KNOWN BUGS</h3>
  32693. This implementation is not fully robust.
  32694. instead.
  32695. </summary>
  32696. <seealse cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/>
  32697. </member>
  32698. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  32699. <summary>
  32700. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder"/> class.
  32701. </summary>
  32702. <param name="pm">The <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> to use.</param>
  32703. </member>
  32704. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.GetNodedSubstrings">
  32705. <summary>
  32706. Returns a <see cref="T:System.Collections.Generic.IList`1"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  32707. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
  32708. </summary>
  32709. <returns></returns>
  32710. </member>
  32711. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32712. <summary>
  32713. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  32714. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
  32715. others may only add some or none at all.
  32716. </summary>
  32717. <param name="inputSegmentStrings"></param>
  32718. </member>
  32719. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.SnapRound(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.LineIntersector)">
  32720. <summary>
  32721. </summary>
  32722. <param name="segStrings"></param>
  32723. <param name="li"></param>
  32724. </member>
  32725. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.FindInteriorIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString},NetTopologySuite.Algorithm.LineIntersector)">
  32726. <summary>
  32727. Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s,
  32728. and returns their <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
  32729. <para/>
  32730. Does NOT node the segStrings.
  32731. </summary>
  32732. <param name="segStrings"></param>
  32733. <param name="li"></param>
  32734. <returns>A list of Coordinates for the intersections.</returns>
  32735. </member>
  32736. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeIntersectionSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  32737. <summary>
  32738. Snaps segments to nodes created by segment intersections.
  32739. </summary>
  32740. <param name="snapPts"></param>
  32741. </member>
  32742. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeVertexSnaps(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32743. <summary>
  32744. Snaps segments to all vertices
  32745. </summary>
  32746. <param name="edges">The list of segment strings to snap together</param>
  32747. </member>
  32748. <member name="M:NetTopologySuite.Noding.Snapround.MCIndexSnapRounder.ComputeVertexSnaps(NetTopologySuite.Noding.INodableSegmentString)">
  32749. <summary>
  32750. Snaps segments to the vertices of a Segment String.
  32751. </summary>
  32752. <param name="e"></param>
  32753. </member>
  32754. <member name="T:NetTopologySuite.Noding.Snapround.SimpleSnapRounder">
  32755. <summary>
  32756. Uses Snap Rounding to compute a rounded,
  32757. fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  32758. <para/>
  32759. Implements the Snap Rounding technique described in
  32760. the papers by Hobby, Guibas &amp; Marimont, and Goodrich et al.
  32761. Snap Rounding enforces that all vertices lie on a uniform grid,
  32762. which is determined by the provided <seealso cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  32763. Input vertices do not have to be rounded to this grid;
  32764. this will be done during the snap-rounding process.
  32765. <para/>
  32766. This implementation uses simple iteration over the line segments.
  32767. This is not an efficient approach for large sets of segments.
  32768. This implementation appears to be fully robust using an integer precision model.
  32769. It will function with non-integer precision models, but the
  32770. results are not 100% guaranteed to be correctly noded.
  32771. </summary>
  32772. </member>
  32773. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  32774. <summary>
  32775. Initializes a new instance of the <see cref="T:NetTopologySuite.Noding.Snapround.SimpleSnapRounder"/> class.
  32776. </summary>
  32777. <param name="pm">The <see cref="T:NetTopologySuite.Geometries.PrecisionModel" /> to use.</param>
  32778. </member>
  32779. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.GetNodedSubstrings">
  32780. <summary>
  32781. Returns a <see cref="T:System.Collections.IList"/> of fully noded <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s.
  32782. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s have the same context as their parent.
  32783. </summary>
  32784. <returns>A Collection of NodedSegmentStrings representing the substrings</returns>
  32785. </member>
  32786. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32787. <summary>
  32788. Computes the noding for a collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s.
  32789. Some Noders may add all these nodes to the input <see cref="T:NetTopologySuite.Noding.ISegmentString" />s;
  32790. others may only add some or none at all.
  32791. </summary>
  32792. <param name="inputSegmentStrings">A collection of NodedSegmentStrings</param>
  32793. </member>
  32794. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.SnapRound(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32795. <summary>
  32796. </summary>
  32797. <param name="segStrings"></param>
  32798. </member>
  32799. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.Round(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  32800. <summary>
  32801. Gets a list of the rounded coordinates.
  32802. Duplicate (collapsed) coordinates are removed.
  32803. </summary>
  32804. <param name="pts">The coordinates to round</param>
  32805. <returns>An array of rounded coordinates</returns>
  32806. </member>
  32807. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.FindInteriorIntersections(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32808. <summary>
  32809. Computes all interior intersections in the collection of <see cref="T:NetTopologySuite.Noding.ISegmentString" />s,
  32810. and returns their <see cref="T:NetTopologySuite.Geometries.Coordinate" />s.
  32811. <para/>
  32812. Also adds the intersection nodes to the segments.
  32813. </summary>
  32814. <param name="segStrings"></param>
  32815. <returns>A list of <see cref="T:NetTopologySuite.Geometries.Coordinate" />s for the intersections.</returns>
  32816. </member>
  32817. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  32818. <summary>
  32819. Computes nodes introduced as a result of snapping segments to snap points (hot pixels).
  32820. </summary>
  32821. <param name="segStrings"></param>
  32822. </member>
  32823. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeSnaps(NetTopologySuite.Noding.NodedSegmentString)">
  32824. <summary>
  32825. </summary>
  32826. <param name="ss"></param>
  32827. </member>
  32828. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.SnapSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.NodedSegmentString,System.Int32)">
  32829. <summary>
  32830. This is where all the work of snapping to hot pixels gets done
  32831. (in a very inefficient brute-force way).
  32832. </summary>
  32833. </member>
  32834. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeVertexSnaps(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32835. <summary>
  32836. Computes nodes introduced as a result of
  32837. snapping segments to vertices of other segments.
  32838. </summary>
  32839. <param name="edges">The list of segment strings to snap together</param>
  32840. </member>
  32841. <member name="M:NetTopologySuite.Noding.Snapround.SimpleSnapRounder.ComputeVertexSnaps(NetTopologySuite.Noding.INodableSegmentString,NetTopologySuite.Noding.INodableSegmentString)">
  32842. <summary>
  32843. Performs a brute-force comparison of every segment in each <see cref="T:NetTopologySuite.Noding.ISegmentString" />.
  32844. This has n^2 performance.
  32845. </summary>
  32846. <param name="e0"></param>
  32847. <param name="e1"></param>
  32848. </member>
  32849. <member name="T:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder">
  32850. <summary>
  32851. Finds intersections between line segments which will be snap-rounded,
  32852. and adds them as nodes to the segments.
  32853. <para/>
  32854. Intersections are detected and computed using full precision.
  32855. Snapping takes place in a subsequent phase.
  32856. <para/>
  32857. The intersection points are recorded, so that HotPixels can be created for them.
  32858. <para/>
  32859. To avoid robustness issues with vertices which lie very close to line segments
  32860. a heuristic is used:
  32861. nodes are created if a vertex lies within a tolerance distance
  32862. of the interior of a segment.
  32863. The tolerance distance is chosen to be significantly below the snap-rounding grid size.
  32864. This has empirically proven to eliminate noding failures.
  32865. </summary>
  32866. </member>
  32867. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  32868. <summary>
  32869. Creates an intersector which finds all snapped interior intersections,
  32870. and adds them as nodes.
  32871. </summary>
  32872. <param name="pm">The precision model to use</param>
  32873. </member>
  32874. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(System.Double)">
  32875. <summary>
  32876. Creates an intersector which finds all snapped interior intersections,
  32877. and adds them as nodes.
  32878. </summary>
  32879. <param name="nearnessTol">the intersection distance tolerance</param>
  32880. </member>
  32881. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.#ctor(System.Double,NetTopologySuite.Algorithm.ElevationModel)">
  32882. <summary>
  32883. Creates an intersector which finds all snapped interior intersections,
  32884. and adds them as nodes.
  32885. </summary>
  32886. <param name="nearnessTol">the intersection distance tolerance</param>
  32887. <param name="em">An elevation model. May be <c>null</c></param>
  32888. </member>
  32889. <member name="P:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.Intersections">
  32890. <summary>
  32891. Gets the created intersection nodes,
  32892. so they can be processed as hot pixels.
  32893. </summary>
  32894. <returns>A list of intersection points</returns>
  32895. </member>
  32896. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  32897. <summary>
  32898. This method is called by clients
  32899. of the <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> class to process
  32900. intersections for two segments of the <see cref="T:NetTopologySuite.Noding.ISegmentString"/>
  32901. s being intersected.
  32902. Note that some clients (such as <c>MonotoneChain</c> s) may optimize away
  32903. this call for segment pairs which they have determined do not intersect
  32904. (e.g.by an disjoint envelope test).
  32905. </summary>
  32906. </member>
  32907. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.ProcessNearVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  32908. <summary>
  32909. If an endpoint of one segment is near
  32910. the <i>interior</i> of the other segment, add it as an intersection.
  32911. EXCEPT if the endpoint is also close to a segment endpoint
  32912. (since this can introduce "zigs" in the linework).
  32913. <para/>
  32914. This resolves situations where
  32915. a segment A endpoint is extremely close to another segment B,
  32916. but is not quite crossing.Due to robustness issues
  32917. in orientation detection, this can
  32918. result in the snapped segment A crossing segment B
  32919. without a node being introduced.
  32920. </summary>
  32921. </member>
  32922. <member name="P:NetTopologySuite.Noding.Snapround.SnapRoundingIntersectionAdder.IsDone">
  32923. <summary>
  32924. Always process all intersections
  32925. </summary>
  32926. <returns>Always <c>false</c></returns>
  32927. </member>
  32928. <member name="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder">
  32929. <summary>
  32930. Uses Snap Rounding to compute a rounded,
  32931. fully noded arrangement from a set of <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s,
  32932. in a performant way, and avoiding unnecessary noding.
  32933. <para/>
  32934. Implements the Snap Rounding technique described in
  32935. the papers by Hobby, Guibas &amp; Marimont, and Goodrich et al.
  32936. Snap Rounding enforces that all output vertices lie on a uniform grid,
  32937. which is determined by the provided <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  32938. <para/>
  32939. Input vertices do not have to be rounded to the grid beforehand;
  32940. this is done during the snap-rounding process.
  32941. In fact, rounding cannot be done a priori,
  32942. since rounding vertices by themselves can distort the rounded topology
  32943. of the arrangement (i.e. by moving segments away from hot pixels
  32944. that would otherwise intersect them, or by moving vertices
  32945. across segments).
  32946. <para/>
  32947. To minimize the number of introduced nodes,
  32948. the Snap-Rounding Noder avoids creating nodes
  32949. at edge vertices if there is no intersection or snap at that location.
  32950. However, if two different input edges contain identical segments,
  32951. each of the segment vertices will be noded.
  32952. This still provides fully-noded output.
  32953. This is the same behaviour provided by other noders,
  32954. such as <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/>
  32955. and <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
  32956. </summary>
  32957. <version>1.17</version>
  32958. </member>
  32959. <member name="F:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.NEARNESS_FACTOR">
  32960. <summary>
  32961. The division factor used to determine
  32962. nearness distance tolerance for intersection detection.
  32963. </summary>
  32964. </member>
  32965. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.GetNodedSubstrings">
  32966. <summary>
  32967. Gets a Collection of NodedSegmentStrings representing the substrings
  32968. </summary>
  32969. </member>
  32970. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32971. <summary>
  32972. Computes the nodes in the snap-rounding line arrangement.
  32973. The nodes are added to the <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s provided as the input.
  32974. </summary>
  32975. <param name="inputSegmentStrings">A Collection of NodedSegmentStrings</param>
  32976. </member>
  32977. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddIntersectionPixels(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  32978. <summary>
  32979. Detects interior intersections in the collection of {@link SegmentString}s,
  32980. and adds nodes for them to the segment strings.
  32981. Also creates HotPixel nodes for the intersection points.
  32982. </summary>
  32983. <param name="segStrings">The input NodedSegmentStrings</param>
  32984. </member>
  32985. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddVertexPixels(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  32986. <summary>
  32987. Creates HotPixels for each vertex in the input segStrings.
  32988. The HotPixels are not marked as nodes, since they will
  32989. only be nodes in the final line arrangement
  32990. if they interact with other segments(or they are already
  32991. created as intersection nodes).
  32992. </summary>
  32993. <param name="segStrings">The input NodedSegmentStrings</param>
  32994. </member>
  32995. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.Round(NetTopologySuite.Geometries.Coordinate[])">
  32996. <summary>
  32997. Gets a list of the rounded coordinates.
  32998. Duplicate (collapsed) coordinates are removed.
  32999. </summary>
  33000. <param name="pts">The coordinates to round</param>
  33001. <returns>Array of rounded coordinates</returns>
  33002. </member>
  33003. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeSnaps(System.Collections.Generic.IEnumerable{NetTopologySuite.Noding.ISegmentString})">
  33004. <summary>
  33005. Computes new segment strings which are rounded and contain
  33006. intersections added as a result of snapping segments to snap points (hot pixels).
  33007. </summary>
  33008. <param name="segStrings">Segments to snap</param>
  33009. <returns>The snapped segment strings</returns>
  33010. </member>
  33011. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.ComputeSegmentSnaps(NetTopologySuite.Noding.NodedSegmentString)">
  33012. <summary>
  33013. Add snapped vertices to a segment string.
  33014. If the segment string collapses completely due to rounding,
  33015. null is returned.
  33016. </summary>
  33017. <param name="ss">The segment string to snap</param>
  33018. <returns>
  33019. The snapped segment string, or null if it collapses completely
  33020. </returns>
  33021. </member>
  33022. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.SnapSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Noding.NodedSegmentString,System.Int32)">
  33023. <summary>
  33024. Snaps a segment in a segmentString to HotPixels that it intersects.
  33025. </summary>
  33026. <param name="p0">The segment start coordinate</param>
  33027. <param name="p1">The segment end coordinate</param>
  33028. <param name="ss">The segment string to add intersections to</param>
  33029. <param name="segIndex">The index of the segment/</param>
  33030. </member>
  33031. <member name="M:NetTopologySuite.Noding.Snapround.SnapRoundingNoder.AddVertexNodeSnaps(NetTopologySuite.Noding.NodedSegmentString)">
  33032. <summary>
  33033. Add nodes for any vertices in hot pixels that were
  33034. added as nodes during segment noding.
  33035. </summary>
  33036. <param name="ss">A noded segment string</param>
  33037. </member>
  33038. <member name="T:NetTopologySuite.Noding.ValidatingNoder">
  33039. <summary>
  33040. A wrapper for <see cref="T:NetTopologySuite.Noding.INoder"/>s which validates
  33041. the output arrangement is correctly noded.
  33042. An arrangement of line segments is fully noded if
  33043. there is no line segment
  33044. which has another segment intersecting its interior.
  33045. If the noding is not correct, a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown
  33046. with details of the first invalid location found.
  33047. </summary>
  33048. <author>Martin Davis</author>
  33049. <seealso cref="T:NetTopologySuite.Noding.FastNodingValidator"/>
  33050. </member>
  33051. <member name="M:NetTopologySuite.Noding.ValidatingNoder.#ctor(NetTopologySuite.Noding.INoder)">
  33052. <summary>
  33053. Creates a noding validator wrapping the given <paramref name="noder"/>
  33054. </summary>
  33055. <param name="noder">The noder to validate</param>
  33056. </member>
  33057. <member name="M:NetTopologySuite.Noding.ValidatingNoder.ComputeNodes(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  33058. <summary>
  33059. Checks whether the output of the wrapped noder is fully noded.
  33060. Throws an exception if it is not.
  33061. </summary>
  33062. <exception cref="T:NetTopologySuite.Geometries.TopologyException"></exception>
  33063. </member>
  33064. <member name="M:NetTopologySuite.Noding.ValidatingNoder.GetNodedSubstrings">
  33065. <inheritdoc cref="M:NetTopologySuite.Noding.INoder.GetNodedSubstrings"/>
  33066. </member>
  33067. <member name="T:NetTopologySuite.NtsGeometryServices">
  33068. <summary>
  33069. A geometry service provider class
  33070. </summary>
  33071. <remarks>
  33072. When overriding this class, you need to provide a public constructor with the following arguments:
  33073. <list type="number">
  33074. <item><c>CoordinateSequenceFactory</c><description>A factory to create coordinate sequences</description></item>
  33075. <item><term><c>PrecisionModel</c></term><description>A precision model</description></item>
  33076. <item><term><c>int</c></term><description>spatial reference id (srid)</description></item>
  33077. <item><term><c>GeometryOverlay</c></term><description>A class that bundles an overlay operation function set</description></item>
  33078. <item><term><c>CoordinateEqualityComparer</c></term><description>A class that performs checks <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s for equality.</description></item>
  33079. </list>
  33080. <see cref="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.CoordinateEqualityComparer)"/>
  33081. </remarks>
  33082. </member>
  33083. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor">
  33084. <summary>
  33085. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
  33086. as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.<br/>
  33087. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
  33088. The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
  33089. </summary>
  33090. </member>
  33091. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryOverlay)">
  33092. <summary>
  33093. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
  33094. as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
  33095. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
  33096. </summary>
  33097. <param name="geometryOverlay">The function set to perform overlay operations</param>
  33098. </member>
  33099. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryRelate)">
  33100. <summary>
  33101. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
  33102. as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
  33103. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
  33104. </summary>
  33105. <param name="geometryRelate">The geometry relate function set to use.</param>
  33106. </member>
  33107. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.GeometryRelate)">
  33108. <summary>
  33109. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/>
  33110. as default and a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model.
  33111. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified
  33112. </summary>
  33113. <param name="geometryOverlay">The function set to perform overlay operations</param>
  33114. <param name="geometryRelate">The geometry relate function set to use.</param>
  33115. </member>
  33116. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  33117. <summary>
  33118. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/> as default.<br/>
  33119. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
  33120. The default precision model is defined by <paramref name="precisionModel"/>.<br/>
  33121. The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
  33122. </summary>
  33123. </member>
  33124. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
  33125. <summary>
  33126. Creates an instance of this class, using the <see cref="T:NetTopologySuite.Geometries.Implementation.CoordinateArraySequenceFactory"/> as default.<br/>
  33127. A value of <paramref name="srid"/> is assigned to <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>.<br/>
  33128. The default precision model is defined by <paramref name="precisionModel"/>.<br/>
  33129. The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
  33130. </summary>
  33131. </member>
  33132. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33133. <summary>
  33134. Creates an instance of this class, using a <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision model as default.<br/>
  33135. No <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/> is specified.<br/>
  33136. The default coordinate sequence factory is defined by <paramref name="coordinateSequenceFactory"/>.<br/>
  33137. The <see cref="P:NetTopologySuite.Geometries.GeometryOverlay.Legacy"/> function set for overlay operations is being used.
  33138. </summary>
  33139. </member>
  33140. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
  33141. <summary>
  33142. Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
  33143. <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/> and spatial reference Id (<paramref name="srid"/>).
  33144. </summary>
  33145. <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
  33146. <param name="precisionModel">The precision model.</param>
  33147. <param name="srid">The default spatial reference ID</param>
  33148. </member>
  33149. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.CoordinateEqualityComparer)">
  33150. <summary>
  33151. Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
  33152. <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
  33153. a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
  33154. </summary>
  33155. <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
  33156. <param name="precisionModel">The precision model.</param>
  33157. <param name="srid">The default spatial reference ID</param>
  33158. <param name="geometryOverlay">The geometry overlay function set to use.</param>
  33159. <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
  33160. </member>
  33161. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.GeometryRelate,NetTopologySuite.Geometries.CoordinateEqualityComparer)">
  33162. <summary>
  33163. Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
  33164. <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
  33165. a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
  33166. </summary>
  33167. <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
  33168. <param name="precisionModel">The precision model.</param>
  33169. <param name="srid">The default spatial reference ID</param>
  33170. <param name="geometryOverlay">The geometry overlay function set to use.</param>
  33171. <param name="geometryRelate">The geometry relate function set to use.</param>
  33172. <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
  33173. </member>
  33174. <member name="M:NetTopologySuite.NtsGeometryServices.#ctor(NetTopologySuite.Geometries.CoordinateSequenceFactory,NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.GeometryOverlay,NetTopologySuite.Geometries.GeometryRelate,NetTopologySuite.Geometries.CoordinateEqualityComparer,NetTopologySuite.Algorithm.ElevationModel)">
  33175. <summary>
  33176. Creates an instance of this class, using the provided <see cref="T:NetTopologySuite.Geometries.CoordinateSequenceFactory"/>,
  33177. <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>, a spatial reference Id (<paramref name="srid"/>) and
  33178. a <see cref="T:NetTopologySuite.Geometries.GeometryOverlay"/>.
  33179. </summary>
  33180. <param name="coordinateSequenceFactory">The coordinate sequence factory to use.</param>
  33181. <param name="precisionModel">The precision model.</param>
  33182. <param name="srid">The default spatial reference ID</param>
  33183. <param name="geometryOverlay">The geometry overlay function set to use.</param>
  33184. <param name="geometryRelate">The geometry relate function set to use.</param>
  33185. <param name="coordinateEqualityComparer">The equality comparer for coordinates</param>
  33186. <param name="elevationModel">The elevation model that is used as default. May be <c>null</c></param>
  33187. </member>
  33188. <member name="P:NetTopologySuite.NtsGeometryServices.Instance">
  33189. <summary>
  33190. Gets or sets the default instance of <see cref="T:NetTopologySuite.NtsGeometryServices"/>.
  33191. </summary>
  33192. <exception cref="T:System.ArgumentNullException">
  33193. Thrown when trying to set the value to <see langword="null"/>.
  33194. </exception>
  33195. </member>
  33196. <member name="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay">
  33197. <summary>
  33198. Gets a value indicating the operations to use for geometry overlay.
  33199. </summary>
  33200. <returns>A set of geometry overlay functions.</returns>
  33201. </member>
  33202. <member name="P:NetTopologySuite.NtsGeometryServices.GeometryRelate">
  33203. <summary>
  33204. Gets a value indicating the operations to use for geometry relation determination.
  33205. </summary>
  33206. <returns>A set of geometry relation functions.</returns>
  33207. </member>
  33208. <member name="P:NetTopologySuite.NtsGeometryServices.CoordinateEqualityComparer">
  33209. <summary>
  33210. Gets an object that is used to test 2 coordinates for equality.
  33211. </summary>
  33212. <returns>A coordinate equality tester object</returns>
  33213. </member>
  33214. <member name="P:NetTopologySuite.NtsGeometryServices.DefaultSRID">
  33215. <summary>
  33216. Gets the default spatial reference id
  33217. </summary>
  33218. </member>
  33219. <member name="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory">
  33220. <summary>
  33221. Gets the default coordiate sequence factory to use
  33222. </summary>
  33223. </member>
  33224. <member name="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel">
  33225. <summary>
  33226. Gets the default precision model
  33227. </summary>
  33228. </member>
  33229. <member name="P:NetTopologySuite.NtsGeometryServices.DefaultElevationModel">
  33230. <summary>
  33231. Gets the default elevation model
  33232. </summary>
  33233. </member>
  33234. <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(NetTopologySuite.Geometries.PrecisionModels)">
  33235. <summary>
  33236. Creates a precision model based on given precision model type
  33237. </summary>
  33238. <returns>The precision model type</returns>
  33239. </member>
  33240. <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(NetTopologySuite.Geometries.PrecisionModel)">
  33241. <summary>
  33242. Creates a precision model based on given precision model.
  33243. </summary>
  33244. <returns>The precision model</returns>
  33245. </member>
  33246. <member name="M:NetTopologySuite.NtsGeometryServices.CreatePrecisionModel(System.Double)">
  33247. <summary>
  33248. Creates a precision model based on the given scale factor.
  33249. </summary>
  33250. <param name="scale">The scale factor</param>
  33251. <returns>The precision model.</returns>
  33252. </member>
  33253. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory">
  33254. <summary>
  33255. Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
  33256. <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
  33257. </summary>
  33258. <returns>A geometry factory</returns>
  33259. </member>
  33260. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(System.Int32)">
  33261. <summary>
  33262. Creates or retrieves a geometry factory using <paramref name="srid"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
  33263. <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
  33264. </summary>
  33265. <returns>A geometry factory</returns>
  33266. </member>
  33267. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33268. <summary>
  33269. Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultPrecisionModel"/> and
  33270. <paramref name="coordinateSequenceFactory"/>.
  33271. </summary>
  33272. <returns>A geometry factory</returns>
  33273. </member>
  33274. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel)">
  33275. <summary>
  33276. Creates or retrieves a geometry factory using <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultSRID"/>, <paramref name="precisionModel"/> and
  33277. <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
  33278. </summary>
  33279. <param name="precisionModel">The precision model to use.</param>
  33280. <returns>A geometry factory</returns>
  33281. </member>
  33282. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,System.Int32)">
  33283. <summary>
  33284. Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/> and
  33285. <see cref="P:NetTopologySuite.NtsGeometryServices.DefaultCoordinateSequenceFactory"/>.
  33286. </summary>
  33287. <param name="precisionModel">The precision model to use.</param>
  33288. <param name="srid">The spatial reference id.</param>
  33289. <returns>A geometry factory</returns>
  33290. </member>
  33291. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33292. <summary>
  33293. Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/> and
  33294. <paramref name="coordinateSequenceFactory"/>.
  33295. </summary>
  33296. <param name="precisionModel">The precision model to use.</param>
  33297. <param name="srid">The spatial reference id.</param>
  33298. <param name="coordinateSequenceFactory"></param>
  33299. <returns>A geometry factory</returns>
  33300. </member>
  33301. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactory(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33302. <summary>
  33303. Creates or retrieves a geometry factory using <paramref name="srid"/>, <paramref name="precisionModel"/>
  33304. <paramref name="elevationModel"/> and <paramref name="coordinateSequenceFactory"/>.
  33305. </summary>
  33306. <param name="precisionModel">The precision model to use.</param>
  33307. <param name="elevationModel">The elevation model to use. May be <c>null</c></param>
  33308. <param name="srid">The spatial reference id.</param>
  33309. <param name="coordinateSequenceFactory"></param>
  33310. <returns>A geometry factory</returns>
  33311. </member>
  33312. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactoryCore(NetTopologySuite.Geometries.PrecisionModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33313. <summary>
  33314. Creates a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> based on the given parameters.
  33315. </summary>
  33316. <param name="precisionModel">
  33317. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>.
  33318. </param>
  33319. <param name="srid">
  33320. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>.
  33321. </param>
  33322. <param name="coordinateSequenceFactory">
  33323. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
  33324. </param>
  33325. <returns>
  33326. A <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that has the given values.
  33327. </returns>
  33328. <remarks>
  33329. <para>
  33330. This method is expected to be safe to call from any number of threads at once.
  33331. </para>
  33332. <para>
  33333. Implementations <strong>must</strong> make sure to use a constructor which
  33334. is properly assigning <see cref="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay"/> to the factory.
  33335. </para>
  33336. <para>
  33337. Although the result for a given set of parameters is cached, there is no guarantee that,
  33338. once this method is called with some set of parameters, it will never be called again
  33339. with an exactly equal set of parameters. When this does happen, an arbitrary result is
  33340. chosen as the winner (not necessarily the first one to start or finish), and all other
  33341. results are discarded.
  33342. </para>
  33343. </remarks>
  33344. </member>
  33345. <member name="M:NetTopologySuite.NtsGeometryServices.CreateGeometryFactoryCore(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,System.Int32,NetTopologySuite.Geometries.CoordinateSequenceFactory)">
  33346. <summary>
  33347. Creates a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> based on the given parameters.
  33348. </summary>
  33349. <param name="precisionModel">
  33350. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.PrecisionModel"/>.
  33351. </param>
  33352. <param name="elevationModel">
  33353. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.ElevationModel"/>. May be <c>null</c></param>
  33354. <param name="srid">
  33355. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.SRID"/>.
  33356. </param>
  33357. <param name="coordinateSequenceFactory">
  33358. The value for <see cref="P:NetTopologySuite.Geometries.GeometryFactory.CoordinateSequenceFactory"/>.
  33359. </param>
  33360. <returns>
  33361. A <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> that has the given values.
  33362. </returns>
  33363. <remarks>
  33364. <para>
  33365. This method is expected to be safe to call from any number of threads at once.
  33366. </para>
  33367. <para>
  33368. Implementations <strong>must</strong> make sure to use a constructor which
  33369. is properly assigning <see cref="P:NetTopologySuite.NtsGeometryServices.GeometryOverlay"/> to the factory.
  33370. </para>
  33371. <para>
  33372. Although the result for a given set of parameters is cached, there is no guarantee that,
  33373. once this method is called with some set of parameters, it will never be called again
  33374. with an exactly equal set of parameters. When this does happen, an arbitrary result is
  33375. chosen as the winner (not necessarily the first one to start or finish), and all other
  33376. results are discarded.
  33377. </para>
  33378. </remarks>
  33379. </member>
  33380. <member name="T:NetTopologySuite.Operation.BoundaryOp">
  33381. <summary>
  33382. Computes the boundary of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  33383. Allows specifying the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to be used.
  33384. This operation will always return a <see cref="T:NetTopologySuite.Geometries.Geometry"/> of the appropriate
  33385. dimension for the boundary (even if the input geometry is empty).
  33386. The boundary of zero-dimensional geometries (Points) is
  33387. always the empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>.
  33388. </summary>
  33389. <author>Martin Davis</author>
  33390. </member>
  33391. <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary(NetTopologySuite.Geometries.Geometry)">
  33392. <summary>
  33393. Computes a geometry representing the boundary of a geometry.
  33394. </summary>
  33395. <param name="g">The input geometry.</param>
  33396. <returns>The computed boundary.</returns>
  33397. </member>
  33398. <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  33399. <summary>
  33400. Computes a geometry representing the boundary of a geometry,
  33401. using an explicit <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
  33402. </summary>
  33403. <param name="g">The input geometry.</param>
  33404. <param name="bnRule">The Boundary Node Rule to use.</param>
  33405. <returns>The computed boundary.</returns>
  33406. </member>
  33407. <member name="M:NetTopologySuite.Operation.BoundaryOp.HasBoundary(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  33408. <summary>
  33409. Tests if a geometry has a boundary (it is non-empty).<br/>
  33410. The semantics are:
  33411. <list type="bullet">
  33412. <item><description>Empty geometries do not have boundaries.</description></item>
  33413. <item><description>Points do not have boundaries.</description></item>
  33414. <item><description>For linear geometries the existence of the boundary
  33415. is determined by the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.</description></item>
  33416. <item><description>Non-empty polygons always have a boundary.</description></item>
  33417. </list>
  33418. </summary>
  33419. <param name="geom">The geometry providing the boundary</param>
  33420. <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
  33421. <returns><c>true</c> if the boundary exists</returns>
  33422. </member>
  33423. <member name="M:NetTopologySuite.Operation.BoundaryOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  33424. <summary>
  33425. Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> class for the given geometry.
  33426. </summary>
  33427. <param name="geom">The input geometry.</param>
  33428. </member>
  33429. <member name="M:NetTopologySuite.Operation.BoundaryOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  33430. <summary>
  33431. Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.BoundaryOp"/> class for the given geometry.
  33432. </summary>
  33433. <param name="geom">The input geometry.</param>
  33434. <param name="bnRule">Tthe Boundary Node Rule to use.</param>
  33435. </member>
  33436. <member name="M:NetTopologySuite.Operation.BoundaryOp.GetBoundary">
  33437. <summary>
  33438. Gets the computed boundary.
  33439. </summary>
  33440. <returns>The boundary geometry.</returns>
  33441. </member>
  33442. <member name="F:NetTopologySuite.Operation.BoundaryOp._endpointMap">
  33443. <summary>
  33444. A map which maintains the edges in sorted order around the node.
  33445. </summary>
  33446. </member>
  33447. <member name="T:NetTopologySuite.Operation.Counter">
  33448. <summary>
  33449. Stores an integer count, for use as a Map entry.
  33450. </summary>
  33451. <author>Martin Davis</author>
  33452. </member>
  33453. <member name="T:NetTopologySuite.Operation.Buffer.BufferBuilder">
  33454. <summary>
  33455. Builds the buffer geometry for a given input geometry and precision model.
  33456. Allows setting the level of approximation for circular arcs,
  33457. and the precision model in which to carry out the computation.
  33458. </summary>
  33459. <remarks>
  33460. When computing buffers in floating point double-precision
  33461. it can happen that the process of iterated noding can fail to converge (terminate).
  33462. In this case a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> will be thrown.
  33463. Retrying the computation in a fixed precision
  33464. can produce more robust results.
  33465. </remarks>
  33466. </member>
  33467. <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.DepthDelta(NetTopologySuite.GeometriesGraph.Label)">
  33468. <summary>Compute the change in depth as an edge is crossed from R to L</summary>
  33469. </member>
  33470. <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.#ctor(NetTopologySuite.Operation.Buffer.BufferParameters)">
  33471. <summary>
  33472. Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.Buffer.BufferBuilder"/> class using the given parameters.
  33473. </summary>
  33474. <param name="bufParams">The buffer parameters to use.</param>
  33475. </member>
  33476. <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.WorkingPrecisionModel">
  33477. <summary>
  33478. Sets the precision model to use during the curve computation and noding,
  33479. if it is different to the precision model of the Geometry.
  33480. </summary>
  33481. <remarks>
  33482. If the precision model is less than the precision of the Geometry precision model,
  33483. the Geometry must have previously been rounded to that precision.
  33484. </remarks>
  33485. </member>
  33486. <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.WorkingElevationModel">
  33487. <summary>
  33488. Gets or sets the elevation model to use during the curve computation and noding,
  33489. if it is different to the elevation model of the Geometry.
  33490. </summary>
  33491. </member>
  33492. <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.Noder">
  33493. <summary>
  33494. Sets the <see cref="T:NetTopologySuite.Noding.INoder"/> to use during noding.
  33495. This allows choosing fast but non-robust noding, or slower
  33496. but robust noding.
  33497. </summary>
  33498. </member>
  33499. <member name="P:NetTopologySuite.Operation.Buffer.BufferBuilder.InvertOrientation">
  33500. <summary>
  33501. Sets whether the offset curve is generated
  33502. using the inverted orientation of input rings.
  33503. This allows generating a buffer(0) polygon from the smaller lobes
  33504. of self-crossing rings.
  33505. </summary>
  33506. </member>
  33507. <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.InsertUniqueEdge(NetTopologySuite.GeometriesGraph.Edge)">
  33508. <summary>
  33509. Inserted edges are checked to see if an identical edge already exists.
  33510. If so, the edge is not inserted, but its label is merged
  33511. with the existing edge.
  33512. </summary>
  33513. </member>
  33514. <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.BuildSubgraphs(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Buffer.BufferSubgraph},NetTopologySuite.Operation.Overlay.PolygonBuilder)">
  33515. <summary>
  33516. Completes the building of the input subgraphs by depth-labelling them,
  33517. and adds them to the PolygonBuilder.
  33518. </summary>
  33519. <remarks>
  33520. The subgraph list must be sorted in rightmost-coordinate order.
  33521. </remarks>
  33522. <param name="subgraphList"> the subgraphs to build</param>
  33523. <param name="polyBuilder"> the PolygonBuilder which will build the final polygons</param>
  33524. </member>
  33525. <member name="M:NetTopologySuite.Operation.Buffer.BufferBuilder.CreateEmptyResultGeometry">
  33526. <summary>
  33527. Gets the standard result for an empty buffer.
  33528. Since buffer always returns a polygonal result, this is chosen to be an empty polygon.
  33529. </summary>
  33530. <returns>The empty result geometry</returns>
  33531. </member>
  33532. <member name="T:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder">
  33533. <summary>
  33534. Creates all the raw offset curves for a buffer of a <c>Geometry</c>.
  33535. Raw curves need to be noded together and polygonized to form the final buffer area.
  33536. </summary>
  33537. </member>
  33538. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Operation.Buffer.BufferParameters)">
  33539. <summary>
  33540. </summary>
  33541. <param name="inputGeom">The input geometry</param>
  33542. <param name="distance">The offset distance</param>
  33543. <param name="precisionModel">A precision model</param>
  33544. <param name="parameters">The buffer parameters</param>
  33545. </member>
  33546. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Operation.Buffer.BufferParameters)">
  33547. <summary>
  33548. </summary>
  33549. <param name="inputGeom">The input geometry</param>
  33550. <param name="distance">The offset distance</param>
  33551. <param name="precisionModel">A precision model</param>
  33552. <param name="em">An elevation model model. May be <c>null</c></param>
  33553. <param name="parameters">The buffer parameters</param>
  33554. </member>
  33555. <member name="P:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.InvertOrientation">
  33556. <summary>
  33557. Gets or sets a value indicating whether the offset curve is generated
  33558. using the inverted orientation of input rings.
  33559. This allows generating a buffer(0) polygon from the smaller lobes
  33560. of self-crossing rings.
  33561. </summary>
  33562. </member>
  33563. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsRingCCW(NetTopologySuite.Geometries.Coordinate[])">
  33564. <summary>
  33565. Computes orientation of a ring using a signed-area orientation test.
  33566. For invalid (self-crossing) rings this ensures the largest enclosed area
  33567. is taken to be the interior of the ring.
  33568. This produces a more sensible result when
  33569. used for repairing polygonal geometry via buffer-by-zero.
  33570. For buffer use the lower robustness of orientation-by-area
  33571. doesn't matter, since narrow or flat rings
  33572. produce an acceptable offset curve for either orientation.
  33573. </summary>
  33574. <param name="coord">The ring coordinates</param>
  33575. <returns>true if the ring is CCW</returns>
  33576. </member>
  33577. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.GetCurves">
  33578. <summary>
  33579. Computes the set of raw offset curves for the buffer.
  33580. Each offset curve has an attached {Label} indicating
  33581. its left and right location.
  33582. </summary>
  33583. <returns>A Collection of SegmentStrings representing the raw buffer curves.</returns>
  33584. </member>
  33585. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  33586. <summary>
  33587. Creates a {SegmentString} for a coordinate list which is a raw offset curve,
  33588. and adds it to the list of buffer curves.
  33589. The SegmentString is tagged with a Label giving the topology of the curve.
  33590. The curve may be oriented in either direction.
  33591. If the curve is oriented CW, the locations will be:
  33592. Left: Location.Exterior.
  33593. Right: Location.Interior.
  33594. </summary>
  33595. </member>
  33596. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.Add(NetTopologySuite.Geometries.Geometry)">
  33597. <summary>
  33598. </summary>
  33599. <param name="g"></param>
  33600. </member>
  33601. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddCollection(NetTopologySuite.Geometries.Geometry)">
  33602. <summary>
  33603. </summary>
  33604. <param name="gc"></param>
  33605. </member>
  33606. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddPoint(NetTopologySuite.Geometries.Geometry)">
  33607. <summary>
  33608. Add a Point to the graph.
  33609. </summary>
  33610. <param name="p"></param>
  33611. </member>
  33612. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.Clean(NetTopologySuite.Geometries.Coordinate[])">
  33613. <summary>
  33614. Keeps only valid coordinates, and removes repeated points.
  33615. </summary>
  33616. <param name="coords">The coordinates to clean</param>
  33617. <returns>An array of clean coordinates</returns>
  33618. </member>
  33619. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddPolygon(NetTopologySuite.Geometries.Polygon)">
  33620. <summary>
  33621. </summary>
  33622. <param name="p"></param>
  33623. </member>
  33624. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.AddRingSide(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  33625. <summary>
  33626. Adds an offset curve for a polygon ring.
  33627. The side and left and right topological location arguments
  33628. assume that the ring is oriented CW.
  33629. If the ring is in the opposite orientation,
  33630. the left and right locations must be interchanged and the side flipped.
  33631. </summary>
  33632. <param name="coord">The coordinates of the ring (must not contain repeated points).</param>
  33633. <param name="offsetDistance">The distance at which to create the buffer.</param>
  33634. <param name="side">The side of the ring on which to construct the buffer line.</param>
  33635. <param name="cwLeftLoc">The location on the L side of the ring (if it is CW).</param>
  33636. <param name="cwRightLoc">The location on the R side of the ring (if it is CW).</param>
  33637. </member>
  33638. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsRingCurveInverted(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
  33639. <summary>
  33640. Tests whether the offset curve for a ring is fully inverted.
  33641. An inverted ("inside-out") curve occurs in some specific situations
  33642. involving a buffer distance which should result in a fully-eroded (empty) buffer.
  33643. It can happen that the sides of a small, convex polygon
  33644. produce offset segments which all cross one another to form
  33645. a curve with inverted orientation.<br/>
  33646. This happens at buffer distances slightly greater than the distance at
  33647. which the buffer should disappear.<br/>
  33648. The inverted curve will produce an incorrect non-empty buffer (for a shell)
  33649. or an incorrect hole (for a hole).
  33650. It must be discarded from the set of offset curves used in the buffer.
  33651. Heuristics are used to reduce the number of cases which area checked,
  33652. for efficiency and correctness.
  33653. <para/>
  33654. See <a href="https://github.com/locationtech/jts/issues/472"/>
  33655. </summary>
  33656. <param name="inputRing">the input ring</param>
  33657. <param name="distance">the buffer distance</param>
  33658. <param name="curveRing">the generated offset curve</param>
  33659. <returns>true if the offset curve is inverted</returns>
  33660. </member>
  33661. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.hasPointOnBuffer(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
  33662. <summary>
  33663. Tests if there are points on the raw offset curve which may
  33664. lie on the final buffer curve
  33665. (i.e.they are (approximately) at the buffer distance from the input ring).
  33666. For efficiency this only tests a limited set of points on the curve.
  33667. </summary>
  33668. <param name="inputRing">The input ring</param>
  33669. <param name="distance">The distance</param>
  33670. <param name="curveRing">The curve ring</param>
  33671. <returns><c>true</c> if the curve contains points lying at the required buffer distance</returns>
  33672. </member>
  33673. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  33674. <summary>
  33675. Tests whether a ring buffer is eroded completely (is empty)
  33676. based on simple heuristics.
  33677. <para/>
  33678. The <paramref name="ringCoord"/> is assumed to contain no repeated points.
  33679. It may be degenerate (i.e. contain only 1, 2, or 3 points).
  33680. In this case it has no area, and hence has a minimum diameter of 0.
  33681. </summary>
  33682. <param name="ringCoord"></param>
  33683. <param name="bufferDistance"></param>
  33684. <returns></returns>
  33685. </member>
  33686. <member name="M:NetTopologySuite.Operation.Buffer.BufferCurveSetBuilder.IsTriangleErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  33687. <summary>
  33688. Tests whether a triangular ring would be eroded completely by the given
  33689. buffer distance.
  33690. This is a precise test. It uses the fact that the inner buffer of a
  33691. triangle converges on the inCentre of the triangle (the point
  33692. equidistant from all sides). If the buffer distance is greater than the
  33693. distance of the inCentre from a side, the triangle will be eroded completely.
  33694. This test is important, since it removes a problematic case where
  33695. the buffer distance is slightly larger than the inCentre distance.
  33696. In this case the triangle buffer curve "inverts" with incorrect topology,
  33697. producing an incorrect hole in the buffer.
  33698. </summary>
  33699. <param name="triangleCoord"></param>
  33700. <param name="bufferDistance"></param>
  33701. <returns></returns>
  33702. </member>
  33703. <member name="T:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier">
  33704. <summary>
  33705. Simplifies a buffer input line to remove concavities with shallow depth.
  33706. </summary>
  33707. <remarks>
  33708. <para>
  33709. The major benefit of doing this
  33710. is to reduce the number of points and the complexity of
  33711. shape which will be buffered.
  33712. This improves performance and robustness.
  33713. It also reduces the risk of gores created by
  33714. the quantized fillet arcs (although this issue
  33715. should be eliminated by the
  33716. offset curve generation logic).
  33717. </para>
  33718. <para>
  33719. A key aspect of the simplification is that it
  33720. affects inside (concave or inward) corners only.
  33721. Convex (outward) corners are preserved, since they
  33722. are required to ensure that the generated buffer curve
  33723. lies at the correct distance from the input geometry.
  33724. </para>
  33725. <para>
  33726. Another important heuristic used is that the end segments
  33727. of linear inputs are never simplified. This ensures that
  33728. the client buffer code is able to generate end caps faithfully.
  33729. Ring inputs can have end segments removed by simplification.
  33730. </para>
  33731. <para>
  33732. No attempt is made to avoid self-intersections in the output.
  33733. This is acceptable for use for generating a buffer offset curve,
  33734. since the buffer algorithm is insensitive to invalid polygonal
  33735. geometry. However,
  33736. this means that this algorithm
  33737. cannot be used as a general-purpose polygon simplification technique.
  33738. </para>
  33739. </remarks>
  33740. <author> Martin Davis</author>
  33741. </member>
  33742. <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  33743. <summary>
  33744. Simplify the input coordinate list.
  33745. If the distance tolerance is positive,
  33746. concavities on the LEFT side of the line are simplified.
  33747. If the supplied distance tolerance is negative,
  33748. concavities on the RIGHT side of the line are simplified.
  33749. </summary>
  33750. <param name="inputLine">The coordinate list to simplify</param>
  33751. <param name="distanceTol">simplification distance tolerance to use</param>
  33752. <returns>The simplified coordinate list</returns>
  33753. </member>
  33754. <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.Simplify(System.Double)">
  33755. <summary>
  33756. Simplify the input coordinate list.
  33757. </summary>
  33758. <remarks>
  33759. If the distance tolerance is positive, concavities on the LEFT side of the line are simplified.
  33760. If the supplied distance tolerance is negative, concavities on the RIGHT side of the line are simplified.
  33761. </remarks>
  33762. <param name="distanceTol">Simplification distance tolerance to use</param>
  33763. <returns>
  33764. The simplified coordinates list
  33765. </returns>
  33766. </member>
  33767. <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.DeleteShallowConcavities">
  33768. <summary>
  33769. Uses a sliding window containing 3 vertices to detect shallow angles
  33770. in which the middle vertex can be deleted, since it does not
  33771. affect the shape of the resulting buffer in a significant way.
  33772. </summary>
  33773. <returns><c>true</c> if any vertices were deleted</returns>
  33774. </member>
  33775. <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.NextIndex(System.Int32)">
  33776. <summary>
  33777. Finds the next non-deleted index, or the end of the point array if none
  33778. </summary>
  33779. <param name="index">The start index to search from</param>
  33780. <returns>The next non-deleted index, if any <br/>
  33781. or <c>_inputLine.Length</c> if there are no more non-deleted indices
  33782. </returns>
  33783. </member>
  33784. <member name="M:NetTopologySuite.Operation.Buffer.BufferInputLineSimplifier.IsShallowSampled(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Int32,System.Int32,System.Double)">
  33785. <summary>
  33786. Checks for shallowness over a sample of points in the given section.
  33787. This helps to prevent the simplification from incrementally
  33788. "skipping" over points which are in fact non-shallow.
  33789. </summary>
  33790. <param name="p0">A coordinate of section</param>
  33791. <param name="p2">A coordinate of section</param>
  33792. <param name="i0">The start index of section</param>
  33793. <param name="i2">The end index of section</param>
  33794. <param name="distanceTol">The tolerated distance</param>
  33795. </member>
  33796. <member name="T:NetTopologySuite.Operation.Buffer.BufferOp">
  33797. <summary>
  33798. Computes the buffer of a geometry, for both positive and negative buffer distances.
  33799. </summary>
  33800. <remarks>
  33801. <para>
  33802. In GIS, the positive (or negative) buffer of a geometry is defined as
  33803. the Minkowski sum (or difference) of the geometry
  33804. with a circle of radius equal to the absolute value of the buffer distance.
  33805. In the CAD/CAM world buffers are known as <i>offset curves</i>.
  33806. In morphological analysis the
  33807. operation of positive and negative buffering
  33808. is referred to as <i>erosion</i> and <i>dilation</i>
  33809. </para>
  33810. <para>
  33811. The buffer operation always returns a polygonal result.
  33812. The negative or zero-distance buffer of lines and points is always an empty <see cref="T:NetTopologySuite.Geometries.Polygon" />.
  33813. </para>
  33814. <para>
  33815. Since true buffer curves may contain circular arcs,
  33816. computed buffer polygons are only approximations to the true geometry.
  33817. The user can control the accuracy of the approximation by specifying
  33818. the number of linear segments used to approximate arcs.
  33819. This is specified via <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.QuadrantSegments"/>
  33820. or <see cref="P:NetTopologySuite.Operation.Buffer.BufferOp.QuadrantSegments"/>.
  33821. </para>
  33822. <para>
  33823. The <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.EndCapStyle"/> of a linear buffer may be specified.
  33824. The following end cap styles are supported:
  33825. <ul>
  33826. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round" /> - the usual round end caps</li>
  33827. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat" /> - end caps are truncated flat at the line ends</li>
  33828. <li><see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square" /> - end caps are squared off at the buffer distance beyond the line ends</li>
  33829. </ul>
  33830. </para>
  33831. <para>
  33832. The <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.JoinStyle"/> of the corners in a buffer may be specified.
  33833. The following join styles are supported:
  33834. <ul>
  33835. <li><see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round" /> - the usual round join</li>
  33836. <li><see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Mitre" /> - corners are "sharp" (up to a <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.MitreLimit"/> distance limit})</li>
  33837. <li><see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel" /> - corners are beveled (clipped off)</li>
  33838. </ul>
  33839. </para>
  33840. <para>
  33841. The buffer algorithm may perform simplification on the input to increase performance.
  33842. The simplification is performed a way that always increases the buffer area
  33843. (so that the simplified input covers the original input).
  33844. The degree of simplification can be specified with <see cref="P:NetTopologySuite.Operation.Buffer.BufferParameters.SimplifyFactor"/>,
  33845. with a <see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultSimplifyFactor"/> used otherwise.
  33846. Note that if the buffer distance is zero then so is the computed simplify tolerance,
  33847. no matter what the simplify factor.
  33848. </para>
  33849. <para>
  33850. Buffer results are always valid geometry.
  33851. Given this, computing a zero-width buffer of an invalid polygonal geometry is
  33852. an effective way to "validify" the geometry.
  33853. Note however that in the case of self-intersecting "bow-tie" geometries,
  33854. only the largest enclosed area will be retained.
  33855. </para>
  33856. </remarks>
  33857. </member>
  33858. <member name="F:NetTopologySuite.Operation.Buffer.BufferOp.MaxPrecisionDigits">
  33859. <summary>
  33860. A number of digits of precision which leaves some computational "headroom"
  33861. for floating point operations.
  33862. </summary>
  33863. <remarks>
  33864. This value should be less than the decimal precision of double-precision values (16).
  33865. </remarks>
  33866. </member>
  33867. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.PrecisionScaleFactor(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32)">
  33868. <summary>
  33869. Compute a scale factor to limit the precision of
  33870. a given combination of Geometry and buffer distance.
  33871. The scale factor is determined by
  33872. the number of digits of precision in the (geometry + buffer distance),
  33873. limited by the supplied <paramref name="maxPrecisionDigits"/> value.
  33874. <para/>
  33875. The scale factor is based on the absolute magnitude of the (geometry + buffer distance).
  33876. since this determines the number of digits of precision which must be handled.
  33877. </summary>
  33878. <param name="g"> the Geometry being buffered</param>
  33879. <param name="distance"> the buffer distance</param>
  33880. <param name="maxPrecisionDigits"> the max # of digits that should be allowed by
  33881. the precision determined by the computed scale factor</param>
  33882. <returns> a scale factor for the buffer computation</returns>
  33883. </member>
  33884. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double)">
  33885. <summary>
  33886. Computes the buffer of a geometry for a given buffer distance.
  33887. </summary>
  33888. <param name="g"> the geometry to buffer</param>
  33889. <param name="distance"> the buffer distance</param>
  33890. <returns> the buffer of the input geometry</returns>
  33891. </member>
  33892. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
  33893. <summary>
  33894. Computes the buffer for a geometry for a given buffer distance
  33895. and accuracy of approximation.
  33896. </summary>
  33897. <param name="g"> the geometry to buffer</param>
  33898. <param name="distance"> the buffer distance</param>
  33899. <param name="parameters"> the buffer parameters to use</param>
  33900. <returns> the buffer of the input geometry</returns>
  33901. </member>
  33902. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32)">
  33903. <summary>
  33904. Computes the buffer for a geometry for a given buffer distance
  33905. and accuracy of approximation.
  33906. </summary>
  33907. <param name="g"> the geometry to buffer</param>
  33908. <param name="distance"> the buffer distance</param>
  33909. <param name="quadrantSegments"> the number of segments used to approximate a quarter circle</param>
  33910. <returns> the buffer of the input geometry</returns>
  33911. </member>
  33912. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.BufferByZero(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  33913. <summary>
  33914. Buffers a geometry with distance zero.
  33915. The result can be computed using the maximum-signed-area orientation,
  33916. or by combining both orientations.
  33917. <para/>
  33918. This can be used to fix an invalid polygonal geometry to be valid
  33919. (i.e.with no self-intersections).
  33920. For some uses(e.g.fixing the result of a simplification)
  33921. a better result is produced by using only the max-area orientation.
  33922. Other uses (e.g.fixing geometry) require both orientations to be used.
  33923. <para/>
  33924. This function is for INTERNAL use only.
  33925. </summary>
  33926. <param name="geom">The polygonal geometry to buffer by zero</param>
  33927. <param name="isBothOrientations">A flag indicating if both orientations of input rings should be used</param>
  33928. <returns>The buffered polygonal geometry</returns>
  33929. </member>
  33930. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.Combine(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  33931. <summary>
  33932. Combines the elements of two polygonal geometries together.
  33933. The input geometries must be non-adjacent, to avoid
  33934. creating an invalid result.
  33935. </summary>
  33936. <param name="poly0">A polygonal geometry (which may be empty)</param>
  33937. <param name="poly1">Another polygonal geometry (which may be empty)</param>
  33938. <returns>A combined polygonal geometry</returns>
  33939. </member>
  33940. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  33941. <summary>
  33942. Initializes a buffer computation for the given geometry
  33943. </summary>
  33944. <param name="g"> the geometry to buffer</param>
  33945. </member>
  33946. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Buffer.BufferParameters)">
  33947. <summary>
  33948. Initializes a buffer computation for the given geometry
  33949. with the given set of parameters
  33950. </summary>
  33951. <param name="g"> the geometry to buffer</param>
  33952. <param name="bufParams"> the buffer parameters to use</param>
  33953. </member>
  33954. <member name="P:NetTopologySuite.Operation.Buffer.BufferOp.QuadrantSegments">
  33955. <summary>
  33956. Gets or sets the number of line segments in a quarter-circle
  33957. used to approximate angle fillets for round end caps and joins.
  33958. </summary>
  33959. </member>
  33960. <member name="M:NetTopologySuite.Operation.Buffer.BufferOp.GetResultGeometry(System.Double)">
  33961. <summary>
  33962. Returns the buffer computed for a geometry for a given buffer distance.
  33963. </summary>
  33964. <param name="distance"> the buffer distance</param>
  33965. <returns> the buffer of the input geometry</returns>
  33966. </member>
  33967. <member name="T:NetTopologySuite.Operation.Buffer.BufferParameters">
  33968. <summary>
  33969. A value class containing the parameters which
  33970. specify how a buffer should be constructed.
  33971. <para/>
  33972. The parameters allow control over:
  33973. <list type="bullet">
  33974. <item><description>Quadrant segments (accuracy of approximation for circular arcs)</description></item>
  33975. <item><description>End Cap style</description></item>
  33976. <item><description>Join style</description></item>
  33977. <item><description>Mitre limit</description></item>
  33978. <item><description>whether the buffer is single-sided</description></item>
  33979. </list>
  33980. </summary>
  33981. <author>Martin Davis</author>
  33982. </member>
  33983. <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments">
  33984. <summary>
  33985. The default number of facets into which to divide a fillet of 90 degrees.<br/>
  33986. A value of 8 gives less than 2% max error in the buffer distance.<para/>
  33987. For a max error of &lt; 1%, use QS = 12.<para/>
  33988. For a max error of &lt; 0.1%, use QS = 18.
  33989. </summary>
  33990. </member>
  33991. <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultJoinStyle">
  33992. <summary>
  33993. The default number of facets into which to divide a fillet of 90 degrees.<br/>
  33994. A value of 8 gives less than 2% max error in the buffer distance.<para/>
  33995. For a max error of &lt; 1%, use QS = 12.<para/>
  33996. For a max error of &lt; 0.1%, use QS = 18.
  33997. </summary>
  33998. </member>
  33999. <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultMitreLimit">
  34000. <summary>
  34001. The default mitre limit
  34002. Allows fairly pointy mitres.
  34003. </summary>
  34004. </member>
  34005. <member name="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultSimplifyFactor">
  34006. <summary>
  34007. The default simplify factor.
  34008. Provides an accuracy of about 1%, which matches
  34009. the accuracy of the <see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments"/> parameter.
  34010. </summary>
  34011. </member>
  34012. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor">
  34013. <summary>
  34014. Creates a default set of parameters
  34015. </summary>
  34016. </member>
  34017. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32)">
  34018. <summary>
  34019. Creates a set of parameters with the given quadrantSegments value.
  34020. </summary>
  34021. <param name="quadrantSegments">The number of quadrant segments to use</param>
  34022. </member>
  34023. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle)">
  34024. <summary>
  34025. Creates a set of parameters with the
  34026. given quadrantSegments and endCapStyle values.
  34027. </summary>
  34028. <param name="quadrantSegments"> the number of quadrant segments to use</param>
  34029. <param name="endCapStyle"> the end cap style to use</param>
  34030. </member>
  34031. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.#ctor(System.Int32,NetTopologySuite.Operation.Buffer.EndCapStyle,NetTopologySuite.Operation.Buffer.JoinStyle,System.Double)">
  34032. <summary>
  34033. Creates a set of parameters with the
  34034. given parameter values.
  34035. </summary>
  34036. <param name="quadrantSegments"> the number of quadrant segments to use</param>
  34037. <param name="endCapStyle"> the end cap style to use</param>
  34038. <param name="joinStyle"> the join style to use</param>
  34039. <param name="mitreLimit"> the mitre limit to use</param>
  34040. </member>
  34041. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.QuadrantSegments">
  34042. <summary>
  34043. Gets or sets the number of line segments in a quarter-circle
  34044. used to approximate angle fillets in round endcaps and joins.
  34045. The value should be at least 1.
  34046. <para/>
  34047. This determines the
  34048. error in the approximation to the true buffer curve.<br/>
  34049. The default value of 8 gives less than 2% error in the buffer distance.<para/>
  34050. For an error of &lt; 1%, use QS = 12.<para/>
  34051. For an error of &lt; 0.1%, use QS = 18.<para/>
  34052. The error is always less than the buffer distance
  34053. (in other words, the computed buffer curve is always inside the true
  34054. curve).
  34055. </summary>
  34056. </member>
  34057. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.BufferDistanceError(System.Int32)">
  34058. <summary>
  34059. Computes the maximum distance error due to a given level of approximation to a true arc.
  34060. </summary>
  34061. <param name="quadSegs">The number of segments used to approximate a quarter-circle</param>
  34062. <returns>The error of approximation</returns>
  34063. </member>
  34064. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.EndCapStyle">
  34065. <summary>
  34066. Gets or sets the end cap style of the generated buffer.
  34067. </summary>
  34068. <remarks>
  34069. <para>
  34070. The styles supported are <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round"/>,
  34071. <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat"/>, and
  34072. <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square"/>.
  34073. </para>
  34074. <para>The default is <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round"/>.</para>
  34075. </remarks>
  34076. </member>
  34077. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.JoinStyle">
  34078. <summary>
  34079. Gets/Sets the join style for outside (reflex) corners between line segments.
  34080. </summary>
  34081. <remarks>
  34082. <para>The styles supported are <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round"/>,
  34083. <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Mitre"/> and <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel"/></para>
  34084. The default is <see cref="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round"/>
  34085. </remarks>
  34086. </member>
  34087. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.MitreLimit">
  34088. <summary>
  34089. Sets the limit on the mitre ratio used for very sharp corners.
  34090. </summary>
  34091. <remarks>
  34092. <para>
  34093. The mitre ratio is the ratio of the distance from the corner
  34094. to the end of the mitred offset corner.
  34095. When two line segments meet at a sharp angle,
  34096. a miter join will extend far beyond the original geometry.
  34097. (and in the extreme case will be infinitely far.)
  34098. To prevent unreasonable geometry, the mitre limit
  34099. allows controlling the maximum length of the join corner.
  34100. Corners with a ratio which exceed the limit will be beveled.
  34101. </para>
  34102. </remarks>
  34103. </member>
  34104. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.IsSingleSided">
  34105. <summary>
  34106. Gets or sets whether the computed buffer should be single-sided.
  34107. A single-sided buffer is constructed on only one side of each input line.
  34108. <para>
  34109. The side used is determined by the sign of the buffer distance:
  34110. <list type="bullet">
  34111. <item><description>a positive distance indicates the left-hand side</description></item>
  34112. <item><description>a negative distance indicates the right-hand side</description></item>
  34113. </list>
  34114. The single-sided buffer of point geometries is the same as the regular buffer.
  34115. </para><para>
  34116. The End Cap Style for single-sided buffers is always ignored,
  34117. and forced to the equivalent of <see cref="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat"/>.
  34118. </para>
  34119. </summary>
  34120. </member>
  34121. <member name="P:NetTopologySuite.Operation.Buffer.BufferParameters.SimplifyFactor">
  34122. <summary>
  34123. Factor used to determine the simplify distance tolerance
  34124. for input simplification.
  34125. Simplifying can increase the performance of computing buffers.
  34126. Generally the simplify factor should be greater than 0.
  34127. Values between 0.01 and .1 produce relatively good accuracy for the generate buffer.
  34128. Larger values sacrifice accuracy in return for performance.
  34129. </summary>
  34130. </member>
  34131. <member name="M:NetTopologySuite.Operation.Buffer.BufferParameters.Copy">
  34132. <summary>
  34133. Creates a copy
  34134. </summary>
  34135. <returns></returns>
  34136. </member>
  34137. <member name="T:NetTopologySuite.Operation.Buffer.BufferSubgraph">
  34138. <summary>
  34139. A connected subset of the graph of
  34140. <c>DirectedEdges</c> and <c>Node</c>s.
  34141. Its edges will generate either
  34142. a single polygon in the complete buffer, with zero or more holes, or
  34143. one or more connected holes.
  34144. </summary>
  34145. </member>
  34146. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.#ctor">
  34147. <summary>
  34148. </summary>
  34149. </member>
  34150. <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.DirectedEdges">
  34151. <summary>
  34152. </summary>
  34153. </member>
  34154. <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.Nodes">
  34155. <summary>
  34156. </summary>
  34157. </member>
  34158. <member name="P:NetTopologySuite.Operation.Buffer.BufferSubgraph.RightMostCoordinate">
  34159. <summary>
  34160. Gets the rightmost coordinate in the edges of the subgraph.
  34161. </summary>
  34162. </member>
  34163. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.Create(NetTopologySuite.GeometriesGraph.Node)">
  34164. <summary>
  34165. Creates the subgraph consisting of all edges reachable from this node.
  34166. Finds the edges in the graph and the rightmost coordinate.
  34167. </summary>
  34168. <param name="node">A node to start the graph traversal from.</param>
  34169. </member>
  34170. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.AddReachable(NetTopologySuite.GeometriesGraph.Node)">
  34171. <summary>
  34172. Adds all nodes and edges reachable from this node to the subgraph.
  34173. Uses an explicit stack to avoid a large depth of recursion.
  34174. </summary>
  34175. <param name="startNode">A node known to be in the subgraph.</param>
  34176. </member>
  34177. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.Add(NetTopologySuite.GeometriesGraph.Node,System.Collections.Generic.Stack{NetTopologySuite.GeometriesGraph.Node})">
  34178. <summary>
  34179. Adds the argument node and all its out edges to the subgraph
  34180. </summary>
  34181. <param name="node">The node to add.</param>
  34182. <param name="nodeStack">The current set of nodes being traversed.</param>
  34183. </member>
  34184. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ClearVisitedEdges">
  34185. <summary>
  34186. </summary>
  34187. </member>
  34188. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeDepth(System.Int32)">
  34189. <summary>
  34190. </summary>
  34191. <param name="outsideDepth"></param>
  34192. </member>
  34193. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  34194. <summary>
  34195. Compute depths for all dirEdges via breadth-first traversal of nodes in graph.
  34196. </summary>
  34197. <param name="startEdge">Edge to start processing with.</param>
  34198. </member>
  34199. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.ComputeNodeDepth(NetTopologySuite.GeometriesGraph.Node)">
  34200. <summary>
  34201. </summary>
  34202. <param name="n"></param>
  34203. </member>
  34204. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.CopySymDepths(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  34205. <summary>
  34206. </summary>
  34207. <param name="de"></param>
  34208. </member>
  34209. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.FindResultEdges">
  34210. <summary>
  34211. Find all edges whose depths indicates that they are in the result area(s).
  34212. Since we want polygon shells to be
  34213. oriented CW, choose dirEdges with the interior of the result on the RHS.
  34214. Mark them as being in the result.
  34215. Interior Area edges are the result of dimensional collapses.
  34216. They do not form part of the result area boundary.
  34217. </summary>
  34218. </member>
  34219. <member name="M:NetTopologySuite.Operation.Buffer.BufferSubgraph.CompareTo(System.Object)">
  34220. <summary>
  34221. BufferSubgraphs are compared on the x-value of their rightmost Coordinate.
  34222. This defines a partial ordering on the graphs such that:
  34223. g1 >= g2 - Ring(g2) does not contain Ring(g1)
  34224. where Polygon(g) is the buffer polygon that is built from g.
  34225. This relationship is used to sort the BufferSubgraphs so that shells are guaranteed to
  34226. be built before holes.
  34227. </summary>
  34228. </member>
  34229. <member name="T:NetTopologySuite.Operation.Buffer.EndCapStyle">
  34230. <summary>
  34231. End cap style constants
  34232. </summary>
  34233. </member>
  34234. <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Round">
  34235. <summary>
  34236. Specifies a round line buffer end cap style.
  34237. </summary>
  34238. </member>
  34239. <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Flat">
  34240. <summary>
  34241. Specifies a flat line buffer end cap style.
  34242. </summary>
  34243. </member>
  34244. <member name="F:NetTopologySuite.Operation.Buffer.EndCapStyle.Square">
  34245. <summary>
  34246. Specifies a square line buffer end cap style.
  34247. </summary>
  34248. </member>
  34249. <member name="T:NetTopologySuite.Operation.Buffer.JoinStyle">
  34250. <summary>
  34251. Join style constants
  34252. </summary>
  34253. </member>
  34254. <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Round">
  34255. <summary>
  34256. Specifies a round join style.
  34257. </summary>
  34258. </member>
  34259. <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Mitre">
  34260. <summary>
  34261. Specifies a mitre join style.
  34262. </summary>
  34263. </member>
  34264. <member name="F:NetTopologySuite.Operation.Buffer.JoinStyle.Bevel">
  34265. <summary>
  34266. Specifies a bevel join style.
  34267. </summary>
  34268. </member>
  34269. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurve">
  34270. <summary>
  34271. Computes an offset curve from a geometry.
  34272. An offset curve is a linear geometry which is offset a given distance
  34273. from the input.
  34274. If the offset distance is positive the curve lies on the left side of the input;
  34275. if it is negative the curve is on the right side.
  34276. The curve(s) have the same direction as the input line(s).
  34277. The result for a zero offset distance is a copy of the input linework.
  34278. <para/>
  34279. The offset curve is based on the boundary of the buffer for the geometry
  34280. at the offset distance(see <see cref="T:NetTopologySuite.Operation.Buffer.BufferOp"/>.
  34281. The normal mode of operation is to return the sections of the buffer boundarywhich lie on the raw offset curve
  34282. (obtained via <see cref="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double)"/>.
  34283. The offset curve will contain multiple sections
  34284. if the input self-intersects or has close approaches.The computed sections are ordered along the raw offset curve.
  34285. Sections are disjoint.They never self-intersect, but may be rings.
  34286. <list type="bullet">
  34287. <item><description>For a <see cref="T:NetTopologySuite.Geometries.LineString"/> the offset curve is a linear geometry
  34288. (<see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>).</description></item>
  34289. <item><description>For a <see cref="T:NetTopologySuite.Geometries.Point"/> or <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> the offset curve is an empty <see cref="T:NetTopologySuite.Geometries.LineString"/>.</description></item>
  34290. <item><description>For a <see cref="T:NetTopologySuite.Geometries.Polygon"/> the offset curve is the boundary of the polygon buffer (which
  34291. may be a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>).</description></item>
  34292. <item><description>For a collection the output is a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/> containing the offset curves of the elements.</description></item>
  34293. </list>
  34294. <para/>
  34295. In "joined" mode (see {@link #setJoined(boolean)}
  34296. the sections computed for each input line are joined into a single offset curve line.
  34297. The joined curve may self-intersect.
  34298. At larger offset distances the curve may contain "flat-line" artifacts
  34299. in places where the input self-intersects.
  34300. <para/>
  34301. Offset curves support setting the number of quadrant segments,
  34302. the join style, and the mitre limit(if applicable) via
  34303. the <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
  34304. </summary>
  34305. <author>Martin Davis</author>
  34306. </member>
  34307. <member name="F:NetTopologySuite.Operation.Buffer.OffsetCurve.MatchDistanceFactor">
  34308. <summary>
  34309. The nearness tolerance for matching the raw offset linework and the buffer curve.
  34310. </summary>
  34311. </member>
  34312. <member name="F:NetTopologySuite.Operation.Buffer.OffsetCurve.MinQuadrantSegments">
  34313. <summary>
  34314. A QuadSegs minimum value that will prevent generating
  34315. unwanted offset curve artifacts near end caps.
  34316. </summary>
  34317. </member>
  34318. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve(NetTopologySuite.Geometries.Geometry,System.Double)">
  34319. <summary>
  34320. Computes the offset curve of a geometry at a given distance.
  34321. </summary>
  34322. <param name="geom">A geometry</param>
  34323. <param name="distance">the offset distance (positive for left, negative for right)</param>
  34324. <returns>The offset curve</returns>
  34325. </member>
  34326. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve(NetTopologySuite.Geometries.Geometry,System.Double,System.Int32,NetTopologySuite.Operation.Buffer.JoinStyle,System.Double)">
  34327. <summary>
  34328. Computes the offset curve of a geometry at a given distance,
  34329. with specified quadrant segments, join style and mitre limit.
  34330. </summary>
  34331. <param name="geom">A geometry</param>
  34332. <param name="distance">The offset distance (positive for left, negative for right)</param>
  34333. <param name="quadSegs">The quadrant segments</param>
  34334. <param name="joinStyle">The join style</param>
  34335. <param name="mitreLimit">The mitre limit</param>
  34336. <returns>The offset curve</returns>
  34337. </member>
  34338. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurveJoined(NetTopologySuite.Geometries.Geometry,System.Double)">
  34339. <summary>
  34340. Computes the offset curve of a geometry at a given distance,
  34341. joining curve sections into a single line for each input line.
  34342. </summary>
  34343. <param name="geom">A geometry</param>
  34344. <param name="distance">the offset distance (positive for left, negative for right)</param>
  34345. <returns>The joined offset curve</returns>
  34346. </member>
  34347. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
  34348. <summary>
  34349. Creates a new instance for computing an offset curve for a geometry at a given distance.
  34350. with default quadrant segments(<see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultQuadrantSegments"/>
  34351. and join style (<see cref="F:NetTopologySuite.Operation.Buffer.BufferParameters.DefaultJoinStyle"/>).
  34352. </summary>
  34353. <param name="geom">The geometry</param>
  34354. <param name="distance">The offset distance (positive for left, negative for right)</param>
  34355. </member>
  34356. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
  34357. <summary>
  34358. Creates a new instance for computing an offset curve for a geometry at a given distance.
  34359. setting the quadrant segments, join style and mitre limit
  34360. via <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
  34361. </summary>
  34362. <param name="geom">The geometry</param>
  34363. <param name="distance">The offset distance (positive for left, negative for right)</param>
  34364. <param name="bufParams">The buffer paramters to use</param>
  34365. </member>
  34366. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurve.Joined">
  34367. <summary>
  34368. Gets or sets a value indicating if a single curve line for
  34369. each input linear component is computed
  34370. by joining curve sections in order along the raw offset curve.
  34371. The default mode is to compute separate curve sections.
  34372. </summary>
  34373. </member>
  34374. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.GetCurve">
  34375. <summary>
  34376. Gets the computed offset curve.
  34377. </summary>
  34378. <returns>The offset curve geometry</returns>
  34379. </member>
  34380. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.OffsetCurveMapOp.ToLineString(NetTopologySuite.Geometries.Geometry)">
  34381. <summary>
  34382. Force LinearRings to be LineStrings.
  34383. </summary>
  34384. <param name="geom">A geometry, which may be a <c>LinearRing</c></param>
  34385. <returns>A geometry which will be a <c>LineString</c> or <c>MulitLineString</c></returns>
  34386. </member>
  34387. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double,NetTopologySuite.Operation.Buffer.BufferParameters)">
  34388. <summary>
  34389. Gets the raw offset curve for a line at a given distance.
  34390. The quadrant segments, join style and mitre limit can be specified
  34391. via <see cref="T:NetTopologySuite.Operation.Buffer.BufferParameters"/>.
  34392. <para/>
  34393. The raw offset line may contain loops and other artifacts which are
  34394. not present in the true offset curve.
  34395. </summary>
  34396. <param name="line">The <c>LineString</c> to offset</param>
  34397. <param name="distance">The offset distance (positive for left, negative for right)</param>
  34398. <param name="bufParams">The buffer parameters to use</param>
  34399. <returns>The raw offset curve points</returns>
  34400. </member>
  34401. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.RawOffset(NetTopologySuite.Geometries.LineString,System.Double)">
  34402. <summary>
  34403. Gets the raw offset curve for a line at a given distance,
  34404. with default buffer parameters.
  34405. </summary>
  34406. <param name="line">The <c>LineString</c> to offset</param>
  34407. <param name="distance">The offset distance (positive for left, negative for right)</param>
  34408. <returns>The raw offset line</returns>
  34409. </member>
  34410. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.ExtractMaxAreaPolygon(NetTopologySuite.Geometries.Geometry)">
  34411. <summary>
  34412. Extracts the largest polygon by area from a geometry.
  34413. Used here to avoid issues with non-robust buffer results
  34414. which have spurious extra polygons.
  34415. </summary>
  34416. <param name="geom">A geometry</param>
  34417. <returns>The polygon element of largest area</returns>
  34418. </member>
  34419. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.MatchSegments(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Int32,NetTopologySuite.Operation.Buffer.SegmentMCIndex,NetTopologySuite.Geometries.Coordinate[],System.Double[])">
  34420. <summary>
  34421. Matches the segments in a buffer ring to the raw offset curve
  34422. to obtain their match positions(if any).
  34423. </summary>
  34424. <param name="raw0">A raw curve segment start point</param>
  34425. <param name="raw1">A raw curve segment end point</param>
  34426. <param name="rawCurveIndex">The index of the raw curve segment</param>
  34427. <param name="bufferSegIndex">The spatial index of the buffer ring segments</param>
  34428. <param name="bufferPts">The points of the buffer ring</param>
  34429. <param name="rawCurvePos">The raw curve positions of the buffer ring segments</param>
  34430. <returns>The index of the minimum matched buffer segment</returns>
  34431. </member>
  34432. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurve.MatchCurveSegmentAction">
  34433. <summary>
  34434. An action to match a raw offset curve segment
  34435. to segments in a buffer ring
  34436. and record the matched segment locations(s) along the raw curve.
  34437. </summary>
  34438. <author>Martin Davis</author>
  34439. </member>
  34440. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurve.ExtractSections(NetTopologySuite.Geometries.Coordinate[],System.Double[],System.Int32,System.Collections.Generic.List{NetTopologySuite.Operation.Buffer.OffsetCurveSection})">
  34441. <summary>
  34442. This is only called when there is at least one ring segment matched
  34443. (so rawCurvePos has at least one entry != <see cref="F:NetTopologySuite.Operation.Buffer.OffsetCurve.NOT_IN_CURVE"/>).
  34444. The start index of the first section must be provided.
  34445. This is intended to be the section with lowest position
  34446. along the raw curve.
  34447. </summary>
  34448. <param name="ringPts">The points in a buffer ring</param>
  34449. <param name="rawCurveLoc">The position of buffer ring segments along the raw curve</param>
  34450. <param name="startIndex">The index of the start of a section</param>
  34451. <param name="sections">The list of extracted offset curve sections</param>
  34452. </member>
  34453. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder">
  34454. <summary>
  34455. Computes the raw offset curve for a
  34456. single <see cref="T:NetTopologySuite.Geometries.Geometry"/> component (ring, line or point).
  34457. A raw offset curve line is not noded -
  34458. it may contain self-intersections (and usually will).g
  34459. The final buffer polygon is computed by forming a topological graph
  34460. of all the noded raw curves and tracing outside contours.
  34461. The points in the raw curve are rounded
  34462. to a given <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  34463. <para/>
  34464. Note: this may not produce correct results if the input
  34465. contains repeated or invalid points.
  34466. Repeated points should be removed before calling.
  34467. <see cref="M:NetTopologySuite.Geometries.CoordinateArrays.RemoveRepeatedOrInvalidPoints(NetTopologySuite.Geometries.Coordinate[])"/>.
  34468. </summary>
  34469. </member>
  34470. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.BufferParameters">
  34471. <summary>
  34472. Gets the buffer parameters being used to generate the curve.
  34473. </summary>
  34474. </member>
  34475. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetLineCurve(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  34476. <summary>
  34477. This method handles single points as well as LineStrings.
  34478. LineStrings are assumed <b>not</b> to be closed (the function will not
  34479. fail for closed lines, but will generate superfluous line caps).
  34480. </summary>
  34481. <param name="inputPts">The vertices of the line to offset</param>
  34482. <param name="distance">The offset distance</param>
  34483. <returns>A Coordinate array representing the curve <br/>
  34484. or <c>null</c> if the curve is empty
  34485. </returns>
  34486. </member>
  34487. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.IsLineOffsetEmpty(System.Double)">
  34488. <summary>
  34489. Tests whether the offset curve for line or point geometries
  34490. at the given offset distance is empty (does not exist).
  34491. This is the case if:
  34492. <list type="bullet">
  34493. <item><term>the distance is zero</term></item>
  34494. <item><term>the distance is negative, except for the case of singled-sided buffers</term></item>
  34495. </list>
  34496. </summary>
  34497. <param name="distance">The offset curve distance</param>
  34498. <returns><c>true</c> if the offset curve is empty</returns>
  34499. </member>
  34500. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Positions,System.Double)">
  34501. <summary>
  34502. This method handles the degenerate cases of single points and lines,
  34503. as well as rings.
  34504. </summary>
  34505. <returns>A Coordinate array representing the curve<br/>
  34506. or <c>null</c> if the curve is empty</returns>
  34507. </member>
  34508. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Position,System.Double)">
  34509. <summary>
  34510. This method handles the degenerate cases of single points and lines,
  34511. as well as rings.
  34512. </summary>
  34513. <returns>A Coordinate array representing the curve<br/>
  34514. or <c>null</c> if the curve is empty</returns>
  34515. </member>
  34516. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveBuilder.SimplifyTolerance(System.Double)">
  34517. <summary>
  34518. Computes the distance tolerance to use during input
  34519. line simplification.
  34520. </summary>
  34521. <param name="bufDistance">The buffer distance</param>
  34522. <returns>The simplification tolerance</returns>
  34523. </member>
  34524. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveSection">
  34525. <summary>
  34526. Models a section of a raw offset curve,
  34527. starting at a given location along the raw curve.
  34528. The location is a decimal number, with the integer part
  34529. containing the segment index and the fractional part
  34530. giving the fractional distance along the segment.
  34531. The location of the last section segment
  34532. is also kept, to allow optimizing joining sections together.
  34533. </summary>
  34534. <author>Martin Davis</author>
  34535. </member>
  34536. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSection.ToLine(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Buffer.OffsetCurveSection},NetTopologySuite.Geometries.GeometryFactory)">
  34537. <summary>
  34538. Joins section coordinates into a LineString.
  34539. Join vertices which lie in the same raw curve segment
  34540. are removed, to simplify the result linework.
  34541. </summary>
  34542. <param name="sections">An enumeration of sections to join</param>
  34543. <param name="geomFactory">The geometry factory to use</param>
  34544. <returns>The simplified linestring for the joined sections</returns>
  34545. </member>
  34546. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSection.CompareTo(NetTopologySuite.Operation.Buffer.OffsetCurveSection)">
  34547. Orders sections by their location along the raw offset curve.
  34548. </member>
  34549. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder">
  34550. <summary>
  34551. Creates all the raw offset curves for a buffer of a <c>Geometry</c>.
  34552. Raw curves need to be noded together and polygonized to form the final buffer area.
  34553. </summary>
  34554. </member>
  34555. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Operation.Buffer.OffsetCurveBuilder)">
  34556. <summary>
  34557. </summary>
  34558. <param name="inputGeom"></param>
  34559. <param name="distance"></param>
  34560. <param name="curveBuilder"></param>
  34561. </member>
  34562. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.InvertOrientation">
  34563. <summary>
  34564. Gets or sets a value indicating whether the offset curve is generated
  34565. using the inverted orientation of input rings.
  34566. This allows generating a buffer(0) polygon from the smaller lobes
  34567. of self-crossing rings.
  34568. </summary>
  34569. </member>
  34570. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsRingCCW(NetTopologySuite.Geometries.Coordinate[])">
  34571. <summary>
  34572. Computes orientation of a ring using a signed-area orientation test.
  34573. For invalid (self-crossing) rings this ensures the largest enclosed area
  34574. is taken to be the interior of the ring.
  34575. This produces a more sensible result when
  34576. used for repairing polygonal geometry via buffer-by-zero.
  34577. For buffer use the lower robustness of orientation-by-area
  34578. doesn't matter, since narrow or flat rings
  34579. produce an acceptable offset curve for either orientation.
  34580. </summary>
  34581. <param name="coord">The ring coordinates</param>
  34582. <returns>true if the ring is CCW</returns>
  34583. </member>
  34584. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.GetCurves">
  34585. <summary>
  34586. Computes the set of raw offset curves for the buffer.
  34587. Each offset curve has an attached {Label} indicating
  34588. its left and right location.
  34589. </summary>
  34590. <returns>A Collection of SegmentStrings representing the raw buffer curves.</returns>
  34591. </member>
  34592. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  34593. <summary>
  34594. Creates a {SegmentString} for a coordinate list which is a raw offset curve,
  34595. and adds it to the list of buffer curves.
  34596. The SegmentString is tagged with a Label giving the topology of the curve.
  34597. The curve may be oriented in either direction.
  34598. If the curve is oriented CW, the locations will be:
  34599. Left: Location.Exterior.
  34600. Right: Location.Interior.
  34601. </summary>
  34602. </member>
  34603. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.Add(NetTopologySuite.Geometries.Geometry)">
  34604. <summary>
  34605. </summary>
  34606. <param name="g"></param>
  34607. </member>
  34608. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddCollection(NetTopologySuite.Geometries.Geometry)">
  34609. <summary>
  34610. </summary>
  34611. <param name="gc"></param>
  34612. </member>
  34613. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddPoint(NetTopologySuite.Geometries.Geometry)">
  34614. <summary>
  34615. Add a Point to the graph.
  34616. </summary>
  34617. <param name="p"></param>
  34618. </member>
  34619. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.Clean(NetTopologySuite.Geometries.Coordinate[])">
  34620. <summary>
  34621. Keeps only valid coordinates, and removes repeated points.
  34622. </summary>
  34623. <param name="coords">The coordinates to clean</param>
  34624. <returns>An array of clean coordinates</returns>
  34625. </member>
  34626. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddPolygon(NetTopologySuite.Geometries.Polygon)">
  34627. <summary>
  34628. </summary>
  34629. <param name="p"></param>
  34630. </member>
  34631. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.AddRingSide(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Position,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  34632. <summary>
  34633. Adds an offset curve for a polygon ring.
  34634. The side and left and right topological location arguments
  34635. assume that the ring is oriented CW.
  34636. If the ring is in the opposite orientation,
  34637. the left and right locations must be interchanged and the side flipped.
  34638. </summary>
  34639. <param name="coord">The coordinates of the ring (must not contain repeated points).</param>
  34640. <param name="offsetDistance">The distance at which to create the buffer.</param>
  34641. <param name="side">The side of the ring on which to construct the buffer line.</param>
  34642. <param name="cwLeftLoc">The location on the L side of the ring (if it is CW).</param>
  34643. <param name="cwRightLoc">The location on the R side of the ring (if it is CW).</param>
  34644. </member>
  34645. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsRingCurveInverted(NetTopologySuite.Geometries.Coordinate[],System.Double,NetTopologySuite.Geometries.Coordinate[])">
  34646. <summary>
  34647. Tests whether the offset curve for a ring is fully inverted.
  34648. An inverted ("inside-out") curve occurs in some specific situations
  34649. involving a buffer distance which should result in a fully-eroded (empty) buffer.
  34650. It can happen that the sides of a small, convex polygon
  34651. produce offset segments which all cross one another to form
  34652. a curve with inverted orientation.<br/>
  34653. This happens at buffer distances slightly greater than the distance at
  34654. which the buffer should disappear.<br/>
  34655. The inverted curve will produce an incorrect non-empty buffer (for a shell)
  34656. or an incorrect hole (for a hole).
  34657. It must be discarded from the set of offset curves used in the buffer.
  34658. Heuristics are used to reduce the number of cases which area checked,
  34659. for efficiency and correctness.
  34660. <para/>
  34661. See <a href="https://github.com/locationtech/jts/issues/472"/>
  34662. </summary>
  34663. <param name="inputPts">the input ring</param>
  34664. <param name="distance">the buffer distance</param>
  34665. <param name="curvePts">the generated offset curve</param>
  34666. <returns>true if the offset curve is inverted</returns>
  34667. </member>
  34668. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.MaxDistance(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  34669. <summary>
  34670. Computes the maximum distance out of a set of points to a linestring.
  34671. </summary>
  34672. <param name="pts">The points</param>
  34673. <param name="line">The linestring vertices</param>
  34674. <returns>The maximum distance</returns>
  34675. </member>
  34676. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  34677. <summary>
  34678. Tests whether a ring buffer is eroded completely (is empty)
  34679. based on simple heuristics.
  34680. <para/>
  34681. The <paramref name="ringCoord"/> is assumed to contain no repeated points.
  34682. It may be degenerate (i.e. contain only 1, 2, or 3 points).
  34683. In this case it has no area, and hence has a minimum diameter of 0.
  34684. </summary>
  34685. <param name="ringCoord"></param>
  34686. <param name="bufferDistance"></param>
  34687. <returns></returns>
  34688. </member>
  34689. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveSetBuilder.IsTriangleErodedCompletely(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  34690. <summary>
  34691. Tests whether a triangular ring would be eroded completely by the given
  34692. buffer distance.
  34693. This is a precise test. It uses the fact that the inner buffer of a
  34694. triangle converges on the inCentre of the triangle (the point
  34695. equidistant from all sides). If the buffer distance is greater than the
  34696. distance of the inCentre from a side, the triangle will be eroded completely.
  34697. This test is important, since it removes a problematic case where
  34698. the buffer distance is slightly larger than the inCentre distance.
  34699. In this case the triangle buffer curve "inverts" with incorrect topology,
  34700. producing an incorrect hole in the buffer.
  34701. </summary>
  34702. <param name="triangleCoord"></param>
  34703. <param name="bufferDistance"></param>
  34704. <returns></returns>
  34705. </member>
  34706. <member name="T:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList">
  34707. <summary>
  34708. A list of the vertices in a constructed offset curve.
  34709. </summary>
  34710. <remarks>Automatically removes close adjacent vertices.</remarks>
  34711. <author>Martin Davis</author>
  34712. </member>
  34713. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.PrecisionModel">
  34714. <summary>
  34715. Gets/Sets the precision model to use when adding new points.
  34716. </summary>
  34717. </member>
  34718. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.MinimumVertexDistance">
  34719. <summary>
  34720. The distance below which two adjacent points on the curve are considered to be coincident.
  34721. </summary>
  34722. <remarks>This is chosen to be a small fraction of the offset distance.</remarks>
  34723. </member>
  34724. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.AddPt(NetTopologySuite.Geometries.Coordinate)">
  34725. <summary>
  34726. Function to add a point
  34727. </summary>
  34728. <remarks>
  34729. The point is only added if <see cref="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.IsDuplicate(NetTopologySuite.Geometries.Coordinate)"/> evaluates to false.
  34730. </remarks>
  34731. <param name="pt">The point to add.</param>
  34732. </member>
  34733. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.IsDuplicate(NetTopologySuite.Geometries.Coordinate)">
  34734. <summary>
  34735. Tests whether the given point duplicates the previous point in the list (up to tolerance)
  34736. </summary>
  34737. <param name="pt">The point to test</param>
  34738. <returns>true if the point duplicates the previous point</returns>
  34739. </member>
  34740. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.CloseRing">
  34741. <summary>
  34742. Automatically closes the ring (if it not alread is).
  34743. </summary>
  34744. </member>
  34745. <member name="P:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.Coordinates">
  34746. <summary>
  34747. Gets the Coordinates for the curve.
  34748. </summary>
  34749. </member>
  34750. <member name="M:NetTopologySuite.Operation.Buffer.OffsetCurveVertexList.ToString">
  34751. <inheritdoc cref="M:System.Object.ToString"/>
  34752. </member>
  34753. <member name="T:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator">
  34754. <summary>
  34755. Generates segments which form an offset curve.
  34756. Supports all end cap and join options
  34757. provided for buffering.
  34758. This algorithm implements various heuristics to
  34759. produce smoother, simpler curves which are
  34760. still within a reasonable tolerance of the
  34761. true curve.
  34762. </summary>
  34763. <author>Martin Davis</author>
  34764. </member>
  34765. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.OffsetSegmentSeparationFactor">
  34766. <summary>
  34767. Factor controlling how close offset segments can be to
  34768. skip adding a fillet or mitre.
  34769. This eliminates very short fillet segments,
  34770. reduces the number of offset curve vertices.
  34771. and improves the robustness of mitre construction.
  34772. </summary>
  34773. </member>
  34774. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.InsideTurnVertexSnapDistanceFactor">
  34775. <summary>
  34776. Factor controlling how close curve vertices on inside turns can be to be snapped
  34777. </summary>
  34778. </member>
  34779. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CurveVertexSnapDistanceFactor">
  34780. <summary>
  34781. Factor which controls how close curve vertices can be to be snapped
  34782. </summary>
  34783. </member>
  34784. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.MaxClosingSegLenFactor">
  34785. <summary>
  34786. Factor which determines how short closing segs can be for round buffers
  34787. </summary>
  34788. </member>
  34789. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._maxCurveSegmentError">
  34790. <summary>
  34791. The max error of approximation (distance) between a quad segment and the true fillet curve
  34792. </summary>
  34793. </member>
  34794. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._filletAngleQuantum">
  34795. <summary>
  34796. The angle quantum with which to approximate a fillet curve
  34797. (based on the input # of quadrant segments)
  34798. </summary>
  34799. </member>
  34800. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator._closingSegLengthFactor">
  34801. <summary>
  34802. The Closing Segment Length Factor controls how long
  34803. "closing segments" are. Closing segments are added
  34804. at the middle of inside corners to ensure a smoother
  34805. boundary for the buffer offset curve.
  34806. In some cases (particularly for round joins with default-or-better
  34807. quantization) the closing segments can be made quite short.
  34808. This substantially improves performance (due to fewer intersections being created).
  34809. <list type="bullet">
  34810. <item><description>A closingSegFactor of 0 results in lines to the corner vertex</description></item>
  34811. <item><description>A closingSegFactor of 1 results in lines halfway to the corner vertex</description></item>
  34812. <item><description> A closingSegFactor of 80 results in lines 1/81 of the way to the corner vertex
  34813. (this option is reasonable for the very common default situation of round joins
  34814. and quadrantSegs >= 8)</description></item>
  34815. </list>
  34816. </summary>
  34817. </member>
  34818. <member name="P:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.HasNarrowConcaveAngle">
  34819. <summary>
  34820. Gets whether the input has a narrow concave angle
  34821. (relative to the offset distance).
  34822. In this case the generated offset curve will contain self-intersections
  34823. and heuristic closing segments.
  34824. This is expected behaviour in the case of buffer curves.
  34825. For pure offset curves,
  34826. the output needs to be further treated
  34827. before it can be used.
  34828. </summary>
  34829. </member>
  34830. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLastSegment">
  34831. <summary>
  34832. Add last offset point
  34833. </summary>
  34834. </member>
  34835. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddOutsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
  34836. <summary>
  34837. Adds the offset points for an outside (convex) turn
  34838. </summary>
  34839. </member>
  34840. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddInsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
  34841. <summary>
  34842. Adds the offset points for an inside (concave) turn.
  34843. </summary>
  34844. <param name="orientation"></param>
  34845. <param name="addStartPoint"></param>
  34846. </member>
  34847. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.ComputeOffsetSegment(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Position,System.Double,NetTopologySuite.Geometries.LineSegment)">
  34848. <summary>
  34849. Compute an offset segment for an input segment on a given side and at a given distance.
  34850. The offset points are computed in full double precision, for accuracy.
  34851. </summary>
  34852. <param name="seg">The segment to offset</param>
  34853. <param name="side">The side of the segment <see cref="T:NetTopologySuite.GeometriesGraph.Positions"/> the offset lies on</param>
  34854. <param name="distance">The offset distance</param>
  34855. <param name="offset">The points computed for the offset segment</param>
  34856. </member>
  34857. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLineEndCap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  34858. <summary>
  34859. Add an end cap around point <paramref name="p1"/>, terminating a line segment coming from <paramref name="p0"/>
  34860. </summary>
  34861. <param name="p0"></param>
  34862. <param name="p1"></param>
  34863. </member>
  34864. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddMitreJoin(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double)">
  34865. <summary>
  34866. Adds a mitre join connecting two convex offset segments.
  34867. The mitre is beveled if it exceeds the mitre limit factor.
  34868. The mitre limit is intended to prevent extremely long corners occurring.
  34869. If the mitre limit is very small it can cause unwanted artifacts around fairly flat corners.
  34870. This is prevented by using a simple bevel join in this case.
  34871. In other words, the limit prevents the corner from getting too long,
  34872. but it won't force it to be very short/flat.
  34873. </summary>
  34874. <param name="cornerPt">A corner point</param>
  34875. <param name="offset0">The first offset segment</param>
  34876. <param name="offset1">The second offset segment</param>
  34877. <param name="distance">The offset distance</param>
  34878. </member>
  34879. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddLimitedMitreJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double,System.Double)">
  34880. <summary>
  34881. Adds a limited mitre join connecting two convex offset segments.
  34882. A limited mitre join is beveled at the distance
  34883. determined by the mitre limit factor,
  34884. or as a standard bevel join, whichever is further.
  34885. </summary>
  34886. <param name="offset0">The first offset segment</param>
  34887. <param name="offset1">The second offset segment</param>
  34888. <param name="distance">The offset distance</param>
  34889. <param name="mitreLimitDistance">The mitre limit distance</param>
  34890. </member>
  34891. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.Project(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
  34892. <summary>
  34893. Projects a point to a given distance in a given direction angle.
  34894. </summary>
  34895. <param name="pt">The point to project</param>
  34896. <param name="d">The projection distance</param>
  34897. <param name="dir">The direction angle (in radians)</param>
  34898. <returns>The projected point</returns>
  34899. </member>
  34900. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddBevelJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  34901. <summary>
  34902. Adds a bevel join connecting the two offset segments
  34903. around a reflex corner.
  34904. </summary>
  34905. <param name="offset0">The first offset segment</param>
  34906. <param name="offset1">The second offset segment</param>
  34907. </member>
  34908. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddCornerFillet(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
  34909. <summary>
  34910. Add points for a circular fillet around a convex corner.
  34911. Adds the start and end points
  34912. </summary>
  34913. <param name="p">Base point of curve</param>
  34914. <param name="p0">Start point of fillet curve</param>
  34915. <param name="p1">Endpoint of fillet curve</param>
  34916. <param name="direction">The orientation of the fillet</param>
  34917. <param name="radius">The radius of the fillet</param>
  34918. </member>
  34919. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.AddDirectedFillet(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
  34920. <summary>
  34921. Adds points for a circular fillet arc
  34922. between two specified angles.
  34923. The start and end point for the fillet are not added -
  34924. the caller must add them if required.
  34925. </summary>
  34926. <param name="p">The center point</param>
  34927. <param name="direction">Is -1 for a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> angle, 1 for a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.CounterClockwise"/> angle</param>
  34928. <param name="startAngle">The start angle of the fillet</param>
  34929. <param name="endAngle">The end angle of the fillet</param>
  34930. <param name="radius">The radius of the fillet</param>
  34931. </member>
  34932. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CreateCircle(NetTopologySuite.Geometries.Coordinate)">
  34933. <summary>
  34934. Creates a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> circle around a point
  34935. </summary>
  34936. </member>
  34937. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentGenerator.CreateSquare(NetTopologySuite.Geometries.Coordinate)">
  34938. <summary>
  34939. Creates a <see cref="F:NetTopologySuite.Algorithm.OrientationIndex.Clockwise"/> square around a point
  34940. </summary>
  34941. </member>
  34942. <member name="T:NetTopologySuite.Operation.Buffer.OffsetSegmentString">
  34943. <summary>
  34944. A dynamic list of the vertices in a constructed offset curve.
  34945. Automatically removes adjacent vertices
  34946. which are closer than a given tolerance.
  34947. </summary>
  34948. <author>Martin Davis</author>
  34949. </member>
  34950. <member name="F:NetTopologySuite.Operation.Buffer.OffsetSegmentString._minimumVertexDistance">
  34951. <summary>
  34952. The distance below which two adjacent points on the curve
  34953. are considered to be coincident.<br/>
  34954. This is chosen to be a small fraction of the offset distance.
  34955. </summary>
  34956. </member>
  34957. <member name="M:NetTopologySuite.Operation.Buffer.OffsetSegmentString.IsRedundant(NetTopologySuite.Geometries.Coordinate)">
  34958. <summary>
  34959. Tests whether the given point is redundant
  34960. relative to the previous
  34961. point in the list (up to tolerance).
  34962. </summary>
  34963. <param name="pt"></param>
  34964. <returns>true if the point is redundant</returns>
  34965. </member>
  34966. <member name="T:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder">
  34967. <summary>
  34968. Computes the raw offset curve for a single <see cref="T:NetTopologySuite.Geometries.Geometry"/> component (ring, line or point).
  34969. </summary>
  34970. <remarks>
  34971. A raw offset curve line is not noded - it may contain self-intersections (and usually will).
  34972. The final buffer polygon is computed by forming a topological graph
  34973. of all the noded raw curves and tracing outside contours.
  34974. The points in the raw curve are rounded to the required precision model.
  34975. </remarks>
  34976. </member>
  34977. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._filletAngleQuantum">
  34978. <summary>
  34979. The angle quantum with which to approximate a fillet curve
  34980. (based on the input # of quadrant segments)
  34981. </summary>
  34982. </member>
  34983. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._maxCurveSegmentError">
  34984. <summary>
  34985. The max error of approximation (distance) between a quad segment and the true fillet curve
  34986. </summary>
  34987. </member>
  34988. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.CurveVertexSnapDistanceFactor">
  34989. <summary>
  34990. Factor which controls how close curve vertices can be to be snapped
  34991. </summary>
  34992. </member>
  34993. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.OffsetSegmentSeparationFactor">
  34994. <summary>
  34995. Factor which controls how close offset segments can be to
  34996. skip adding a filler or mitre.
  34997. </summary>
  34998. </member>
  34999. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.InsideTurnVertexSnapDistanceFactor">
  35000. <summary>
  35001. Factor which controls how close curve vertices on inside turns can be to be snapped
  35002. </summary>
  35003. </member>
  35004. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.MaxClosingSegFraction">
  35005. <summary>
  35006. Factor which determines how short closing segs can be for round buffers
  35007. </summary>
  35008. </member>
  35009. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder._closingSegFactor">
  35010. <summary>
  35011. The Closing Segment Factor controls how long
  35012. "closing segments" are. Closing segments are added
  35013. at the middle of inside corners to ensure a smoother
  35014. boundary for the buffer offset curve.<br/>
  35015. In some cases (particularly for round joins with default-or-better
  35016. quantization) the closing segments can be made quite short.
  35017. This substantially improves performance (due to fewer intersections being created).
  35018. <br/>
  35019. A closingSegFactor of 0 results in lines to the corner vertex<br/>
  35020. A closingSegFactor of 1 results in lines halfway to the corner vertex<br/>
  35021. A closingSegFactor of 80 results in lines 1/81 of the way to the corner vertex
  35022. (this option is reasonable for the very common default situation of round joins
  35023. and quadrantSegs >= 8)
  35024. </summary>
  35025. </member>
  35026. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetLineCurve(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  35027. <summary>
  35028. This method handles single points as well as lines.
  35029. Lines are assumed to <b>not</b> be closed (the function will not
  35030. fail for closed lines, but will generate superfluous line caps).
  35031. </summary>
  35032. <returns>a List of Coordinate[]</returns>
  35033. </member>
  35034. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.GeometriesGraph.Positions,System.Double)">
  35035. <summary>
  35036. This method handles the degenerate cases of single points and lines, as well as rings.
  35037. </summary>
  35038. <returns>a List of Coordinate[]</returns>
  35039. </member>
  35040. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.GetRingCurve(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Position,System.Double)">
  35041. <summary>
  35042. This method handles the degenerate cases of single points and lines, as well as rings.
  35043. </summary>
  35044. <returns>a List of Coordinate[]</returns>
  35045. </member>
  35046. <member name="F:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.SimplifyFactor">
  35047. <summary>
  35048. Use a value which results in a potential distance error which is
  35049. significantly less than the error due to
  35050. the quadrant segment discretization.
  35051. For QS = 8 a value of 100 is reasonable.
  35052. This should produce a maximum of 1% distance error.
  35053. </summary>
  35054. </member>
  35055. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.SimplifyTolerance(System.Double)">
  35056. <summary>
  35057. Computes the distance tolerance to use during input
  35058. line simplification.
  35059. </summary>
  35060. <param name="bufDistance">The buffer distance</param>
  35061. <returns>The simplification tolerance</returns>
  35062. </member>
  35063. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddOutsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
  35064. <summary>
  35065. Adds the offset points for an outside (convex) turn
  35066. </summary>
  35067. <param name="orientation">
  35068. </param>
  35069. <param name="addStartPoint"></param>
  35070. </member>
  35071. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddInsideTurn(NetTopologySuite.Algorithm.OrientationIndex,System.Boolean)">
  35072. <summary>
  35073. Adds the offset points for an inside (concave) turn.
  35074. </summary>
  35075. <param name="orientation"></param>
  35076. <param name="addStartPoint"></param>
  35077. </member>
  35078. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLastSegment">
  35079. <summary>
  35080. Add last offset point
  35081. </summary>
  35082. </member>
  35083. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.ComputeOffsetSegment(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.Position,System.Double,NetTopologySuite.Geometries.LineSegment)">
  35084. <summary>
  35085. Compute an offset segment for an input segment on a given side and at a given distance.
  35086. The offset points are computed in full double precision, for accuracy.
  35087. </summary>
  35088. <param name="seg">The segment to offset</param>
  35089. <param name="side">The side of the segment (<see cref="T:NetTopologySuite.GeometriesGraph.Positions"/>) the offset lies on</param>
  35090. <param name="distance">The offset distance</param>
  35091. <param name="offset">The points computed for the offset segment</param>
  35092. </member>
  35093. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLineEndCap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  35094. <summary>
  35095. Add an end cap around point p1, terminating a line segment coming from p0
  35096. </summary>
  35097. </member>
  35098. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddMitreJoin(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double)">
  35099. <summary>
  35100. Adds a mitre join connecting the two reflex offset segments.
  35101. The mitre will be beveled if it exceeds the mitre ratio limit.
  35102. </summary>
  35103. <param name="p">The base point</param>
  35104. <param name="offset0">The first offset segment</param>
  35105. <param name="offset1">The second offset segment</param>
  35106. <param name="distance">The offset distance</param>
  35107. </member>
  35108. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddLimitedMitreJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,System.Double,System.Double)">
  35109. <summary>
  35110. Adds a limited mitre join connecting the two reflex offset segments.
  35111. </summary>
  35112. <remarks>
  35113. A limited mitre is a mitre which is beveled at the distance
  35114. determined by the mitre ratio limit.
  35115. </remarks>
  35116. <param name="offset0">The first offset segment</param>
  35117. <param name="offset1">The second offset segment</param>
  35118. <param name="distance">The offset distance</param>
  35119. <param name="mitreLimit">The mitre limit ratio</param>
  35120. </member>
  35121. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddBevelJoin(NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  35122. <summary>
  35123. Adds a bevel join connecting the two offset segments around a reflex corner.
  35124. </summary>
  35125. <param name="offset0">The first offset segment</param>
  35126. <param name="offset1">The second offset segment</param>
  35127. </member>
  35128. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddFillet(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
  35129. <summary>
  35130. Add points for a circular fillet around a reflex corner. Adds the start and end points
  35131. </summary>
  35132. <param name="p">Base point of curve</param>
  35133. <param name="p0">Start point of fillet curve</param>
  35134. <param name="p1">Endpoint of fillet curve</param>
  35135. <param name="direction">The orientation of the fillet</param>
  35136. <param name="radius">The radius of the fillet</param>
  35137. </member>
  35138. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddFillet(NetTopologySuite.Geometries.Coordinate,System.Double,System.Double,NetTopologySuite.Algorithm.OrientationIndex,System.Double)">
  35139. <summary>
  35140. Adds points for a circular fillet arc between two specified angles.
  35141. </summary>
  35142. <remarks>
  35143. The start and end point for the fillet are not added - the caller must add them if required.
  35144. </remarks>
  35145. <param name="p">The point around which to add the fillet points</param>
  35146. <param name="startAngle">The start angle (in radians)</param>
  35147. <param name="endAngle">The end angle (in radians)</param>
  35148. <param name="direction">Is -1 for a CW angle, 1 for a CCW angle</param>
  35149. <param name="radius">The radius of the fillet</param>
  35150. </member>
  35151. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddCircle(NetTopologySuite.Geometries.Coordinate,System.Double)">
  35152. <summary>
  35153. Adds a CW circle around a point
  35154. </summary>
  35155. </member>
  35156. <member name="M:NetTopologySuite.Operation.Buffer.OldOffsetCurveBuilder.AddSquare(NetTopologySuite.Geometries.Coordinate,System.Double)">
  35157. <summary>
  35158. Adds a CW square around a point
  35159. </summary>
  35160. </member>
  35161. <member name="T:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder">
  35162. <summary>
  35163. A RightmostEdgeFinder find the DirectedEdge in a list which has the highest coordinate,
  35164. and which is oriented L to R at that point. (I.e. the right side is on the RHS of the edge.)
  35165. </summary>
  35166. </member>
  35167. <member name="P:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.Edge">
  35168. <summary>
  35169. </summary>
  35170. </member>
  35171. <member name="P:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.Coordinate">
  35172. <summary>
  35173. </summary>
  35174. </member>
  35175. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindEdge(System.Collections.IList)">
  35176. <summary>
  35177. </summary>
  35178. <param name="dirEdgeList"></param>
  35179. </member>
  35180. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindRightmostEdgeAtNode">
  35181. <summary>
  35182. </summary>
  35183. </member>
  35184. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.FindRightmostEdgeAtVertex">
  35185. <summary>
  35186. </summary>
  35187. </member>
  35188. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.CheckForRightmostCoordinate(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  35189. <summary>
  35190. </summary>
  35191. <param name="de"></param>
  35192. </member>
  35193. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.GetRightmostSide(NetTopologySuite.GeometriesGraph.DirectedEdge,System.Int32)">
  35194. <summary>
  35195. </summary>
  35196. <param name="de"></param>
  35197. <param name="index"></param>
  35198. <returns></returns>
  35199. </member>
  35200. <member name="M:NetTopologySuite.Operation.Buffer.RightmostEdgeFinder.GetRightmostSideOfSegment(NetTopologySuite.GeometriesGraph.DirectedEdge,System.Int32)">
  35201. <summary>
  35202. </summary>
  35203. <param name="de"></param>
  35204. <param name="i"></param>
  35205. <returns></returns>
  35206. </member>
  35207. <member name="T:NetTopologySuite.Operation.Buffer.SegmentMCIndex">
  35208. <summary>
  35209. A spatial index over a segment sequence
  35210. using <see cref="T:NetTopologySuite.Index.Chain.MonotoneChain"/>s.
  35211. </summary>
  35212. <author>Martin Davis</author>
  35213. </member>
  35214. <member name="T:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater">
  35215. <summary>
  35216. Locates a subgraph inside a set of subgraphs,
  35217. in order to determine the outside depth of the subgraph.
  35218. The input subgraphs are assumed to have had depths
  35219. already calculated for their edges.
  35220. </summary>
  35221. </member>
  35222. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.#ctor(System.Collections.Generic.IList{NetTopologySuite.Operation.Buffer.BufferSubgraph})">
  35223. <summary>
  35224. </summary>
  35225. <param name="subgraphs"></param>
  35226. </member>
  35227. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.GetDepth(NetTopologySuite.Geometries.Coordinate)">
  35228. <summary>
  35229. </summary>
  35230. <param name="p"></param>
  35231. <returns></returns>
  35232. </member>
  35233. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.FindStabbedSegments(NetTopologySuite.Geometries.Coordinate)">
  35234. <summary>
  35235. Finds all non-horizontal segments intersecting the stabbing line.
  35236. The stabbing line is the ray to the right of stabbingRayLeftPt.
  35237. </summary>
  35238. <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
  35239. <returns>A List of {DepthSegments} intersecting the stabbing line.</returns>
  35240. </member>
  35241. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.FindStabbedSegments(NetTopologySuite.Geometries.Coordinate,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.DirectedEdge},System.Collections.Generic.IList{NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment})">
  35242. <summary>
  35243. Finds all non-horizontal segments intersecting the stabbing line
  35244. in the list of dirEdges.
  35245. The stabbing line is the ray to the right of stabbingRayLeftPt.
  35246. </summary>
  35247. <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
  35248. <param name="dirEdges"></param>
  35249. <param name="stabbedSegments">The current list of DepthSegments intersecting the stabbing line.</param>
  35250. </member>
  35251. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.FindStabbedSegments(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.DirectedEdge,System.Collections.Generic.IList{NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment})">
  35252. <summary>
  35253. Finds all non-horizontal segments intersecting the stabbing line
  35254. in the input dirEdge.
  35255. The stabbing line is the ray to the right of stabbingRayLeftPt.
  35256. </summary>
  35257. <param name="stabbingRayLeftPt">The left-hand origin of the stabbing line.</param>
  35258. <param name="dirEdge"></param>
  35259. <param name="stabbedSegments">The current list of DepthSegments intersecting the stabbing line.</param>
  35260. </member>
  35261. <member name="T:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment">
  35262. <summary>
  35263. A segment from a directed edge which has been assigned a depth value
  35264. for its sides.
  35265. </summary>
  35266. </member>
  35267. <member name="P:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.LeftDepth">
  35268. <summary>
  35269. Gets or sets the depth to the left of this segment
  35270. </summary>
  35271. </member>
  35272. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.#ctor(NetTopologySuite.Geometries.LineSegment,System.Int32)">
  35273. <summary>
  35274. Initializes this DepthSegments
  35275. </summary>
  35276. <param name="seg">A line segment</param>
  35277. <param name="depth">A depth value</param>
  35278. </member>
  35279. <member name="P:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.IsUpward">
  35280. <summary>
  35281. Gets a value indicating if the segment is pointing upward
  35282. </summary>
  35283. </member>
  35284. <member name="M:NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment.CompareTo(NetTopologySuite.Operation.Buffer.SubgraphDepthLocater.DepthSegment)">
  35285. <summary>
  35286. A comparison operation
  35287. which orders segments left to right.
  35288. </summary>
  35289. <remarks>
  35290. Assumes the segments are normalized.
  35291. <para/>
  35292. The definition of ordering is:
  35293. <list type="table">
  35294. <item><term>-1</term><description>if DS1.seg is left of or below DS2.seg (DS1 &lt; DS2).</description></item>
  35295. <item><term>1</term><description>if DS1.seg is right of or above DS2.seg (DS1 &gt; DS2).</description></item>
  35296. <item><term>0</term><description>if the segments are identical</description></item>
  35297. </list>
  35298. Known Bugs:
  35299. <list type="bullet">
  35300. <item><description>The logic does not obey the <see cref="M:System.IComparable.CompareTo(System.Object)"/> contract.
  35301. This is acceptable for the intended usage, but may cause problems if used with some
  35302. utilities in the .Net standard library (e.g. <see cref="T:System.Collections.List.Sort()"/>.</description></item>
  35303. </list>
  35304. </remarks>
  35305. <param name="other">A DepthSegment</param>
  35306. <returns>The comparison value</returns>
  35307. </member>
  35308. <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferCurveMaximumDistanceFinder">
  35309. <summary>
  35310. Finds the approximate maximum distance from a buffer curve to
  35311. the originating geometry.
  35312. </summary>
  35313. <remarks><para>The approximate maximum distance is determined by testing
  35314. all vertices in the buffer curve, as well
  35315. as midpoints of the curve segments.
  35316. Due to the way buffer curves are constructed, this
  35317. should be a very close approximation.</para>
  35318. <para>This is similar to the Discrete Oriented Hausdorff distance
  35319. from the buffer curve to the input.</para>
  35320. </remarks>
  35321. <author>mbdavis</author>
  35322. </member>
  35323. <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator">
  35324. <summary>
  35325. Validates that a given buffer curve lies an appropriate distance
  35326. from the input generating it.
  35327. </summary>
  35328. <remarks>
  35329. Useful only for round buffers (cap and join).
  35330. Can be used for either positive or negative distances.
  35331. <para></para>
  35332. <para>This is a heuristic test, and may return false positive results
  35333. (I.e. it may fail to detect an invalid result.)
  35334. It should never return a false negative result, however
  35335. (I.e. it should never report a valid result as invalid.)</para>
  35336. </remarks>
  35337. <author>mbdavis</author>
  35338. </member>
  35339. <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.ErrorIndicator">
  35340. <summary>
  35341. Gets a geometry which indicates the location and nature of a validation failure.
  35342. <para>
  35343. The indicator is a line segment showing the location and size
  35344. of the distance discrepancy.
  35345. </para>
  35346. </summary>
  35347. <returns>A geometric error indicator
  35348. or <c>null</c>, if no error was found</returns>
  35349. </member>
  35350. <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.CheckMinimumDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  35351. <summary>
  35352. Checks that two geometries are at least a minimum distance apart.
  35353. </summary>
  35354. <param name="g1">A geometry</param>
  35355. <param name="g2">A geometry</param>
  35356. <param name="minDist">The minimum distance the geometries should be separated by</param>
  35357. </member>
  35358. <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferDistanceValidator.CheckMaximumDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  35359. <summary>
  35360. Checks that the furthest distance from the buffer curve to the input
  35361. is less than the given maximum distance.
  35362. </summary>
  35363. <remarks>
  35364. This uses the Oriented Hausdorff distance metric. It corresponds to finding
  35365. the point on the buffer curve which is furthest from <i>some</i> point on the input.
  35366. </remarks>
  35367. <param name="input">A geometry</param>
  35368. <param name="bufCurve">A geometry</param>
  35369. <param name="maxDist">The maximum distance that a buffer result can be from the input</param>
  35370. </member>
  35371. <member name="T:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator">
  35372. <summary>
  35373. Validates that the result of a buffer operation
  35374. is geometrically correct, within a computed tolerance.
  35375. </summary>
  35376. <remarks>
  35377. <para>This is a heuristic test, and may return false positive results
  35378. (I.e. it may fail to detect an invalid result.)
  35379. It should never return a false negative result, however
  35380. (I.e. it should never report a valid result as invalid.)</para>
  35381. <para>This test may be (much) more expensive than the original buffer computation.</para>
  35382. </remarks>
  35383. <author>Martin Davis</author>
  35384. </member>
  35385. <member name="M:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.IsValidMessage(NetTopologySuite.Geometries.Geometry,System.Double,NetTopologySuite.Geometries.Geometry)">
  35386. <summary>Checks whether the geometry buffer is valid, and returns an error message if not.
  35387. </summary>
  35388. <param name="g"></param>
  35389. <param name="distance"></param>
  35390. <param name="result"></param>
  35391. <returns>An appropriate error message<br/>
  35392. or <c>null</c>if the buffer is valid</returns>
  35393. </member>
  35394. <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorMessage">
  35395. <summary>
  35396. Gets the error message
  35397. </summary>
  35398. </member>
  35399. <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorLocation">
  35400. <summary>
  35401. Gets the error location
  35402. </summary>
  35403. </member>
  35404. <member name="P:NetTopologySuite.Operation.Buffer.Validate.BufferResultValidator.ErrorIndicator">
  35405. <summary>
  35406. Gets a geometry which indicates the location and nature of a validation failure.
  35407. <para>
  35408. If the failure is due to the buffer curve being too far or too close
  35409. to the input, the indicator is a line segment showing the location and size
  35410. of the discrepancy.
  35411. </para>
  35412. </summary>
  35413. <returns>A geometric error indicator<br/>
  35414. or <c>null</c>, if no error was found</returns>
  35415. </member>
  35416. <member name="T:NetTopologySuite.Operation.Buffer.Validate.DistanceToPointFinder">
  35417. <summary>
  35418. Computes the Euclidean distance (L2 metric) from a Point to a Geometry.
  35419. Also computes two points which are separated by the distance.
  35420. </summary>
  35421. </member>
  35422. <member name="T:NetTopologySuite.Operation.Buffer.Validate.PointPairDistance">
  35423. <summary>
  35424. Contains a pair of points and the distance between them.
  35425. Provides methods to update with a new point pair with
  35426. either maximum or minimum distance.
  35427. </summary>
  35428. </member>
  35429. <member name="M:NetTopologySuite.Operation.Buffer.Validate.PointPairDistance.Initialize(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double)">
  35430. <summary>
  35431. Initializes the points, avoiding recomputing the distance.
  35432. </summary>
  35433. <param name="p0">The first point</param>
  35434. <param name="p1">The second point</param>
  35435. <param name="distance">The distance between <paramref name="p0"/> and <paramref name="p1"/></param>
  35436. </member>
  35437. <member name="T:NetTopologySuite.Operation.Buffer.VariableBuffer">
  35438. <summary>
  35439. Creates a buffer polygon with a varying buffer distance
  35440. at each vertex along a line.
  35441. Vertex distances may be zero.
  35442. <para/>
  35443. Only single linestring is supported as input, since buffer widths
  35444. generally need to be specified individually for each line.
  35445. </summary>
  35446. <author>Martin Davis</author>
  35447. </member>
  35448. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
  35449. <summary>
  35450. Creates a buffer polygon along a line with the buffer distance interpolated
  35451. between a start distance and an end distance.
  35452. </summary>
  35453. <param name="line">The line to buffer</param>
  35454. <param name="startDistance">The buffer width at the start of the line</param>
  35455. <param name="endDistance">The buffer width at the end of the line</param>
  35456. <returns>The variable-distance buffer polygon</returns>
  35457. </member>
  35458. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double,System.Double,System.Double)">
  35459. <summary>
  35460. Creates a buffer polygon along a line with the buffer distance interpolated
  35461. between a start distance, a middle distance and an end distance.
  35462. The middle distance is attained at
  35463. the vertex at or just past the half-length of the line.
  35464. For smooth buffering of a <see cref="T:NetTopologySuite.Geometries.LinearRing"/> (or the rings of a <see cref="T:NetTopologySuite.Geometries.Polygon"/>)
  35465. the start distance and end distance should be equal.
  35466. </summary>
  35467. <param name="line">The line to buffer</param>
  35468. <param name="startDistance">The buffer width at the start of the line</param>
  35469. <param name="midDistance">The buffer width at the middle vertex of the line</param>
  35470. <param name="endDistance">The buffer width at the end of the line</param>
  35471. <returns>The variable-distance buffer polygon</returns>
  35472. </member>
  35473. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Buffer(NetTopologySuite.Geometries.Geometry,System.Double[])">
  35474. <summary>
  35475. Creates a buffer polygon along a line with the distance specified
  35476. at each vertex.
  35477. </summary>
  35478. <param name="line">The line to buffer</param>
  35479. <param name="distance">The buffer distance for each vertex of the line</param>
  35480. <returns>The variable-width buffer polygon</returns>
  35481. </member>
  35482. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Interpolate(NetTopologySuite.Geometries.LineString,System.Double,System.Double)">
  35483. <summary>
  35484. Computes a list of values for the points along a line by
  35485. interpolating between values for the start and end point.
  35486. The interpolation is
  35487. based on the distance of each point along the line
  35488. relative to the total line length.
  35489. </summary>
  35490. <param name="line">The line to interpolate along</param>
  35491. <param name="startValue">The start value</param>
  35492. <param name="endValue">The end value</param>
  35493. <returns>The array of interpolated values</returns>
  35494. </member>
  35495. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Interpolate(NetTopologySuite.Geometries.LineString,System.Double,System.Double,System.Double)">
  35496. <summary>
  35497. Computes a list of values for the points along a line by
  35498. interpolating between values for the start, middle and end points.
  35499. The interpolation is
  35500. based on the distance of each point along the line
  35501. relative to the total line length.
  35502. The middle distance is attained at
  35503. the vertex at or just past the half-length of the line.
  35504. </summary>
  35505. <param name="line">The line to interpolate along</param>
  35506. <param name="startValue">The start value</param>
  35507. <param name="midValue">The mid value</param>
  35508. <param name="endValue">The end value</param>
  35509. <returns>The array of interpolated values</returns>
  35510. </member>
  35511. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.#ctor(NetTopologySuite.Geometries.Geometry,System.Double[])">
  35512. <summary>
  35513. Creates a generator for a variable-distance line buffer.
  35514. </summary>
  35515. <param name="line">The linestring to buffer</param>
  35516. <param name="distance">The buffer distance for each vertex of the line</param>
  35517. </member>
  35518. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.GetResult">
  35519. <summary>
  35520. Computes the variable buffer polygon.
  35521. </summary>
  35522. <returns>A buffer polygon</returns>
  35523. </member>
  35524. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.SegmentBuffer(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
  35525. <summary>
  35526. Computes a variable buffer polygon for a single segment,
  35527. with the given endpoints and buffer distances.
  35528. The individual segment buffers are unioned
  35529. to form the final buffer.
  35530. If one distance is zero, the end cap at that
  35531. segment end is the endpoint of the segment.
  35532. If both distances are zero, no polygon is returned.
  35533. </summary>
  35534. <param name="p0">The segment start point</param>
  35535. <param name="p1">The segment end point</param>
  35536. <param name="dist0">The buffer distance at the start point</param>
  35537. <param name="dist1">The buffer distance at the end point</param>
  35538. <returns>The segment buffer, or null if void</returns>
  35539. </member>
  35540. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.Circle(NetTopologySuite.Geometries.Coordinate,System.Double)">
  35541. <summary>
  35542. Returns a circular polygon.
  35543. </summary>
  35544. <param name="center">The circle center point</param>
  35545. <param name="radius">The radius</param>
  35546. <returns>A polygon, or null if the radius is 0</returns>
  35547. </member>
  35548. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.AddCap(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateList)">
  35549. <summary>
  35550. Adds a semi-circular cap CCW around the point <paramref name="p"/>.
  35551. <para/>
  35552. The vertices in caps are generated at fixed angles around a point.
  35553. This allows caps at the same point to share vertices,
  35554. which reduces artifacts when the segment buffers are merged.
  35555. </summary>
  35556. <param name="p">The centre point of the cap</param>
  35557. <param name="r">The cap radius</param>
  35558. <param name="t1">the starting point of the cap</param>
  35559. <param name="t2">The ending point of the cap</param>
  35560. <param name="coords">The coordinate list to add to</param>
  35561. </member>
  35562. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.CapAngle(System.Int32)">
  35563. <summary>
  35564. Computes the actual angle for a given cap point index.
  35565. </summary>
  35566. <param name="index">The cap angle index</param>
  35567. <returns>The angle</returns>
  35568. </member>
  35569. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.CapAngleIndex(System.Double)">
  35570. <summary>
  35571. Computes the canonical cap point index for a given angle.
  35572. The angle is rounded down to the next lower index.
  35573. <para/>
  35574. In order to reduce the number of points created by overlapping end caps,
  35575. cap points are generated at the same locations around a circle.
  35576. The index is the index of the points around the circle,
  35577. with 0 being the point at (1,0).
  35578. The total number of points around the circle is <c>4 * <see cref="F:NetTopologySuite.Operation.Buffer.VariableBuffer._quadrantSegs"/></c>.
  35579. </summary>
  35580. <param name="ang">The angle</param>
  35581. <returns>The index for the angle.</returns>
  35582. </member>
  35583. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.OuterTangent(NetTopologySuite.Geometries.Coordinate,System.Double,NetTopologySuite.Geometries.Coordinate,System.Double)">
  35584. <summary>
  35585. Computes the two circumference points defining the outer tangent line
  35586. between two circles.<br/>
  35587. The tangent line may be null if one circle mostly overlaps the other.
  35588. <para/>
  35589. For the algorithm see <a href='https://en.wikipedia.org/wiki/Tangent_lines_to_circles#Outer_tangent'>Wikipedia</a>.
  35590. </summary>
  35591. <param name="c1">The centre of circle 1</param>
  35592. <param name="r1">The radius of circle 1</param>
  35593. <param name="c2">The centre of circle 2</param>
  35594. <param name="r2">The radius of circle 2</param>
  35595. <returns>The outer tangent line segment, or <c>null</c> if none exists</returns>
  35596. </member>
  35597. <member name="M:NetTopologySuite.Operation.Buffer.VariableBuffer.SnapTrig(System.Double)">
  35598. <summary>
  35599. Snap trig values to integer values for better consistency.
  35600. </summary>
  35601. <param name="x">The result of a trigonometric function</param>
  35602. <returns><paramref name="x"/> snapped to the integer interval</returns>
  35603. </member>
  35604. <member name="T:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter">
  35605. <summary>
  35606. A ConnectedElementPointFilter extracts a single point
  35607. from each connected element in a Geometry
  35608. (e.g. a polygon, linestring or point)
  35609. and returns them in a list. The elements of the list are
  35610. <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s.
  35611. Empty geometries do not provide a location item.
  35612. </summary>
  35613. </member>
  35614. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.GetLocations(NetTopologySuite.Geometries.Geometry)">
  35615. <summary>
  35616. Returns a list containing a point from each Polygon, LineString, and Point
  35617. found inside the specified point. Thus, if the specified point is
  35618. not a GeometryCollection, an empty list will be returned. The elements of the list
  35619. are <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s.
  35620. </summary>
  35621. </member>
  35622. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Operation.Distance.GeometryLocation})">
  35623. <summary>
  35624. </summary>
  35625. <param name="locations"></param>
  35626. </member>
  35627. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementLocationFilter.Filter(NetTopologySuite.Geometries.Geometry)">
  35628. <summary>
  35629. </summary>
  35630. <param name="geom"></param>
  35631. </member>
  35632. <member name="T:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter">
  35633. <summary>
  35634. Extracts a single point
  35635. from each connected element in a Geometry
  35636. (e.g. a polygon, linestring or point)
  35637. and returns them in a list
  35638. </summary>
  35639. </member>
  35640. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.GetCoordinates(NetTopologySuite.Geometries.Geometry)">
  35641. <summary>
  35642. Returns a list containing a Coordinate from each Polygon, LineString, and Point
  35643. found inside the specified point. Thus, if the specified point is
  35644. not a GeometryCollection, an empty list will be returned.
  35645. </summary>
  35646. </member>
  35647. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.#ctor(System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
  35648. <summary>
  35649. </summary>
  35650. <param name="pts"></param>
  35651. </member>
  35652. <member name="M:NetTopologySuite.Operation.Distance.ConnectedElementPointFilter.Filter(NetTopologySuite.Geometries.Geometry)">
  35653. <summary>
  35654. </summary>
  35655. <param name="geom"></param>
  35656. </member>
  35657. <member name="T:NetTopologySuite.Operation.Distance.DistanceOp">
  35658. <summary>
  35659. Computes the distance and
  35660. closest points between two <c>Geometry</c>s.
  35661. The distance computation finds a pair of points in the input geometries
  35662. which have minimum distance between them. These points may
  35663. not be vertices of the geometries, but may lie in the interior of
  35664. a line segment. In this case the coordinate computed is a close
  35665. approximation to the exact point.
  35666. <para/>
  35667. Empty geometry collection components are ignored.
  35668. <para/>
  35669. The algorithms used are straightforward O(n^2)
  35670. comparisons. This worst-case performance could be improved on
  35671. by using Voronoi techniques.
  35672. </summary>
  35673. </member>
  35674. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  35675. <summary>
  35676. Compute the distance between the closest points of two geometries.
  35677. </summary>
  35678. <param name="g0">A <c>Geometry</c>.</param>
  35679. <param name="g1">Another <c>Geometry</c>.</param>
  35680. <returns>The distance between the geometries.</returns>
  35681. </member>
  35682. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  35683. <summary>
  35684. Test whether two geometries lie within a given distance of each other.
  35685. </summary>
  35686. <param name="g0"></param>
  35687. <param name="g1"></param>
  35688. <param name="distance"></param>
  35689. <returns></returns>
  35690. </member>
  35691. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  35692. <summary>
  35693. Compute the the closest points of two geometries.
  35694. The points are presented in the same order as the input Geometries.
  35695. </summary>
  35696. <param name="g0">A <c>Geometry</c>.</param>
  35697. <param name="g1">Another <c>Geometry</c>.</param>
  35698. <returns>The closest points in the geometries.</returns>
  35699. </member>
  35700. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  35701. <summary>
  35702. Constructs a <see cref="T:NetTopologySuite.Operation.Distance.DistanceOp" /> that computes the distance and closest points between
  35703. the two specified geometries.
  35704. </summary>
  35705. <param name="g0">A geometry</param>
  35706. <param name="g1">A geometry</param>
  35707. </member>
  35708. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  35709. <summary>
  35710. Constructs a <see cref="T:NetTopologySuite.Operation.Distance.DistanceOp" /> that computes the distance and closest points between
  35711. the two specified geometries.
  35712. </summary>
  35713. <param name="g0">A geometry</param>
  35714. <param name="g1">A geometry</param>
  35715. <param name="terminateDistance">The distance on which to terminate the search.</param>
  35716. </member>
  35717. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.Distance">
  35718. <summary>
  35719. Report the distance between the closest points on the input geometries.
  35720. </summary>
  35721. <returns>The distance between the geometries<br/>
  35722. or <c>0</c> if either input geometry is empty.</returns>
  35723. <exception cref="T:System.ApplicationException"> if either input geometry is null</exception>
  35724. </member>
  35725. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestPoints">
  35726. <summary>
  35727. Report the coordinates of the nearest points in the input geometries.
  35728. The points are presented in the same order as the input Geometries.
  35729. </summary>
  35730. <returns>A pair of <c>Coordinate</c>s of the nearest points.</returns>
  35731. </member>
  35732. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.NearestLocations">
  35733. <summary>
  35734. Report the locations of the nearest points in the input geometries.
  35735. The locations are presented in the same order as the input Geometries.
  35736. </summary>
  35737. <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points.</returns>
  35738. </member>
  35739. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.UpdateMinDistance(System.Double)">
  35740. <summary>
  35741. </summary>
  35742. <param name="dist"></param>
  35743. </member>
  35744. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.UpdateMinDistance(NetTopologySuite.Operation.Distance.GeometryLocation[],System.Boolean)">
  35745. <summary>
  35746. </summary>
  35747. <param name="locGeom"></param>
  35748. <param name="flip"></param>
  35749. </member>
  35750. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance">
  35751. <summary>
  35752. </summary>
  35753. </member>
  35754. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeContainmentDistance">
  35755. <summary>
  35756. </summary>
  35757. </member>
  35758. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeFacetDistance">
  35759. <summary>
  35760. Computes distance between facets (lines and points) of input geometries.
  35761. </summary>
  35762. </member>
  35763. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistanceLines(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Distance.GeometryLocation[])">
  35764. <summary>
  35765. </summary>
  35766. <param name="lines0"></param>
  35767. <param name="lines1"></param>
  35768. <param name="locGeom"></param>
  35769. </member>
  35770. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistancePoints(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Distance.GeometryLocation[])">
  35771. <summary>
  35772. </summary>
  35773. <param name="points0"></param>
  35774. <param name="points1"></param>
  35775. <param name="locGeom"></param>
  35776. </member>
  35777. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistanceLinesPoints(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Distance.GeometryLocation[])">
  35778. <summary>
  35779. </summary>
  35780. <param name="lines"></param>
  35781. <param name="points"></param>
  35782. <param name="locGeom"></param>
  35783. </member>
  35784. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString,NetTopologySuite.Operation.Distance.GeometryLocation[])">
  35785. <summary>
  35786. </summary>
  35787. <param name="line0"></param>
  35788. <param name="line1"></param>
  35789. <param name="locGeom"></param>
  35790. </member>
  35791. <member name="M:NetTopologySuite.Operation.Distance.DistanceOp.ComputeMinDistance(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Point,NetTopologySuite.Operation.Distance.GeometryLocation[])">
  35792. <summary>
  35793. </summary>
  35794. <param name="line"></param>
  35795. <param name="pt"></param>
  35796. <param name="locGeom"></param>
  35797. </member>
  35798. <member name="T:NetTopologySuite.Operation.Distance.FacetSequence">
  35799. <summary>
  35800. Represents a sequence of facets (points or line segments) of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  35801. specified by a subsequence of a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  35802. </summary>
  35803. <author>Martin Davis</author>
  35804. </member>
  35805. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  35806. <summary>
  35807. Creates a new sequence of facets based on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>
  35808. contained in the given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  35809. </summary>
  35810. <param name="geom">The geometry containing the facets.</param>
  35811. <param name="pts">The sequence containing the facet points.</param>
  35812. <param name="start">The index of the start point.</param>
  35813. <param name="end">The index of the end point.</param>
  35814. </member>
  35815. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,System.Int32,System.Int32)">
  35816. <summary>
  35817. Creates a new sequence of facets based on a <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/>.
  35818. </summary>
  35819. <param name="pts">The sequence containing facet points.</param>
  35820. <param name="start">The index of the start point</param>
  35821. <param name="end">The index of the end point + 1</param>
  35822. </member>
  35823. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.#ctor(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  35824. <summary>
  35825. Creates a new sequence for a single point from a CoordinateSequence.
  35826. </summary>
  35827. <param name="pts">The sequence containing the facet point.</param>
  35828. <param name="index">the index of the point</param>
  35829. </member>
  35830. <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.Envelope">
  35831. <summary>
  35832. Gets the envelope of this facet sequence
  35833. </summary>
  35834. </member>
  35835. <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.Count">
  35836. <summary>
  35837. Gets the number of coordinates in this facet sequence
  35838. </summary>
  35839. </member>
  35840. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.GetCoordinate(System.Int32)">
  35841. <summary>
  35842. Gets the coordinate at the given index
  35843. </summary>
  35844. <param name="index">The index</param>
  35845. <returns>The coordinate at the given index</returns>
  35846. </member>
  35847. <member name="P:NetTopologySuite.Operation.Distance.FacetSequence.IsPoint">
  35848. <summary>
  35849. Tests if this facet sequence consists of only one point
  35850. </summary>
  35851. </member>
  35852. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.Distance(NetTopologySuite.Operation.Distance.FacetSequence)">
  35853. <summary>
  35854. Computes the distance between this and another
  35855. <see cref="T:NetTopologySuite.Operation.Distance.FacetSequence"/>.
  35856. </summary>
  35857. <param name="facetSeq">The sequence to compute the distance to.</param>
  35858. <returns>The minimum distance between the sequences.</returns>
  35859. </member>
  35860. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.NearestLocations(NetTopologySuite.Operation.Distance.FacetSequence)">
  35861. <summary>
  35862. Computes the locations of the nearest points between this sequence
  35863. and another sequence.
  35864. The locations are presented in the same order as the input sequences.
  35865. </summary>
  35866. <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points.</returns>
  35867. </member>
  35868. <member name="M:NetTopologySuite.Operation.Distance.FacetSequence.ToString">
  35869. <inheritdoc cref="M:System.Object.ToString"/>
  35870. </member>
  35871. <member name="T:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder">
  35872. <summary>
  35873. Utility class to build facet sequencs STRtrees-
  35874. </summary>
  35875. </member>
  35876. <member name="M:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder.BuildSTRtree(NetTopologySuite.Geometries.Geometry)">
  35877. <summary>
  35878. </summary>
  35879. <param name="g"></param>
  35880. <returns></returns>
  35881. </member>
  35882. <member name="M:NetTopologySuite.Operation.Distance.FacetSequenceTreeBuilder.ComputeFacetSequences(NetTopologySuite.Geometries.Geometry)">
  35883. <summary>
  35884. Creates facet sequences from a given geometry
  35885. </summary>
  35886. <param name="g">The geometry</param>
  35887. <returns>A list of <see cref="T:NetTopologySuite.Operation.Distance.FacetSequence"/>s</returns>
  35888. </member>
  35889. <member name="T:NetTopologySuite.Operation.Distance.GeometryLocation">
  35890. <summary>
  35891. Represents the location of a point on a Geometry.
  35892. Maintains both the actual point location
  35893. (which may not be exact, if the point is not a vertex)
  35894. as well as information about the component
  35895. and segment index where the point occurs.
  35896. Locations inside area Geometrys will not have an associated segment index,
  35897. so in this case the segment index will have the sentinel value of <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/>.
  35898. </summary>
  35899. </member>
  35900. <member name="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea">
  35901. <summary>
  35902. A special value of segmentIndex used for locations inside area geometries.
  35903. These locations are not located on a segment,
  35904. and thus do not have an associated segment index.
  35905. </summary>
  35906. </member>
  35907. <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.#ctor(NetTopologySuite.Geometries.Geometry,System.Int32,NetTopologySuite.Geometries.Coordinate)">
  35908. <summary>
  35909. Constructs a GeometryLocation specifying a point on a point, as well as the
  35910. segment that the point is on (or <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/> if the point is not on a segment).
  35911. </summary>
  35912. <param name="component">The component of the geometry containing the point</param>
  35913. <param name="segIndex">The segment index of the location, or <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/></param>
  35914. <param name="pt">The coordinate of the location</param>
  35915. </member>
  35916. <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Coordinate)">
  35917. <summary>
  35918. Constructs a GeometryLocation specifying a point inside an area point.
  35919. </summary>
  35920. <param name="component">The component of the geometry containing the point</param>
  35921. <param name="pt">The coordinate of the location</param>
  35922. </member>
  35923. <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.GeometryComponent">
  35924. <summary>
  35925. Returns the geometry component on (or in) which this location occurs.
  35926. </summary>
  35927. </member>
  35928. <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.SegmentIndex">
  35929. <summary>
  35930. Returns the segment index for this location. If the location is inside an
  35931. area, the index will have the value <see cref="F:NetTopologySuite.Operation.Distance.GeometryLocation.InsideArea"/>.
  35932. </summary>
  35933. </member>
  35934. <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.Coordinate">
  35935. <summary>
  35936. Returns the <see cref="P:NetTopologySuite.Operation.Distance.GeometryLocation.Coordinate"/> of this location.
  35937. </summary>
  35938. </member>
  35939. <member name="P:NetTopologySuite.Operation.Distance.GeometryLocation.IsInsideArea">
  35940. <summary>
  35941. Tests whether this location represents a point inside an area geometry.
  35942. </summary>
  35943. </member>
  35944. <member name="M:NetTopologySuite.Operation.Distance.GeometryLocation.ToString">
  35945. <inheritdoc />
  35946. </member>
  35947. <member name="T:NetTopologySuite.Operation.Distance.IndexedFacetDistance">
  35948. <summary>
  35949. Computes the distance between the facets (segments and vertices)
  35950. of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s
  35951. using a Branch-and-Bound algorithm.
  35952. The Branch-and-Bound algorithm operates over a
  35953. traversal of R-trees built
  35954. on the target and the query geometries.
  35955. <para>
  35956. This approach provides the following benefits:
  35957. <list type="bullet">
  35958. <item><description>
  35959. Performance is dramatically improved due to the use of the
  35960. R-tree index
  35961. and the pruning due to the Branch-and-Bound approach
  35962. </description></item><item><description>
  35963. The spatial index on the target geometry is cached
  35964. which allow reuse in an repeated query situation.</description></item>
  35965. </list>
  35966. Using this technique is usually much more performant
  35967. than using the brute-force <see cref="M:NetTopologySuite.Geometries.Geometry.Distance(NetTopologySuite.Geometries.Geometry)"/>
  35968. when one or both input geometries are large,
  35969. or when evaluating many distance computations against
  35970. a single geometry.
  35971. </para>
  35972. </summary>
  35973. <remarks>This class is thread-safe.</remarks>
  35974. <author>
  35975. Martin Davis
  35976. </author>
  35977. </member>
  35978. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  35979. <summary>
  35980. Computes the distance between facets of two geometries.
  35981. </summary>
  35982. <remarks>
  35983. For geometries with many segments or points,
  35984. this can be faster than using a simple distance
  35985. algorithm.
  35986. </remarks>
  35987. <param name="g1">A geometry</param>
  35988. <param name="g2">A geometry</param>
  35989. <returns>The distance between the two geometries</returns>
  35990. </member>
  35991. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  35992. <summary>
  35993. Tests whether the facets of two geometries lie within a given distance.
  35994. </summary>
  35995. <param name="g1">A geometry</param>
  35996. <param name="g2">A geometry</param>
  35997. <param name="distance">The distance limit</param>
  35998. <returns><c>true</c> if two facets lie with the given distance</returns>
  35999. </member>
  36000. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  36001. <summary>
  36002. Computes the nearest points of the facets of two geometries.
  36003. </summary>
  36004. <param name="g1">A geometry</param>
  36005. <param name="g2">A geometry</param>
  36006. <returns>The nearest points on the facets of the geometries</returns>
  36007. </member>
  36008. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.#ctor(NetTopologySuite.Geometries.Geometry)">
  36009. <summary>
  36010. Creates a new distance-finding instance for a given target <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  36011. </summary>
  36012. <remarks>
  36013. <para>
  36014. Distances will be computed to all facets of the input geometry.
  36015. The facets of the geometry are the discrete segments and points
  36016. contained in its components. </para>
  36017. <para>
  36018. In the case of <see cref="T:NetTopologySuite.Geometries.ILineal"/> and <see cref="T:NetTopologySuite.Geometries.IPuntal"/> inputs,
  36019. this is equivalent to computing the conventional distance.
  36020. </para><para>
  36021. In the case of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> inputs, this is equivalent
  36022. to computing the distance to the polygon boundaries.
  36023. </para>
  36024. </remarks>
  36025. <param name="g1">A Geometry, which may be of any type.</param>
  36026. </member>
  36027. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.Distance(NetTopologySuite.Geometries.Geometry)">
  36028. <summary>
  36029. Computes the distance from the base geometry to the given geometry.
  36030. </summary>
  36031. <param name="g">The geometry to compute the distance to.</param>
  36032. <returns>The computed distance</returns>
  36033. </member>
  36034. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestLocations(NetTopologySuite.Geometries.Geometry)">
  36035. <summary>
  36036. Computes the nearest locations on the base geometry
  36037. and the given geometry.
  36038. </summary>
  36039. <param name="g">Ihe geometry to compute the nearest location to.</param>
  36040. <returns>The nearest locations.</returns>
  36041. </member>
  36042. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.NearestPoints(NetTopologySuite.Geometries.Geometry)">
  36043. <summary>
  36044. Computes the nearest locations on the target geometry
  36045. and the given geometry.
  36046. </summary>
  36047. <param name="g">Ihe geometry to compute the nearest point to.</param>
  36048. <returns>The nearest points.</returns>
  36049. </member>
  36050. <member name="M:NetTopologySuite.Operation.Distance.IndexedFacetDistance.IsWithinDistance(NetTopologySuite.Geometries.Geometry,System.Double)">
  36051. <summary>
  36052. Tests whether the base geometry lies within
  36053. a specified distance of the given geometry.
  36054. </summary>
  36055. <param name="g">The geometry to test</param>
  36056. <param name="maxDistance">The maximum distance to test</param>
  36057. <returns><c>true</c> if the geometry lies with the specified distance</returns>
  36058. </member>
  36059. <member name="T:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence">
  36060. <summary>
  36061. A <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> wrapper which
  36062. projects 3D coordinates into one of the
  36063. three Cartesian axis planes,
  36064. using the standard orthonormal projection
  36065. (i.e. simply selecting the appropriate ordinates into the XY ordinates).
  36066. The projected data is represented as 2D coordinates.
  36067. </summary>
  36068. <author>Martin Davis</author>
  36069. </member>
  36070. <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToXY(NetTopologySuite.Geometries.CoordinateSequence)">
  36071. <summary>
  36072. Creates a wrapper projecting to the XY plane.
  36073. </summary>
  36074. <param name="seq">The sequence to be projected</param>
  36075. <returns>A sequence which projects coordinates</returns>
  36076. </member>
  36077. <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToXZ(NetTopologySuite.Geometries.CoordinateSequence)">
  36078. <summary>
  36079. Creates a wrapper projecting to the XZ plane.
  36080. </summary>
  36081. <param name="seq">The sequence to be projected</param>
  36082. <returns>A sequence which projects coordinates</returns>
  36083. </member>
  36084. <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.ProjectToYZ(NetTopologySuite.Geometries.CoordinateSequence)">
  36085. <summary>
  36086. Creates a wrapper projecting to the YZ plane.
  36087. </summary>
  36088. <param name="seq">The sequence to be projected</param>
  36089. <returns>A sequence which projects coordinates</returns>
  36090. </member>
  36091. <member name="M:NetTopologySuite.Operation.Distance3D.AxisPlaneCoordinateSequence.CreateCoordinate">
  36092. <inheritdoc />
  36093. </member>
  36094. <member name="T:NetTopologySuite.Operation.Distance3D.Distance3DOp">
  36095. <summary>
  36096. Find two points on two 3D <see cref="T:NetTopologySuite.Geometries.Geometry"/>s which lie within a given distance,
  36097. or else are the nearest points on the geometries (in which case this also
  36098. provides the distance between the geometries).
  36099. <para/>
  36100. 3D geometries have vertex Z ordinates defined.
  36101. 3D <see cref="T:NetTopologySuite.Geometries.Polygon"/>s are assumed to lie in a single plane (which is enforced if not actually the case).
  36102. 3D <see cref="T:NetTopologySuite.Geometries.LineString"/>s and <see cref="T:NetTopologySuite.Geometries.Point"/>s may have any configuration.
  36103. <para/>
  36104. The distance computation also finds a pair of points in the input geometries
  36105. which have the minimum distance between them. If a point lies in the interior
  36106. of a line segment, the coordinate computed is a close approximation to the
  36107. exact point.
  36108. <para/>
  36109. The algorithms used are straightforward O(n^2) comparisons. This worst-case
  36110. performance could be improved on by using Voronoi techniques or spatial
  36111. indexes.
  36112. </summary>
  36113. <version>1.13</version>
  36114. </member>
  36115. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.Distance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  36116. <summary>
  36117. Compute the distance between the nearest points of two geometries.
  36118. </summary>
  36119. <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36120. <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36121. <returns>The distance between the geometries</returns>
  36122. </member>
  36123. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.IsWithinDistance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  36124. <summary>
  36125. Test whether two geometries lie within a given distance of each other.
  36126. </summary>
  36127. <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36128. <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36129. <param name="distance">The distance to test</param>
  36130. <returns><c>true</c> if <c>g0.distance(g1) &lt;= <paramref name="distance"/></c></returns>
  36131. </member>
  36132. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestPoints(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  36133. <summary>
  36134. Compute the the nearest points of two geometries. The points are
  36135. presented in the same order as the input Geometries.
  36136. </summary>
  36137. <param name="g0">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36138. <param name="g1">A <see cref="T:NetTopologySuite.Geometries.Geometry">geometry</see></param>
  36139. <returns>The nearest points in the geometries</returns>
  36140. </member>
  36141. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  36142. <summary>
  36143. Constructs a DistanceOp that computes the distance and nearest points
  36144. between the two specified geometries.
  36145. </summary>
  36146. <param name="g0">A geometry</param>
  36147. <param name="g1">A geometry</param>
  36148. </member>
  36149. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  36150. <summary>
  36151. Constructs a DistanceOp that computes the distance and nearest points
  36152. between the two specified geometries.
  36153. </summary>
  36154. <param name="g0">A geometry</param>
  36155. <param name="g1">A geometry</param>
  36156. <param name="terminateDistance">The distance on which to terminate the search</param>
  36157. </member>
  36158. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.Distance">
  36159. <summary>
  36160. Report the distance between the nearest points on the input geometries.
  36161. </summary>
  36162. <returns>The distance between the geometries<br/>
  36163. or <c>0</c> if either input geometry is empty</returns>
  36164. <exception cref="T:System.ArgumentException">Thrown if either input geometry is null.</exception>
  36165. </member>
  36166. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestPoints">
  36167. <summary>
  36168. Report the coordinates of the nearest points in the input geometries. The
  36169. points are presented in the same order as the input Geometries.
  36170. </summary>
  36171. <returns>A pair of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of the nearest points</returns>
  36172. </member>
  36173. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.NearestLocations">
  36174. <summary>
  36175. Gets the locations of the nearest points in the input geometries. The
  36176. locations are presented in the same order as the input Geometries.
  36177. </summary>
  36178. <returns>A pair of <see cref="T:NetTopologySuite.Operation.Distance.GeometryLocation"/>s for the nearest points</returns>
  36179. </member>
  36180. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.MostPolygonalIndex">
  36181. <summary>
  36182. Finds the index of the "most polygonal" input geometry.
  36183. This optimizes the computation of the best-fit plane,
  36184. since it is cached only for the left-hand geometry.
  36185. </summary>
  36186. <returns>The index of the most polygonal geometry</returns>
  36187. </member>
  36188. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.PolyPlane(NetTopologySuite.Geometries.Geometry)">
  36189. <summary>
  36190. Convenience method to create a Plane3DPolygon
  36191. </summary>
  36192. </member>
  36193. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.ComputeMinDistancePolygonPolygon(NetTopologySuite.Operation.Distance3D.PlanarPolygon3D,NetTopologySuite.Geometries.Polygon,System.Boolean)">
  36194. <summary>
  36195. Computes distance between two polygons.
  36196. </summary>
  36197. <remarks>
  36198. To compute the distance, compute the distance
  36199. between the rings of one polygon and the other polygon,
  36200. and vice-versa.
  36201. If the polygons intersect, then at least one ring must
  36202. intersect the other polygon.
  36203. Note that it is NOT sufficient to test only the shell rings.
  36204. A counter-example is a "figure-8" polygon A
  36205. and a simple polygon B at right angles to A, with the ring of B
  36206. passing through the holes of A.
  36207. The polygons intersect,
  36208. but A's shell does not intersect B, and B's shell does not intersect A.</remarks>
  36209. </member>
  36210. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.ComputeMinDistancePolygonRings(NetTopologySuite.Operation.Distance3D.PlanarPolygon3D,NetTopologySuite.Geometries.Polygon,System.Boolean)">
  36211. <summary>Compute distance between a polygon and the rings of another.</summary>
  36212. </member>
  36213. <member name="M:NetTopologySuite.Operation.Distance3D.Distance3DOp.SegmentPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Double)">
  36214. <summary>
  36215. Computes a point at a distance along a segment
  36216. specified by two relatively proportional values.
  36217. The fractional distance along the segment is d0/(d0+d1).
  36218. </summary>
  36219. <param name="p0">Start point of the segment.</param>
  36220. <param name="p1">End point of the segment</param>
  36221. <param name="d0">Proportional distance from start point to computed point</param>
  36222. <param name="d1">Proportional distance from computed point to end point</param>
  36223. <returns>The computed point</returns>
  36224. </member>
  36225. <member name="T:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D">
  36226. <summary>
  36227. Models a polygon lying in a plane in 3-dimensional Cartesian space.
  36228. The polygon representation is supplied
  36229. by a <see cref="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon"/>,
  36230. containing coordinates with XYZ ordinates.
  36231. 3D polygons are assumed to lie in a single plane.
  36232. The plane best fitting the polygon coordinates is
  36233. computed and is represented by a <see cref="T:NetTopologySuite.Mathematics.Plane3D"/>.
  36234. </summary>
  36235. <author>Martin Davis</author>
  36236. </member>
  36237. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.#ctor(NetTopologySuite.Geometries.Polygon)">
  36238. <summary>
  36239. Creates an instance of this class using the provided <see cref="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon"/>.
  36240. </summary>
  36241. <param name="poly">The polygon</param>
  36242. </member>
  36243. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.FindBestFitPlane(NetTopologySuite.Geometries.Polygon)">
  36244. <summary>
  36245. Finds a best-fit plane for the polygon,
  36246. by sampling a few points from the exterior ring.
  36247. <para/>
  36248. The algorithm used is Newell's algorithm:
  36249. <list type="bullet">
  36250. <item><description>a base point for the plane is determined from the average of all vertices</description></item>
  36251. <item><description>the normal vector is determined by computing the area of the projections on each of the axis planes</description></item>
  36252. </list>
  36253. </summary>
  36254. <param name="poly">The polygon to determine the plane for</param>
  36255. <returns>The best-fit plane</returns>
  36256. </member>
  36257. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.AverageNormal(NetTopologySuite.Geometries.CoordinateSequence)">
  36258. <summary>
  36259. Computes an average normal vector from a list of polygon coordinates.
  36260. Uses Newell's method, which is based
  36261. on the fact that the vector with components
  36262. equal to the areas of the projection of the polygon onto
  36263. the Cartesian axis planes is normal.
  36264. </summary>
  36265. <param name="seq">The sequence of coordinates for the polygon</param>
  36266. <returns>A normal vector</returns>
  36267. </member>
  36268. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.AveragePoint(NetTopologySuite.Geometries.CoordinateSequence)">
  36269. <summary>
  36270. Computes a point which is the average of all coordinates
  36271. in a sequence.<br/>
  36272. If the sequence lies in a single plane,
  36273. the computed point also lies in the plane.
  36274. </summary>
  36275. <param name="seq">A coordinate sequence</param>
  36276. <returns>A Coordinate with averaged ordinates </returns>
  36277. </member>
  36278. <member name="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Plane">
  36279. <summary>
  36280. Gets a value indicating the plane
  36281. </summary>
  36282. </member>
  36283. <member name="P:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Polygon">
  36284. <summary>
  36285. Gets a value indicating the polygon
  36286. </summary>
  36287. </member>
  36288. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Intersects(NetTopologySuite.Geometries.Coordinate)">
  36289. <summary>
  36290. Checks if <paramref name="intPt"/> intersects with this <see cref="T:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D"/>.
  36291. </summary>
  36292. <param name="intPt">The point to check</param>
  36293. <returns><c>true</c> if <c>intPt</c> intersects this <c>PlanarPolygon3d</c>.</returns>
  36294. </member>
  36295. <member name="M:NetTopologySuite.Operation.Distance3D.PlanarPolygon3D.Intersects(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.LineString)">
  36296. <summary>
  36297. Checks if the point <paramref name="pt"/> intersects with <paramref name="ring"/> when projected to this instance's facing plane
  36298. </summary>
  36299. <param name="pt">A point</param>
  36300. <param name="ring">A ring</param>
  36301. <returns><c>true</c> if point and linestring intersect</returns>
  36302. </member>
  36303. <member name="T:NetTopologySuite.Operation.GeometryGraphOperation">
  36304. <summary>
  36305. The base class for operations that require <see cref="T:NetTopologySuite.GeometriesGraph.GeometryGraph"/>s.
  36306. </summary>
  36307. </member>
  36308. <member name="P:NetTopologySuite.Operation.GeometryGraphOperation.lineIntersector">
  36309. <summary>
  36310. </summary>
  36311. </member>
  36312. <member name="F:NetTopologySuite.Operation.GeometryGraphOperation.resultPrecisionModel">
  36313. <summary>
  36314. </summary>
  36315. </member>
  36316. <member name="F:NetTopologySuite.Operation.GeometryGraphOperation.arg">
  36317. <summary>
  36318. The operation args into an array so they can be accessed by index.
  36319. </summary>
  36320. </member>
  36321. <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  36322. <summary>
  36323. </summary>
  36324. <param name="g0"></param>
  36325. <param name="g1"></param>
  36326. </member>
  36327. <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.#ctor(NetTopologySuite.Geometries.Geometry)">
  36328. <summary>
  36329. </summary>
  36330. <param name="g0"></param>
  36331. </member>
  36332. <member name="M:NetTopologySuite.Operation.GeometryGraphOperation.GetArgGeometry(System.Int32)">
  36333. <summary>
  36334. </summary>
  36335. <param name="i"></param>
  36336. <returns></returns>
  36337. </member>
  36338. <member name="P:NetTopologySuite.Operation.GeometryGraphOperation.ComputationPrecision">
  36339. <summary>
  36340. </summary>
  36341. </member>
  36342. <member name="T:NetTopologySuite.Operation.IsSimpleOp">
  36343. <summary>
  36344. Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry"/> is simple.
  36345. In general, the SFS specification of simplicity
  36346. follows the rule:
  36347. <list type="bullet">
  36348. <item><description>
  36349. A Geometry is simple if and only if the only self-intersections are at boundary points.
  36350. </description></item>
  36351. </list>
  36352. </summary>
  36353. <remarks>
  36354. Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/>} subclass as follows:
  36355. <list type="bullet">
  36356. <item><description>Valid <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries are simple by definition, so
  36357. <c>IsSimple</c> trivially returns true.<br/>
  36358. (Note: this means that <tt>IsSimple</tt> cannot be used to test
  36359. for (invalid) self-intersections in <tt>Polygon</tt>s.
  36360. In order to check if a <tt>Polygonal</tt> geometry has self-intersections,
  36361. use <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid" />).</description></item>
  36362. <item><description><b><see cref="T:NetTopologySuite.Geometries.ILineal"/></b> geometries are simple if and only if they do <i>not</i> self-intersect at interior points
  36363. (i.e. points other than boundary points).
  36364. This is equivalent to saying that no two linear components satisfy the SFS <see cref="M:NetTopologySuite.Geometries.Geometry.Touches(NetTopologySuite.Geometries.Geometry)"/>
  36365. predicate.</description></item>
  36366. <item><description><b>Zero-dimensional (<see cref="T:NetTopologySuite.Geometries.IPuntal"/>)</b> geometries are simple if and only if they have no
  36367. repeated points.</description></item>
  36368. <item><description><b>Empty</b> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s are <i>always</i> simple by definition.</description></item>
  36369. </list>
  36370. For <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries the evaluation of simplicity
  36371. can be customized by supplying a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  36372. to define how boundary points are determined.
  36373. The default is the SFS-standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/>.
  36374. Note that under the <tt>Mod-2</tt> rule, closed <tt>LineString</tt>s (rings)
  36375. will never satisfy the <tt>touches</tt> predicate at their endpoints, since these are
  36376. interior points, not boundary points.
  36377. If it is required to test whether a set of <c>LineString</c>s touch
  36378. only at their endpoints, use <c>IsSimpleOp</c> with <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
  36379. For example, this can be used to validate that a set of lines form a topologically valid
  36380. linear network.
  36381. </remarks>
  36382. </member>
  36383. <member name="M:NetTopologySuite.Operation.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  36384. <summary>
  36385. Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
  36386. </summary>
  36387. <param name="geom">The geometry to test</param>
  36388. </member>
  36389. <member name="M:NetTopologySuite.Operation.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  36390. <summary>
  36391. Creates a simplicity checker using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  36392. </summary>
  36393. <param name="geom">The geometry to test</param>
  36394. <param name="boundaryNodeRule">The rule to use</param>
  36395. </member>
  36396. <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimple">
  36397. <summary>
  36398. Tests whether the geometry is simple.
  36399. </summary>
  36400. <returns>true if the geometry is simple</returns>
  36401. </member>
  36402. <member name="P:NetTopologySuite.Operation.IsSimpleOp.NonSimpleLocation">
  36403. <summary>
  36404. Gets a coordinate for the location where the geometry fails to be simple.
  36405. (i.e. where it has a non-boundary self-intersection).
  36406. <see cref="M:NetTopologySuite.Operation.IsSimpleOp.IsSimple"/> must be called before this location is accessed
  36407. </summary>
  36408. <returns> a coordinate for the location of the non-boundary self-intersection
  36409. or <c>null</c> if the geometry is simple</returns>
  36410. </member>
  36411. <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimplePolygonal(NetTopologySuite.Geometries.Geometry)">
  36412. <summary>
  36413. Computes simplicity for polygonal geometries.
  36414. Polygonal geometries are simple if and only if
  36415. all of their component rings are simple.
  36416. </summary>
  36417. <param name="geom">A Polygonal geometry</param>
  36418. <returns><c>true</c> if the geometry is simple</returns>
  36419. </member>
  36420. <member name="M:NetTopologySuite.Operation.IsSimpleOp.IsSimpleGeometryCollection(NetTopologySuite.Geometries.Geometry)">
  36421. <summary>Semantics for GeometryCollection is
  36422. simple if all components are simple.</summary>
  36423. <param name="geom">A GeometryCollection</param>
  36424. <returns><c>true</c> if the geometry is simple</returns>
  36425. </member>
  36426. <member name="M:NetTopologySuite.Operation.IsSimpleOp.HasNonEndpointIntersection(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  36427. <summary>
  36428. For all edges, check if there are any intersections which are NOT at an endpoint.
  36429. The Geometry is not simple if there are intersections not at endpoints.
  36430. </summary>
  36431. <param name="graph"></param>
  36432. </member>
  36433. <member name="T:NetTopologySuite.Operation.IsSimpleOp.EndpointInfo">
  36434. <summary>
  36435. </summary>
  36436. </member>
  36437. <member name="M:NetTopologySuite.Operation.IsSimpleOp.EndpointInfo.#ctor(NetTopologySuite.Geometries.Coordinate)">
  36438. <summary>
  36439. Creates an instance of this class
  36440. </summary>
  36441. <param name="pt">The endpoint</param>
  36442. </member>
  36443. <member name="M:NetTopologySuite.Operation.IsSimpleOp.HasClosedEndpointIntersection(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  36444. <summary>
  36445. Tests that no edge intersection is the endpoint of a closed line.
  36446. This ensures that closed lines are not touched at their endpoint,
  36447. which is an interior point according to the Mod-2 rule
  36448. To check this we compute the degree of each endpoint.
  36449. The degree of endpoints of closed lines
  36450. must be exactly 2.
  36451. </summary>
  36452. </member>
  36453. <member name="M:NetTopologySuite.Operation.IsSimpleOp.AddEndpoint(System.Collections.Generic.IDictionary{NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Operation.IsSimpleOp.EndpointInfo},NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  36454. <summary>
  36455. Add an endpoint to the map, creating an entry for it if none exists.
  36456. </summary>
  36457. <param name="endPoints"></param>
  36458. <param name="p"></param>
  36459. <param name="isClosed"></param>
  36460. </member>
  36461. <member name="T:NetTopologySuite.Operation.Linemerge.EdgeString">
  36462. <summary>
  36463. A sequence of <c>LineMergeDirectedEdge</c>s forming one of the lines that will
  36464. be output by the line-merging process.
  36465. </summary>
  36466. </member>
  36467. <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  36468. <summary>
  36469. Constructs an EdgeString with the given factory used to convert this EdgeString
  36470. to a LineString.
  36471. </summary>
  36472. <param name="factory"></param>
  36473. </member>
  36474. <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.Add(NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge)">
  36475. <summary>
  36476. Adds a directed edge which is known to form part of this line.
  36477. </summary>
  36478. <param name="directedEdge"></param>
  36479. </member>
  36480. <member name="P:NetTopologySuite.Operation.Linemerge.EdgeString.Coordinates">
  36481. <summary>
  36482. </summary>
  36483. </member>
  36484. <member name="M:NetTopologySuite.Operation.Linemerge.EdgeString.ToLineString">
  36485. <summary>
  36486. Converts this EdgeString into a LineString.
  36487. </summary>
  36488. </member>
  36489. <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge">
  36490. <summary>
  36491. A <c>com.vividsolutions.jts.planargraph.DirectedEdge</c> of a <c>LineMergeGraph</c>.
  36492. </summary>
  36493. </member>
  36494. <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  36495. <summary>
  36496. Constructs a LineMergeDirectedEdge connecting the <c>from</c> node to the <c>to</c> node.
  36497. </summary>
  36498. <param name="from"/>
  36499. <param name="to"/>
  36500. <param name="directionPt">
  36501. specifies this DirectedEdge's direction (given by an imaginary
  36502. line from the <c>from</c> node to <c>directionPt</c>).
  36503. </param>
  36504. <param name="edgeDirection">
  36505. whether this DirectedEdge's direction is the same as or
  36506. opposite to that of the parent Edge (if any).
  36507. </param>
  36508. </member>
  36509. <member name="P:NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge.Next">
  36510. <summary>
  36511. Returns the directed edge that starts at this directed edge's end point, or null
  36512. if there are zero or multiple directed edges starting there.
  36513. </summary>
  36514. </member>
  36515. <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeEdge">
  36516. <summary>
  36517. An edge of a <c>LineMergeGraph</c>. The <c>marked</c> field indicates
  36518. whether this Edge has been logically deleted from the graph.
  36519. </summary>
  36520. </member>
  36521. <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeEdge.#ctor(NetTopologySuite.Geometries.LineString)">
  36522. <summary>
  36523. Constructs a LineMergeEdge with vertices given by the specified LineString.
  36524. </summary>
  36525. <param name="line"></param>
  36526. </member>
  36527. <member name="P:NetTopologySuite.Operation.Linemerge.LineMergeEdge.Line">
  36528. <summary>
  36529. Returns the LineString specifying the vertices of this edge.
  36530. </summary>
  36531. </member>
  36532. <member name="T:NetTopologySuite.Operation.Linemerge.LineMergeGraph">
  36533. <summary>
  36534. A planar graph of edges that is analyzed to sew the edges together. The
  36535. <c>marked</c> flag on <see cref="T:NetTopologySuite.Planargraph.Edge"/>s
  36536. and <see cref="T:NetTopologySuite.Planargraph.Node"/>s indicates whether they have been
  36537. logically deleted from the graph.
  36538. </summary>
  36539. </member>
  36540. <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeGraph.AddEdge(NetTopologySuite.Geometries.LineString)">
  36541. <summary>
  36542. Adds an Edge, DirectedEdges, and Nodes for the given LineString representation
  36543. of an edge.
  36544. </summary>
  36545. </member>
  36546. <member name="M:NetTopologySuite.Operation.Linemerge.LineMergeGraph.GetNode(NetTopologySuite.Geometries.Coordinate)">
  36547. <summary>
  36548. </summary>
  36549. <param name="coordinate"></param>
  36550. <returns></returns>
  36551. </member>
  36552. <member name="T:NetTopologySuite.Operation.Linemerge.LineMerger">
  36553. <summary>
  36554. Sews together a set of fully noded LineStrings.
  36555. </summary>
  36556. <remarks>
  36557. <para> Sewing stops at nodes of degree 1
  36558. or 3 or more -- the exception is an isolated loop, which only has degree-2 nodes,
  36559. in which case a node is simply chosen as a starting point. The direction of each
  36560. merged LineString will be that of the majority of the LineStrings from which it
  36561. was derived.</para>
  36562. <para>
  36563. Any dimension of Geometry is handled -- the constituent linework is extracted to
  36564. form the edges. The edges must be correctly noded; that is, they must only meet
  36565. at their endpoints. The LineMerger will still run on incorrectly noded input
  36566. but will not form polygons from incorrected noded edges.</para>
  36567. <para>
  36568. <b>NOTE:</b>once merging has been performed, no more</para>
  36569. </remarks>
  36570. </member>
  36571. <member name="T:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl">
  36572. <summary>
  36573. </summary>
  36574. </member>
  36575. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl.#ctor(NetTopologySuite.Operation.Linemerge.LineMerger)">
  36576. <summary>
  36577. </summary>
  36578. <param name="container"></param>
  36579. </member>
  36580. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.AnonymousGeometryComponentFilterImpl.Filter(NetTopologySuite.Geometries.Geometry)">
  36581. <summary>
  36582. </summary>
  36583. <param name="component"></param>
  36584. </member>
  36585. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(NetTopologySuite.Geometries.Geometry)">
  36586. <summary>
  36587. Adds a Geometry to be processed. May be called multiple times.
  36588. Any dimension of Geometry may be added; the constituent linework will be
  36589. extracted.
  36590. </summary>
  36591. <param name="geometry"></param>
  36592. </member>
  36593. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  36594. <summary>
  36595. Adds a collection of Geometries to be processed. May be called multiple times.
  36596. Any dimension of Geometry may be added; the constituent linework will be
  36597. extracted.
  36598. </summary>
  36599. <param name="geometries"></param>
  36600. </member>
  36601. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Add(NetTopologySuite.Geometries.LineString)">
  36602. <summary>
  36603. </summary>
  36604. <param name="lineString"></param>
  36605. </member>
  36606. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.Merge">
  36607. <summary>
  36608. </summary>
  36609. </member>
  36610. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForObviousStartNodes">
  36611. <summary>
  36612. </summary>
  36613. </member>
  36614. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForIsolatedLoops">
  36615. <summary>
  36616. </summary>
  36617. </member>
  36618. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForUnprocessedNodes">
  36619. <summary>
  36620. </summary>
  36621. </member>
  36622. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsForNonDegree2Nodes">
  36623. <summary>
  36624. </summary>
  36625. </member>
  36626. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringsStartingAt(NetTopologySuite.Planargraph.Node)">
  36627. <summary>
  36628. </summary>
  36629. <param name="node"></param>
  36630. </member>
  36631. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.BuildEdgeStringStartingWith(NetTopologySuite.Operation.Linemerge.LineMergeDirectedEdge)">
  36632. <summary>
  36633. </summary>
  36634. <param name="start"></param>
  36635. <returns></returns>
  36636. </member>
  36637. <member name="M:NetTopologySuite.Operation.Linemerge.LineMerger.GetMergedLineStrings">
  36638. <summary>
  36639. Returns the LineStrings built by the merging process.
  36640. </summary>
  36641. <returns></returns>
  36642. </member>
  36643. <member name="T:NetTopologySuite.Operation.Linemerge.LineSequencer">
  36644. <summary>
  36645. <para>
  36646. Builds a sequence from a set of <see cref="T:NetTopologySuite.Geometries.LineString" />s,
  36647. so that they are ordered end to end.
  36648. A sequence is a complete non-repeating list of the linear
  36649. components of the input. Each linestring is oriented
  36650. so that identical endpoints are adjacent in the list.
  36651. </para>
  36652. <para>
  36653. The input linestrings may form one or more connected sets.
  36654. The input linestrings should be correctly noded, or the results may
  36655. not be what is expected.
  36656. The output of this method is a single <see cref="T:NetTopologySuite.Geometries.MultiLineString" />,
  36657. containing the ordered linestrings in the sequence.
  36658. </para>
  36659. <para>
  36660. The sequencing employs the classic 'Eulerian path' graph algorithm.
  36661. Since Eulerian paths are not uniquely determined, further rules are used to
  36662. make the computed sequence preserve as much as possible of the input ordering.
  36663. Within a connected subset of lines, the ordering rules are:
  36664. - If there is degree-1 node which is the start
  36665. node of an linestring, use that node as the start of the sequence.
  36666. - If there is a degree-1 node which is the end
  36667. node of an linestring, use that node as the end of the sequence.
  36668. - If the sequence has no degree-1 nodes, use any node as the start
  36669. </para>
  36670. <para>
  36671. Not all arrangements of lines can be sequenced.
  36672. For a connected set of edges in a graph,
  36673. Euler's Theorem states that there is a sequence containing each edge once
  36674. if and only if there are no more than 2 nodes of odd degree.
  36675. If it is not possible to find a sequence, the <see cref="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenceable" />
  36676. property will return <c>false</c>.
  36677. </para>
  36678. </summary>
  36679. </member>
  36680. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenced(NetTopologySuite.Geometries.Geometry)">
  36681. <summary>
  36682. Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry" /> is sequenced correctly.
  36683. <see cref="T:NetTopologySuite.Geometries.LineString" />s are trivially sequenced.
  36684. <see cref="T:NetTopologySuite.Geometries.MultiLineString" />s are checked for correct sequencing.
  36685. Otherwise, <c>IsSequenced</c> is defined
  36686. to be <c>true</c> for geometries that are not lineal.
  36687. </summary>
  36688. <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry" /> to test.</param>
  36689. <returns>
  36690. <c>true</c> if the <see cref="T:NetTopologySuite.Geometries.Geometry" /> is sequenced or is not lineal.
  36691. </returns>
  36692. </member>
  36693. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Add(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  36694. <summary>
  36695. Adds a <see cref="T:System.Collections.Generic.IEnumerable`1" /> of <see cref="T:NetTopologySuite.Geometries.Geometry" />s to be sequenced.
  36696. May be called multiple times.
  36697. Any dimension of Geometry may be added; the constituent linework will be extracted.
  36698. </summary>
  36699. <param name="geometries">A <see cref="T:System.Collections.Generic.IEnumerable`1" /> of geometries to add.</param>
  36700. </member>
  36701. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Add(NetTopologySuite.Geometries.Geometry)">
  36702. <summary>
  36703. Adds a <see cref="T:NetTopologySuite.Geometries.Geometry" /> to be sequenced.
  36704. May be called multiple times.
  36705. Any dimension of <see cref="T:NetTopologySuite.Geometries.Geometry" /> may be added;
  36706. the constituent linework will be extracted.
  36707. </summary>
  36708. <param name="geometry"></param>
  36709. </member>
  36710. <member name="T:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl">
  36711. <summary>
  36712. A private implementation for <see cref="T:NetTopologySuite.Geometries.IGeometryComponentFilter" />
  36713. </summary>
  36714. </member>
  36715. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl.#ctor(NetTopologySuite.Operation.Linemerge.LineSequencer)">
  36716. <summary>
  36717. Initializes a new instance of the <see cref="T:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl"/> class.
  36718. </summary>
  36719. <param name="sequencer">The sequencer.</param>
  36720. </member>
  36721. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GeometryComponentFilterImpl.Filter(NetTopologySuite.Geometries.Geometry)">
  36722. <summary>
  36723. Performs an operation with or on <paramref name="component" />
  36724. </summary>
  36725. <param name="component">
  36726. A <see cref="T:NetTopologySuite.Geometries.Geometry" /> to which the filter is applied.
  36727. </param>
  36728. </member>
  36729. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.IsSequenceable">
  36730. <summary>
  36731. Tests whether the arrangement of linestrings has a valid sequence.
  36732. </summary>
  36733. <returns><c>true</c> if a valid sequence exists.</returns>
  36734. </member>
  36735. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.GetSequencedLineStrings">
  36736. <summary>
  36737. Returns the <see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />
  36738. built by the sequencing process, if one exists.
  36739. </summary>
  36740. <returns>The sequenced linestrings,
  36741. or <c>null</c> if a valid sequence does not exist.</returns>
  36742. </member>
  36743. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.HasSequence(NetTopologySuite.Planargraph.Subgraph)">
  36744. <summary>
  36745. Tests whether a complete unique path exists in a graph
  36746. using Euler's Theorem.
  36747. </summary>
  36748. <param name="graph">The <see cref="T:NetTopologySuite.Planargraph.Subgraph" /> containing the edges.</param>
  36749. <returns><c>true</c> if a sequence exists.</returns>
  36750. </member>
  36751. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.FindUnvisitedBestOrientedDE(NetTopologySuite.Planargraph.Node)">
  36752. <summary>
  36753. Finds an <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> for an unvisited edge (if any),
  36754. choosing the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> which preserves orientation, if possible.
  36755. </summary>
  36756. <param name="node">The <see cref="T:NetTopologySuite.Planargraph.Node" /> to examine.</param>
  36757. <returns>
  36758. The <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> found,
  36759. or <c>null</c> if none were unvisited.
  36760. </returns>
  36761. </member>
  36762. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Orient(System.Collections.Generic.LinkedList{NetTopologySuite.Planargraph.DirectedEdge})">
  36763. <summary>
  36764. Computes a version of the sequence which is optimally
  36765. oriented relative to the underlying geometry.
  36766. <para>
  36767. Heuristics used are:
  36768. - If the path has a degree-1 node which is the start
  36769. node of an linestring, use that node as the start of the sequence.
  36770. - If the path has a degree-1 node which is the end
  36771. node of an linestring, use that node as the end of the sequence.
  36772. - If the sequence has no degree-1 nodes, use any node as the start
  36773. (NOTE: in this case could orient the sequence according to the majority of the
  36774. linestring orientations).
  36775. </para>
  36776. </summary>
  36777. <param name="seq">A <see cref="T:System.Collections.Generic.IList`1" /> of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s.</param>
  36778. <returns>
  36779. A <see cref="T:System.Collections.Generic.IList`1" /> of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s oriented appropriately.
  36780. </returns>
  36781. </member>
  36782. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.Reverse(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge})">
  36783. <summary>
  36784. Reverse the sequence.
  36785. This requires reversing the order of the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s,
  36786. and flipping each <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" /> as well.
  36787. </summary>
  36788. <param name="seq">
  36789. A enumeration of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s,
  36790. in sequential order.
  36791. </param>
  36792. <returns>The reversed sequence.</returns>
  36793. </member>
  36794. <member name="M:NetTopologySuite.Operation.Linemerge.LineSequencer.BuildSequencedGeometry(System.Collections.Generic.IEnumerable{System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge}})">
  36795. <summary>
  36796. Builds a geometry (<see cref="T:NetTopologySuite.Geometries.LineString" /> or <see cref="T:NetTopologySuite.Geometries.MultiLineString" />)
  36797. representing the sequence.
  36798. </summary>
  36799. <param name="sequences">
  36800. An enumeration of <see cref="T:System.Collections.Generic.IList`1" />s of <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s
  36801. with <see cref="T:NetTopologySuite.Operation.Linemerge.LineMergeEdge" />s as their parent edges.
  36802. </param>
  36803. <returns>
  36804. The sequenced geometry, or <c>null</c> if no sequence exists.
  36805. </returns>
  36806. </member>
  36807. <member name="T:NetTopologySuite.Operation.Overlay.EdgeSetNoder">
  36808. <summary>
  36809. Nodes a set of edges.
  36810. Takes one or more sets of edges and constructs a
  36811. new set of edges consisting of all the split edges created by
  36812. noding the input edges together.
  36813. </summary>
  36814. </member>
  36815. <member name="M:NetTopologySuite.Operation.Overlay.EdgeSetNoder.#ctor(NetTopologySuite.Algorithm.LineIntersector)">
  36816. <summary>
  36817. </summary>
  36818. <param name="li"></param>
  36819. </member>
  36820. <member name="M:NetTopologySuite.Operation.Overlay.EdgeSetNoder.AddEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  36821. <summary>
  36822. </summary>
  36823. <param name="edges"></param>
  36824. </member>
  36825. <member name="P:NetTopologySuite.Operation.Overlay.EdgeSetNoder.NodedEdges">
  36826. <summary>
  36827. </summary>
  36828. </member>
  36829. <member name="T:NetTopologySuite.Operation.Overlay.LineBuilder">
  36830. <summary>
  36831. Forms NTS LineStrings out of a the graph of <c>DirectedEdge</c>s
  36832. created by an <c>OverlayOp</c>.
  36833. </summary>
  36834. </member>
  36835. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.#ctor(NetTopologySuite.Operation.Overlay.OverlayOp,NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Algorithm.PointLocator)">
  36836. <summary>
  36837. </summary>
  36838. <param name="op"></param>
  36839. <param name="geometryFactory"></param>
  36840. <param name="ptLocator"></param>
  36841. </member>
  36842. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.Build(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  36843. <summary>
  36844. </summary>
  36845. <param name="opCode"></param>
  36846. <returns>
  36847. A list of the LineStrings in the result of the specified overlay operation.
  36848. </returns>
  36849. </member>
  36850. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.FindCoveredLineEdges">
  36851. <summary>
  36852. Find and mark L edges which are "covered" by the result area (if any).
  36853. L edges at nodes which also have A edges can be checked by checking
  36854. their depth at that node.
  36855. L edges at nodes which do not have A edges can be checked by doing a
  36856. point-in-polygon test with the previously computed result areas.
  36857. </summary>
  36858. </member>
  36859. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectLines(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  36860. <summary>
  36861. </summary>
  36862. <param name="opCode"></param>
  36863. </member>
  36864. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectLineEdge(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
  36865. <summary>
  36866. </summary>
  36867. <param name="de"></param>
  36868. <param name="opCode"></param>
  36869. <param name="edges"></param>
  36870. </member>
  36871. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.CollectBoundaryTouchEdge(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Edge})">
  36872. <summary>
  36873. Collect edges from Area inputs which should be in the result but
  36874. which have not been included in a result area.
  36875. This happens ONLY:
  36876. during an intersection when the boundaries of two
  36877. areas touch in a line segment
  36878. OR as a result of a dimensional collapse.
  36879. </summary>
  36880. <param name="de"></param>
  36881. <param name="opCode"></param>
  36882. <param name="edges"></param>
  36883. </member>
  36884. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.BuildLines(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  36885. <summary>
  36886. </summary>
  36887. <param name="opCode"></param>
  36888. </member>
  36889. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.LabelIsolatedLines(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  36890. <summary>
  36891. </summary>
  36892. <param name="edgesList"></param>
  36893. </member>
  36894. <member name="M:NetTopologySuite.Operation.Overlay.LineBuilder.LabelIsolatedLine(NetTopologySuite.GeometriesGraph.Edge,System.Int32)">
  36895. <summary>
  36896. Label an isolated node with its relationship to the target point.
  36897. </summary>
  36898. <param name="e"></param>
  36899. <param name="targetIndex"></param>
  36900. </member>
  36901. <member name="T:NetTopologySuite.Operation.Overlay.MaximalEdgeRing">
  36902. <summary>
  36903. A ring of edges which may contain nodes of degree > 2.
  36904. A MaximalEdgeRing may represent two different spatial entities:
  36905. a single polygon possibly containing inversions (if the ring is oriented CW)
  36906. a single hole possibly containing exversions (if the ring is oriented CCW)
  36907. If the MaximalEdgeRing represents a polygon,
  36908. the interior of the polygon is strongly connected.
  36909. These are the form of rings used to define polygons under some spatial data models.
  36910. However, under the OGC SFS model, MinimalEdgeRings are required.
  36911. A MaximalEdgeRing can be converted to a list of MinimalEdgeRings using the
  36912. <c>BuildMinimalRings()</c> method.
  36913. </summary>
  36914. </member>
  36915. <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
  36916. <summary>
  36917. </summary>
  36918. <param name="start"></param>
  36919. <param name="geometryFactory"></param>
  36920. </member>
  36921. <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  36922. <summary>
  36923. </summary>
  36924. <param name="de"></param>
  36925. <returns></returns>
  36926. </member>
  36927. <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
  36928. <summary>
  36929. </summary>
  36930. <param name="de"></param>
  36931. <param name="er"></param>
  36932. </member>
  36933. <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.LinkDirectedEdgesForMinimalEdgeRings">
  36934. <summary>
  36935. For all nodes in this EdgeRing,
  36936. link the DirectedEdges at the node to form minimalEdgeRings
  36937. </summary>
  36938. </member>
  36939. <member name="M:NetTopologySuite.Operation.Overlay.MaximalEdgeRing.BuildMinimalRings">
  36940. <summary>
  36941. </summary>
  36942. <returns></returns>
  36943. </member>
  36944. <member name="T:NetTopologySuite.Operation.Overlay.MinimalEdgeRing">
  36945. <summary>
  36946. A ring of edges with the property that no node
  36947. has degree greater than 2. These are the form of rings required
  36948. to represent polygons under the OGC SFS spatial data model.
  36949. </summary>
  36950. </member>
  36951. <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.#ctor(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.Geometries.GeometryFactory)">
  36952. <summary>
  36953. </summary>
  36954. <param name="start"></param>
  36955. <param name="geometryFactory"></param>
  36956. </member>
  36957. <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.GetNext(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  36958. <summary>
  36959. </summary>
  36960. <param name="de"></param>
  36961. <returns></returns>
  36962. </member>
  36963. <member name="M:NetTopologySuite.Operation.Overlay.MinimalEdgeRing.SetEdgeRing(NetTopologySuite.GeometriesGraph.DirectedEdge,NetTopologySuite.GeometriesGraph.EdgeRing)">
  36964. <summary>
  36965. </summary>
  36966. <param name="de"></param>
  36967. <param name="er"></param>
  36968. </member>
  36969. <member name="T:NetTopologySuite.Operation.Overlay.OverlayNodeFactory">
  36970. <summary>
  36971. Creates nodes for use in the <c>PlanarGraph</c>s constructed during
  36972. overlay operations.
  36973. </summary>
  36974. </member>
  36975. <member name="M:NetTopologySuite.Operation.Overlay.OverlayNodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
  36976. <summary>
  36977. </summary>
  36978. <param name="coord"></param>
  36979. <returns></returns>
  36980. </member>
  36981. <member name="T:NetTopologySuite.Operation.Overlay.SpatialFunction">
  36982. <summary>
  36983. The spatial functions supported by this class.
  36984. These operations implement various bool combinations of the resultants of the overlay.
  36985. </summary>
  36986. </member>
  36987. <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection">
  36988. <summary>
  36989. The code for the Intersection overlay operation
  36990. </summary>
  36991. </member>
  36992. <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union">
  36993. <summary>
  36994. The code for the Union overlay operation
  36995. </summary>
  36996. </member>
  36997. <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference">
  36998. <summary>
  36999. The code for the Difference overlay operation
  37000. </summary>
  37001. </member>
  37002. <member name="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference">
  37003. <summary>
  37004. The code for the Symmetric Difference overlay operation
  37005. </summary>
  37006. </member>
  37007. <member name="T:NetTopologySuite.Operation.Overlay.OverlayOp">
  37008. <summary>
  37009. Computes the geometric overlay of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s. The overlay
  37010. can be used to determine any bool combination of the geometries.
  37011. </summary>
  37012. </member>
  37013. <member name="P:NetTopologySuite.Operation.Overlay.OverlayOp.NodingValidatorDisabled">
  37014. <summary>
  37015. Disable <see cref="T:NetTopologySuite.GeometriesGraph.EdgeNodingValidator"/>
  37016. when an intersection is made (<see cref="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeOverlay(NetTopologySuite.Operation.Overlay.SpatialFunction)"/>),
  37017. so performances are dramatically improved but failures are not managed.
  37018. </summary>
  37019. <remarks>
  37020. Use ay your own risk!
  37021. </remarks>
  37022. </member>
  37023. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37024. <summary>
  37025. Computes an overlay operation
  37026. for the given geometry arguments.
  37027. </summary>
  37028. <param name="geom0">The first geometry argument</param>
  37029. <param name="geom1">The second geometry argument</param>
  37030. <param name="opCode">The code for the desired overlay operation</param>
  37031. <returns>The result of the overlay operation</returns>
  37032. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness problem is encountered.</exception>
  37033. </member>
  37034. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsResultOfOp(NetTopologySuite.GeometriesGraph.Label,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37035. <summary>
  37036. Tests whether a point with a given topological <see cref="T:NetTopologySuite.GeometriesGraph.Label"/>
  37037. relative to two geometries is contained in
  37038. the result of overlaying the geometries using
  37039. a given overlay operation.
  37040. <para/>
  37041. The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
  37042. </summary>
  37043. <param name="label">The topological label of the point</param>
  37044. <param name="overlayOpCode">The code for the overlay operation to test</param>
  37045. <returns><c>true</c> if the label locations correspond to the overlayOpCode</returns>
  37046. </member>
  37047. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsResultOfOp(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37048. <summary>
  37049. Tests whether a point with given <see cref="T:NetTopologySuite.Geometries.Location"/>s
  37050. relative to two geometries is contained in
  37051. the result of overlaying the geometries using
  37052. a given overlay operation.
  37053. <para/>
  37054. The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
  37055. </summary>
  37056. <param name="loc0">the code for the location in the first geometry </param>
  37057. <param name="loc1">the code for the location in the second geometry</param>
  37058. <param name="overlayOpCode">the code for the overlay operation to test</param>
  37059. <returns><c>true</c> if the locations correspond to the overlayOpCode.</returns>
  37060. </member>
  37061. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37062. <summary>
  37063. Constructs an instance to compute a single overlay operation
  37064. for the given geometries.
  37065. </summary>
  37066. <param name="g0">The first geometry argument</param>
  37067. <param name="g1">The second geometry argument</param>
  37068. </member>
  37069. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.GetResultGeometry(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37070. <summary>
  37071. Gets the result of the overlay for a given overlay operation.
  37072. <para/>
  37073. Note: this method can be called once only.
  37074. </summary>
  37075. <param name="overlayOpCode">The code of the overlay operation to perform</param>
  37076. <returns>The computed result geometry</returns>
  37077. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown if a robustness problem is encountered</exception>
  37078. </member>
  37079. <member name="P:NetTopologySuite.Operation.Overlay.OverlayOp.Graph">
  37080. <summary>
  37081. Gets the graph constructed to compute the overlay.
  37082. </summary>
  37083. </member>
  37084. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.InsertUniqueEdge(NetTopologySuite.GeometriesGraph.Edge)">
  37085. <summary>
  37086. Insert an edge from one of the noded input graphs.
  37087. Checks edges that are inserted to see if an
  37088. identical edge already exists.
  37089. If so, the edge is not inserted, but its label is merged
  37090. with the existing edge.
  37091. </summary>
  37092. <param name="e">The edge to insert</param>
  37093. </member>
  37094. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeLabelsFromDepths">
  37095. <summary>
  37096. Update the labels for edges according to their depths.
  37097. For each edge, the depths are first normalized.
  37098. Then, if the depths for the edge are equal,
  37099. this edge must have collapsed into a line edge.
  37100. If the depths are not equal, update the label
  37101. with the locations corresponding to the depths
  37102. (i.e. a depth of 0 corresponds to a Location of Exterior,
  37103. a depth of 1 corresponds to Interior)
  37104. </summary>
  37105. </member>
  37106. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ReplaceCollapsedEdges">
  37107. <summary>
  37108. If edges which have undergone dimensional collapse are found,
  37109. replace them with a new edge which is a L edge
  37110. </summary>
  37111. </member>
  37112. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CopyPoints(System.Int32)">
  37113. <summary>
  37114. Copy all nodes from an arg point into this graph.
  37115. The node label in the arg point overrides any previously computed
  37116. label for that argIndex.
  37117. (E.g. a node may be an intersection node with
  37118. a previously computed label of Boundary,
  37119. but in the original arg Geometry it is actually
  37120. in the interior due to the Boundary Determination Rule)
  37121. </summary>
  37122. <param name="argIndex"></param>
  37123. </member>
  37124. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.ComputeLabelling">
  37125. <summary>
  37126. Compute initial labelling for all DirectedEdges at each node.
  37127. In this step, DirectedEdges will acquire a complete labelling
  37128. (i.e. one with labels for both Geometries)
  37129. only if they
  37130. are incident on a node which has edges for both Geometries
  37131. </summary>
  37132. </member>
  37133. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.MergeSymLabels">
  37134. <summary>
  37135. For nodes which have edges from only one Geometry incident on them,
  37136. the previous step will have left their dirEdges with no labelling for the other
  37137. Geometry. However, the sym dirEdge may have a labelling for the other
  37138. Geometry, so merge the two labels.
  37139. </summary>
  37140. </member>
  37141. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.LabelIncompleteNodes">
  37142. <summary>
  37143. Incomplete nodes are nodes whose labels are incomplete.
  37144. (e.g. the location for one Geometry is null).
  37145. These are either isolated nodes,
  37146. or nodes which have edges from only a single Geometry incident on them.
  37147. Isolated nodes are found because nodes in one graph which don't intersect
  37148. nodes in the other are not completely labelled by the initial process
  37149. of adding nodes to the nodeList.
  37150. To complete the labelling we need to check for nodes that lie in the
  37151. interior of edges, and in the interior of areas.
  37152. When each node labelling is completed, the labelling of the incident
  37153. edges is updated, to complete their labelling as well.
  37154. </summary>
  37155. </member>
  37156. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.LabelIncompleteNode(NetTopologySuite.GeometriesGraph.GraphComponent,System.Int32)">
  37157. <summary>
  37158. Label an isolated node with its relationship to the target point.
  37159. </summary>
  37160. </member>
  37161. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.FindResultAreaEdges(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37162. <summary>
  37163. Find all edges whose label indicates that they are in the result area(s),
  37164. according to the operation being performed. Since we want polygon shells to be
  37165. oriented CW, choose dirEdges with the interior of the result on the RHS.
  37166. Mark them as being in the result.
  37167. Interior Area edges are the result of dimensional collapses.
  37168. They do not form part of the result area boundary.
  37169. </summary>
  37170. </member>
  37171. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CancelDuplicateResultEdges">
  37172. <summary>
  37173. If both a dirEdge and its sym are marked as being in the result, cancel
  37174. them out.
  37175. </summary>
  37176. </member>
  37177. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCoveredByLA(NetTopologySuite.Geometries.Coordinate)">
  37178. <summary>
  37179. Tests if a point node should be included in the result or not.
  37180. </summary>
  37181. <param name="coord">The point coordinate</param>
  37182. <returns><c>true</c> if the coordinate point is covered by a result Line or Area geometry.</returns>
  37183. </member>
  37184. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCoveredByA(NetTopologySuite.Geometries.Coordinate)">
  37185. <summary>
  37186. Tests if an L edge should be included in the result or not.
  37187. </summary>
  37188. <param name="coord">The point coordinate</param>
  37189. <returns><c>true</c> if the coordinate point is covered by a result Area geometry.</returns>
  37190. </member>
  37191. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.IsCovered(NetTopologySuite.Geometries.Coordinate,System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  37192. <returns>
  37193. <c>true</c> if the coord is located in the interior or boundary of
  37194. a point in the list.
  37195. </returns>
  37196. </member>
  37197. <member name="M:NetTopologySuite.Operation.Overlay.OverlayOp.CreateEmptyResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.GeometryFactory)">
  37198. <summary>
  37199. Creates an empty result geometry of the appropriate dimension,
  37200. based on the given overlay operation and the dimensions of the inputs.
  37201. The created geometry is always an atomic geometry,
  37202. not a collection.
  37203. <para/>
  37204. The empty result is constructed using the following rules:
  37205. <list type="bullet">
  37206. <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> - result has the dimension of the lowest input dimension</description></item>
  37207. <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> - result has the dimension of the highest input dimension</description></item>
  37208. <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> - result has the dimension of the left-hand input</description></item>
  37209. <item><description><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> - result has the dimension of the highest input dimension
  37210. (since symDifference is the union of the differences).</description></item>
  37211. </list>
  37212. </summary>
  37213. <param name="overlayOpCode">The overlay operation being performed</param>
  37214. <param name="a">An input geometry</param>
  37215. <param name="b">An input geometry</param>
  37216. <param name="geomFact">The geometry factory being used for the operation</param>
  37217. <returns>An empty atomic geometry of the appropriate dimension</returns>
  37218. </member>
  37219. <member name="T:NetTopologySuite.Operation.Overlay.PointBuilder">
  37220. <summary>
  37221. Constructs <c>Point</c>s from the nodes of an overlay graph.
  37222. </summary>
  37223. </member>
  37224. <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.#ctor(NetTopologySuite.Operation.Overlay.OverlayOp,NetTopologySuite.Geometries.GeometryFactory)">
  37225. <summary>
  37226. Creates an instance of this class
  37227. </summary>
  37228. <param name="op">The operation</param>
  37229. <param name="geometryFactory">The geometry factory</param>
  37230. </member>
  37231. <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.Build(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37232. <summary>
  37233. Computes the Point geometries which will appear in the result,
  37234. given the specified overlay operation.
  37235. </summary>
  37236. <param name="opCode">The spatial function</param>
  37237. <returns>
  37238. A list of the Points in the result.
  37239. </returns>
  37240. </member>
  37241. <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.ExtractNonCoveredResultNodes(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37242. <summary>
  37243. Determines nodes which are in the result, and creates <see cref="T:NetTopologySuite.Geometries.Point"/>s for them.
  37244. </summary>
  37245. <remarks>
  37246. This method determines nodes which are candidates for the result via their
  37247. labelling and their graph topology.
  37248. </remarks>
  37249. <param name="opCode">The overlay operation</param>
  37250. </member>
  37251. <member name="M:NetTopologySuite.Operation.Overlay.PointBuilder.FilterCoveredNodeToPoint(NetTopologySuite.GeometriesGraph.Node)">
  37252. <summary>
  37253. Converts non-covered nodes to Point objects and adds them to the result.
  37254. </summary>
  37255. <remarks>
  37256. A node is covered if it is contained in another element Geometry
  37257. with higher dimension (e.g. a node point might be contained in a polygon,
  37258. in which case the point can be eliminated from the result).
  37259. </remarks>
  37260. <param name="n">The node to test</param>
  37261. </member>
  37262. <member name="T:NetTopologySuite.Operation.Overlay.PolygonBuilder">
  37263. <summary>
  37264. Forms <c>Polygon</c>s out of a graph of {DirectedEdge}s.
  37265. The edges to use are marked as being in the result Area.
  37266. </summary>
  37267. </member>
  37268. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  37269. <summary>
  37270. </summary>
  37271. <param name="geometryFactory"></param>
  37272. </member>
  37273. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.Add(NetTopologySuite.GeometriesGraph.PlanarGraph)">
  37274. <summary>
  37275. Add a complete graph.
  37276. The graph is assumed to contain one or more polygons,
  37277. possibly with holes.
  37278. </summary>
  37279. <param name="graph"></param>
  37280. </member>
  37281. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.Add(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.Node})">
  37282. <summary>
  37283. Add a set of edges and nodes, which form a graph.
  37284. The graph is assumed to contain one or more polygons,
  37285. possibly with holes.
  37286. </summary>
  37287. <param name="dirEdges"></param>
  37288. <param name="nodes"></param>
  37289. </member>
  37290. <member name="P:NetTopologySuite.Operation.Overlay.PolygonBuilder.Polygons">
  37291. <summary>
  37292. </summary>
  37293. </member>
  37294. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.BuildMaximalEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
  37295. <summary>
  37296. For all DirectedEdges in result, form them into MaximalEdgeRings.
  37297. </summary>
  37298. <param name="dirEdges"></param>
  37299. <returns></returns>
  37300. </member>
  37301. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.BuildMinimalEdgeRings(System.Collections.Generic.List{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37302. <summary>
  37303. </summary>
  37304. <param name="maxEdgeRings"></param>
  37305. <param name="shellList"></param>
  37306. <param name="freeHoleList"></param>
  37307. <returns></returns>
  37308. </member>
  37309. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.FindShell(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37310. <summary>
  37311. This method takes a list of MinimalEdgeRings derived from a MaximalEdgeRing,
  37312. and tests whether they form a Polygon. This is the case if there is a single shell
  37313. in the list. In this case the shell is returned.
  37314. The other possibility is that they are a series of connected holes, in which case
  37315. no shell is returned.
  37316. </summary>
  37317. <returns>The shell EdgeRing, if there is one<br/> or
  37318. <c>null</c>, if all the rings are holes.</returns>
  37319. </member>
  37320. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.PlacePolygonHoles(NetTopologySuite.GeometriesGraph.EdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37321. <summary>
  37322. This method assigns the holes for a Polygon (formed from a list of
  37323. MinimalEdgeRings) to its shell.
  37324. Determining the holes for a MinimalEdgeRing polygon serves two purposes:
  37325. it is faster than using a point-in-polygon check later on.
  37326. it ensures correctness, since if the PIP test was used the point
  37327. chosen might lie on the shell, which might return an incorrect result from the
  37328. PIP test.
  37329. </summary>
  37330. <param name="shell"></param>
  37331. <param name="minEdgeRings"></param>
  37332. </member>
  37333. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.SortShellsAndHoles(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37334. <summary>
  37335. For all rings in the input list,
  37336. determine whether the ring is a shell or a hole
  37337. and add it to the appropriate list.
  37338. Due to the way the DirectedEdges were linked,
  37339. a ring is a shell if it is oriented CW, a hole otherwise.
  37340. </summary>
  37341. <param name="edgeRings"></param>
  37342. <param name="shellList"></param>
  37343. <param name="freeHoleList"></param>
  37344. </member>
  37345. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.PlaceFreeHoles(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37346. <summary>
  37347. This method determines finds a containing shell for all holes
  37348. which have not yet been assigned to a shell.
  37349. These "free" holes should
  37350. all be properly contained in their parent shells, so it is safe to use the
  37351. <c>findEdgeRingContaining</c> method.
  37352. (This is the case because any holes which are NOT
  37353. properly contained (i.e. are connected to their
  37354. parent shell) would have formed part of a MaximalEdgeRing
  37355. and been handled in a previous step).
  37356. </summary>
  37357. <param name="shellList"></param>
  37358. <param name="freeHoleList"></param>
  37359. </member>
  37360. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.FindEdgeRingContaining(NetTopologySuite.GeometriesGraph.EdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37361. <summary>
  37362. Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
  37363. The innermost enclosing ring is the <i>smallest</i> enclosing ring.
  37364. The algorithm used depends on the fact that:
  37365. ring A contains ring B if envelope(ring A) contains envelope(ring B).
  37366. This routine is only safe to use if the chosen point of the hole
  37367. is known to be properly contained in a shell
  37368. (which is guaranteed to be the case if the hole does not touch its shell).
  37369. </summary>
  37370. <param name="testEr"></param>
  37371. <param name="shellList"></param>
  37372. <returns>Containing EdgeRing, if there is one <br/> or
  37373. <c>null</c> if no containing EdgeRing is found.</returns>
  37374. </member>
  37375. <member name="M:NetTopologySuite.Operation.Overlay.PolygonBuilder.ComputePolygons(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeRing})">
  37376. <summary>
  37377. </summary>
  37378. <param name="shellList"></param>
  37379. <returns></returns>
  37380. </member>
  37381. <member name="T:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper">
  37382. <summary>
  37383. Snaps the vertices and segments of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  37384. to another Geometry's vertices.
  37385. A snap distance tolerance is used to control where snapping is performed.
  37386. Snapping one geometry to another can improve
  37387. robustness for overlay operations by eliminating
  37388. nearly-coincident edges
  37389. (which cause problems during noding and intersection calculation).
  37390. It can also be used to eliminate artifacts such as narrow slivers, spikes and gores.
  37391. Too much snapping can result in invalid topology
  37392. beging created, so the number and location of snapped vertices
  37393. is decided using heuristics to determine when it
  37394. is safe to snap.
  37395. This can result in some potential snaps being omitted, however.
  37396. </summary>
  37397. <author>Martin Davis</author>
  37398. </member>
  37399. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeOverlaySnapTolerance(NetTopologySuite.Geometries.Geometry)">
  37400. <summary>
  37401. Estimates the snap tolerance for a Geometry, taking into account its precision model.
  37402. </summary>
  37403. <param name="g"></param>
  37404. <returns>The estimated snap tolerance</returns>
  37405. </member>
  37406. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeSizeBasedSnapTolerance(NetTopologySuite.Geometries.Geometry)">
  37407. <summary>
  37408. </summary>
  37409. <param name="g"></param>
  37410. <returns></returns>
  37411. </member>
  37412. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeOverlaySnapTolerance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37413. <summary>
  37414. </summary>
  37415. <param name="g0"></param>
  37416. <param name="g1"></param>
  37417. <returns></returns>
  37418. </member>
  37419. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.Snap(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.Double)">
  37420. <summary>
  37421. Snaps two geometries together with a given tolerance.
  37422. </summary>
  37423. <param name="g0"></param>
  37424. <param name="g1"></param>
  37425. <param name="snapTolerance"></param>
  37426. <returns></returns>
  37427. </member>
  37428. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapToSelf(NetTopologySuite.Geometries.Geometry,System.Double,System.Boolean)">
  37429. <summary>
  37430. Snaps a geometry to itself.
  37431. Allows optionally cleaning the result to ensure it is topologically valid
  37432. (which fixes issues such as topology collapses in polygonal inputs).
  37433. Snapping a geometry to itself can remove artifacts such as very narrow slivers, gores and spikes.
  37434. </summary>
  37435. <param name="geom">the geometry to snap</param>
  37436. <param name="snapTolerance">the snapping tolerance</param>
  37437. <param name="cleanResult">whether the result should be made valid</param>
  37438. <returns>a new snapped <see cref="T:NetTopologySuite.Geometries.Geometry"/></returns>
  37439. </member>
  37440. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.#ctor(NetTopologySuite.Geometries.Geometry)">
  37441. <summary>
  37442. Creates a new snapper acting on the given geometry
  37443. </summary>
  37444. <param name="g">the geometry to snap</param>
  37445. </member>
  37446. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapTo(NetTopologySuite.Geometries.Geometry,System.Double)">
  37447. <summary>
  37448. Snaps the vertices in the component <see cref="T:NetTopologySuite.Geometries.LineString" />s
  37449. of the source geometry to the vertices of the given snap geometry.
  37450. </summary>
  37451. <param name="g">a geometry to snap the source to</param>
  37452. <param name="tolerance"></param>
  37453. <returns>a new snapped Geometry</returns>
  37454. </member>
  37455. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.SnapToSelf(System.Double,System.Boolean)">
  37456. Snaps the vertices in the component <see cref="T:NetTopologySuite.Geometries.LineString" />s
  37457. of the source geometry to the vertices of the same geometry.
  37458. Allows optionally cleaning the result to ensure it is topologically valid
  37459. (which fixes issues such as topology collapses in polygonal inputs).
  37460. <param name="snapTolerance">The snapping tolerance</param>
  37461. <param name="cleanResult">Whether the result should be made valid</param>
  37462. <returns>The geometry snapped to itself</returns>
  37463. </member>
  37464. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ExtractTargetCoordinates(NetTopologySuite.Geometries.Geometry)">
  37465. <summary>
  37466. </summary>
  37467. <param name="g"></param>
  37468. <returns></returns>
  37469. </member>
  37470. <member name="M:NetTopologySuite.Operation.Overlay.Snap.GeometrySnapper.ComputeSnapTolerance(NetTopologySuite.Geometries.Coordinate[])">
  37471. <summary>
  37472. Computes the snap tolerance based on the input geometries.
  37473. </summary>
  37474. </member>
  37475. <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer">
  37476. <summary>
  37477. </summary>
  37478. </member>
  37479. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.#ctor(System.Double,NetTopologySuite.Geometries.Coordinate[])">
  37480. <summary>
  37481. </summary>
  37482. <param name="snapTolerance"></param>
  37483. <param name="snapPts"></param>
  37484. </member>
  37485. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
  37486. <summary>
  37487. </summary>
  37488. <param name="coords"></param>
  37489. <param name="parent"></param>
  37490. <returns></returns>
  37491. </member>
  37492. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapTransformer.SnapLine(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  37493. <summary>
  37494. </summary>
  37495. <param name="srcPts"></param>
  37496. <param name="snapPts"></param>
  37497. <returns></returns>
  37498. </member>
  37499. <member name="T:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper">
  37500. <summary>
  37501. Snaps the vertices and segments of a <see cref="T:NetTopologySuite.Geometries.LineString"/>
  37502. to a set of target snap vertices.
  37503. A snap distance tolerance is used to control where snapping is performed.
  37504. <para/>The implementation handles empty geometry and empty snap vertex sets.
  37505. </summary>
  37506. </member>
  37507. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.#ctor(NetTopologySuite.Geometries.LineString,System.Double)">
  37508. <summary>
  37509. Creates a new snapper using the points in the given <see cref="T:NetTopologySuite.Geometries.LineString"/>
  37510. as target snap points.
  37511. </summary>
  37512. <param name="srcLine">A LineString to snap (may be empty)</param>
  37513. <param name="snapTolerance">the snap tolerance to use</param>
  37514. </member>
  37515. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.#ctor(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  37516. <summary>
  37517. Creates a new snapper using the given points
  37518. as source points to be snapped.
  37519. </summary>
  37520. <param name="srcPts"></param>
  37521. <param name="snapTolerance"></param>
  37522. </member>
  37523. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapTo(NetTopologySuite.Geometries.Coordinate[])">
  37524. <summary>
  37525. Snaps the vertices and segments of the source LineString
  37526. to the given set of snap points.
  37527. </summary>
  37528. <param name="snapPts">the vertices to snap to</param>
  37529. <returns>list of the snapped points</returns>
  37530. </member>
  37531. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapVertices(NetTopologySuite.Geometries.CoordinateList,NetTopologySuite.Geometries.Coordinate[])">
  37532. <summary>
  37533. Snap source vertices to vertices in the target.
  37534. </summary>
  37535. <param name="srcCoords">the points to snap</param>
  37536. <param name="snapPts">the points to snap to</param>
  37537. </member>
  37538. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.FindSnapForVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  37539. <summary>
  37540. </summary>
  37541. <param name="pt"></param>
  37542. <param name="snapPts"></param>
  37543. <returns></returns>
  37544. </member>
  37545. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.SnapSegments(NetTopologySuite.Geometries.CoordinateList,NetTopologySuite.Geometries.Coordinate[])">
  37546. <summary>
  37547. Snap segments of the source to nearby snap vertices.<para/>
  37548. Source segments are "cracked" at a snap vertex.
  37549. A single input segment may be snapped several times
  37550. to different snap vertices.<para/>
  37551. For each distinct snap vertex, at most one source segment
  37552. is snapped to. This prevents "cracking" multiple segments
  37553. at the same point, which would likely cause
  37554. topology collapse when being used on polygonal linework.
  37555. </summary>
  37556. <param name="srcCoords">The coordinates of the source linestring to snap</param>
  37557. <param name="snapPts">The target snap vertices</param>
  37558. </member>
  37559. <member name="M:NetTopologySuite.Operation.Overlay.Snap.LineStringSnapper.FindSegmentIndexToSnap(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.CoordinateList)">
  37560. <summary>
  37561. Finds a src segment which snaps to (is close to) the given snap point<para/>
  37562. Only a single segment is selected for snapping.
  37563. This prevents multiple segments snapping to the same snap vertex,
  37564. which would almost certainly cause invalid geometry
  37565. to be created.
  37566. (The heuristic approach of snapping used here
  37567. is really only appropriate when
  37568. snap pts snap to a unique spot on the src geometry)<para/>
  37569. Also, if the snap vertex occurs as a vertex in the src coordinate list,
  37570. no snapping is performed.
  37571. </summary>
  37572. <param name="snapPt">The point to snap to</param>
  37573. <param name="srcCoords">The source segment coordinates</param>
  37574. <returns>The index of the snapped segment <br/>
  37575. or -1 if no segment snaps to the snap point.</returns>
  37576. </member>
  37577. <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapIfNeededOverlayOp">
  37578. <summary>
  37579. Performs an overlay operation using snapping and enhanced precision
  37580. to improve the robustness of the result.
  37581. This class only uses snapping
  37582. if an error is detected when running the standard JTS overlay code.
  37583. Errors detected include thrown exceptions
  37584. (in particular, <see cref="T:NetTopologySuite.Geometries.TopologyException" />)
  37585. and invalid overlay computations.
  37586. </summary>
  37587. </member>
  37588. <member name="T:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp">
  37589. <summary>
  37590. Performs an overlay operation using snapping and enhanced precision
  37591. to improve the robustness of the result.
  37592. This class always uses snapping.
  37593. This is less performant than the standard JTS overlay code,
  37594. and may even introduce errors which were not present in the original data.
  37595. For this reason, this class should only be used
  37596. if the standard overlay code fails to produce a correct result.
  37597. </summary>
  37598. </member>
  37599. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37600. <summary>
  37601. </summary>
  37602. <param name="g0"></param>
  37603. <param name="g1"></param>
  37604. <param name="opCode"></param>
  37605. <returns></returns>
  37606. </member>
  37607. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37608. <summary>
  37609. </summary>
  37610. <param name="g0"></param>
  37611. <param name="g1"></param>
  37612. <returns></returns>
  37613. </member>
  37614. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37615. <summary>
  37616. </summary>
  37617. <param name="g0"></param>
  37618. <param name="g1"></param>
  37619. <returns></returns>
  37620. </member>
  37621. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37622. <summary>
  37623. </summary>
  37624. <param name="g0"></param>
  37625. <param name="g1"></param>
  37626. <returns></returns>
  37627. </member>
  37628. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37629. <summary>
  37630. </summary>
  37631. <param name="g0"></param>
  37632. <param name="g1"></param>
  37633. <returns></returns>
  37634. </member>
  37635. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37636. <summary>
  37637. </summary>
  37638. <param name="g1"></param>
  37639. <param name="g2"></param>
  37640. </member>
  37641. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.ComputeSnapTolerance">
  37642. <summary>
  37643. </summary>
  37644. </member>
  37645. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.GetResultGeometry(NetTopologySuite.Operation.Overlay.SpatialFunction)">
  37646. <summary>
  37647. </summary>
  37648. <param name="opCode"></param>
  37649. <returns></returns>
  37650. </member>
  37651. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.Snap(NetTopologySuite.Geometries.Geometry[])">
  37652. <summary>
  37653. </summary>
  37654. <returns></returns>
  37655. </member>
  37656. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.PrepareResult(NetTopologySuite.Geometries.Geometry)">
  37657. <summary>
  37658. </summary>
  37659. <param name="geom"></param>
  37660. <returns></returns>
  37661. </member>
  37662. <member name="M:NetTopologySuite.Operation.Overlay.Snap.SnapOverlayOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry[])">
  37663. <summary>
  37664. </summary>
  37665. <param name="geom"></param>
  37666. <returns></returns>
  37667. </member>
  37668. <member name="T:NetTopologySuite.Operation.Overlay.Validate.FuzzyPointLocator">
  37669. <summary>
  37670. Finds the most likely <see cref="T:NetTopologySuite.Geometries.Location"/> of a point relative to
  37671. the polygonal components of a geometry, using a tolerance value.
  37672. </summary>
  37673. <remarks>
  37674. If a point is not clearly in the Interior or Exterior,
  37675. it is considered to be on the Boundary.
  37676. In other words, if the point is within the tolerance of the Boundary,
  37677. it is considered to be on the Boundary; otherwise,
  37678. whether it is Interior or Exterior is determined directly.
  37679. </remarks>
  37680. <author>Martin Davis</author>
  37681. </member>
  37682. <member name="M:NetTopologySuite.Operation.Overlay.Validate.FuzzyPointLocator.ExtractLinework(NetTopologySuite.Geometries.Geometry)">
  37683. <summary>
  37684. Extracts linework for polygonal components.
  37685. </summary>
  37686. <param name="g">The geometry from which to extract</param>
  37687. <returns>A lineal geometry containing the extracted linework</returns>
  37688. </member>
  37689. <member name="T:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter">
  37690. <summary>
  37691. Extracts the LineStrings in the boundaries of all the polygonal elements in the target <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  37692. </summary>
  37693. <author>Martin Davis</author>
  37694. </member>
  37695. <member name="M:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter.Filter(NetTopologySuite.Geometries.Geometry)">
  37696. <summary>
  37697. Filters out all linework for polygonal elements
  37698. </summary>
  37699. </member>
  37700. <member name="P:NetTopologySuite.Operation.Overlay.Validate.PolygonalLineworkExtracter.Linework">
  37701. <summary>
  37702. Gets the list of polygonal linework.
  37703. </summary>
  37704. </member>
  37705. <member name="T:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator">
  37706. <summary>
  37707. Generates points offset by a given distance from both sides of the midpoint of all segments in a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  37708. </summary>
  37709. <remarks>
  37710. <para>
  37711. Can be used to generate probe points for determining whether a polygonal overlay result is incorrect.
  37712. </para>
  37713. <para>
  37714. The input geometry may have any orientation for its rings,
  37715. but <see cref="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.SetSidesToGenerate(System.Boolean,System.Boolean)"/> is
  37716. only meaningful if the orientation is known.
  37717. </para>
  37718. </remarks>
  37719. <author>Martin Davis</author>
  37720. </member>
  37721. <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.SetSidesToGenerate(System.Boolean,System.Boolean)">
  37722. <summary>
  37723. Set the sides on which to generate offset points.
  37724. </summary>
  37725. <param name="doLeft"></param>
  37726. <param name="doRight"></param>
  37727. </member>
  37728. <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.GetPoints(System.Double)">
  37729. <summary>
  37730. Gets the computed offset points.
  37731. </summary>
  37732. </member>
  37733. <member name="M:NetTopologySuite.Operation.Overlay.Validate.OffsetPointGenerator.ComputeOffsetPoints(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double,System.Collections.Generic.IList{NetTopologySuite.Geometries.Coordinate})">
  37734. <summary>
  37735. Generates the two points which are offset from the
  37736. midpoint of the segment <c>(p0, p1)</c> by the <c>offsetDistance</c>
  37737. </summary>
  37738. <param name="p0">The first point of the segment to offset from.</param>
  37739. <param name="p1">The second point of the segment to offset from</param>
  37740. <param name="offsetDistance"></param>
  37741. <param name="offsetPts"></param>
  37742. </member>
  37743. <member name="T:NetTopologySuite.Operation.Overlay.Validate.OverlayResultValidator">
  37744. <summary>
  37745. Validates that the result of an overlay operation is geometrically correct within a determined tolerance.
  37746. Uses fuzzy point location to find points which are
  37747. definitely in either the interior or exterior of the result
  37748. geometry, and compares these results with the expected ones.
  37749. </summary>
  37750. <remarks>
  37751. This algorithm is only useful where the inputs are polygonal.
  37752. This is a heuristic test, and may return false positive results
  37753. (I.e. it may fail to detect an invalid result.)
  37754. It should never return a false negative result, however
  37755. (I.e. it should never report a valid result as invalid.)
  37756. </remarks>
  37757. <author>Martin Davis</author>
  37758. <see cref="T:NetTopologySuite.Operation.Overlay.OverlayOp"/>
  37759. </member>
  37760. <member name="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion">
  37761. <summary>
  37762. Unions a valid coverage of polygons or lines
  37763. in an efficient way.
  37764. <para/>
  37765. A <b>polygonal coverage</b> is a collection of <see cref="T:NetTopologySuite.Geometries.Polygon"/>s
  37766. which satisfy the following conditions:
  37767. <list type="number">
  37768. <item><term>Vector-clean</term><description>Line segments within the collection
  37769. must either be identical or intersect only at endpoints.</description></item>
  37770. <item><term>Non-overlapping</term><description>No two polygons
  37771. may overlap. Equivalently, polygons must be interior-disjoint.</description></item>
  37772. </list>
  37773. <para/>
  37774. A <b>linear coverage</b> is a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s
  37775. which satisfies the <b>Vector-clean</b> condition.
  37776. Note that this does not require the LineStrings to be fully noded
  37777. - i.e. they may contain coincident linework.
  37778. Coincident line segments are dissolved by the union.
  37779. Currently linear output is not merged (this may be added in a future release.)
  37780. <para/>
  37781. No checking is done to determine whether the input is a valid coverage.
  37782. This is because coverage validation involves segment intersection detection,
  37783. which is much more expensive than the union phase.
  37784. If the input is not a valid coverage
  37785. then in some cases this will be detected during processing
  37786. and a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
  37787. Otherwise, the computation will produce output, but it will be invalid.
  37788. <para/>
  37789. Unioning a valid coverage implies that no new vertices are created.
  37790. This means that a precision model does not need to be specified.
  37791. The precision of the vertices in the output geometry is not changed.
  37792. </summary>
  37793. <author>Martin Davis</author>
  37794. <seealso cref="T:NetTopologySuite.Noding.BoundaryChainNoder"/>
  37795. <seealso cref="T:NetTopologySuite.Noding.SegmentExtractingNoder"/>
  37796. </member>
  37797. <member name="M:NetTopologySuite.Operation.OverlayNG.CoverageUnion.Union(NetTopologySuite.Geometries.Geometry)">
  37798. <summary>
  37799. Unions a valid polygonal coverage or linear network.
  37800. </summary>
  37801. <param name="coverage">A coverage of polygons or lines</param>
  37802. <returns>The union of the coverage</returns>
  37803. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown in some cases if the coverage is invalid</exception>
  37804. </member>
  37805. <member name="T:NetTopologySuite.Operation.OverlayNG.Edge">
  37806. <summary>
  37807. Represents the linework for edges in a topology graph,
  37808. derived from(up to) two parent geometries.
  37809. An edge may be the result of the merging of
  37810. two or more edges which have the same linework
  37811. (although possibly different orientations).
  37812. In this case the topology information is
  37813. derived from the merging of the information in the
  37814. source edges.<br/>
  37815. Merged edges can occur in the following situations
  37816. <list type="bullet">
  37817. <item><description>Due to coincident edges of polygonal or linear geometries.</description></item>
  37818. <item><description>Due to topology collapse caused by snapping or rounding
  37819. of polygonal geometries.</description></item>
  37820. </list>
  37821. The source edges may have the same parent geometry,
  37822. or different ones, or a mix of the two.
  37823. </summary>
  37824. <author>Martin Davis</author>
  37825. </member>
  37826. <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.IsCollapsed(NetTopologySuite.Geometries.Coordinate[])">
  37827. <summary>
  37828. Tests if the given point sequence
  37829. is a collapsed line.<para/>
  37830. A collapsed edge has fewer than two distinct points.
  37831. </summary>
  37832. <param name="pts">The point sequence to check</param>
  37833. <returns><c>true</c> if the points form a collapsed line</returns>
  37834. </member>
  37835. <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.RelativeDirection(NetTopologySuite.Operation.OverlayNG.Edge)">
  37836. <summary>
  37837. Compares two coincident edges to determine
  37838. whether they have the same or opposite direction.
  37839. </summary>
  37840. <param name="edge">An edge</param>
  37841. <returns><c>true</c> if the edges have the same direction, <c>false</c> if not</returns>
  37842. </member>
  37843. <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.InitLabel(NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Int32,NetTopologySuite.Geometries.Dimension,System.Int32,System.Boolean)">
  37844. <summary>
  37845. Populates the label for an edge resulting from an input geometry.
  37846. <para/>
  37847. <list type="bullet">
  37848. <item><description>If the edge is not part of the input, the label is left as <see cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_NOT_PART"/></description></item>
  37849. <item><description>If input is an Area and the edge is on the boundary (which may include some collapses), edge is marked as an <see cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_BOUNDARY"/> edge and side locations are assigned</description></item>
  37850. <item><description>If input is an Area and the edge is collapsed (depth delta = 0), the label is set to <see cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_COLLAPSE"/>. The location will be determined later by evaluating the final graph topology.</description></item>
  37851. <item><description>If input is a Line edge is set to a <see cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_LINE"/> edge. For line edges the line location is not significant (since there is no parent area for which to determine location).</description></item>
  37852. </list>
  37853. </summary>
  37854. </member>
  37855. <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.IsShell(System.Int32)">
  37856. <summary>
  37857. Tests whether the edge is part of a shell in the given geometry.
  37858. This is only the case if the edge is a boundary.
  37859. </summary>
  37860. <param name="geomIndex">The index of the geometry</param>
  37861. <returns><c>true</c> if this edge is a boundary and part of a shell</returns>
  37862. </member>
  37863. <member name="M:NetTopologySuite.Operation.OverlayNG.Edge.Merge(NetTopologySuite.Operation.OverlayNG.Edge)">
  37864. <summary>
  37865. Merges an edge into this edge,
  37866. updating the topology info accordingly.
  37867. </summary>
  37868. <param name="edge">The edge to merge</param>
  37869. </member>
  37870. <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeKey">
  37871. <summary>
  37872. A key for sorting and comparing edges in a noded arrangement.
  37873. Relies on the fact that in a correctly noded arrangement
  37874. edges are identical (up to direction)
  37875. if they have their first segment in common.
  37876. </summary>
  37877. <author>Martin Davis</author>
  37878. </member>
  37879. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.Equals(System.Object)">
  37880. <inheritdoc cref="M:System.Object.Equals(System.Object)"/>
  37881. </member>
  37882. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.GetHashCode">
  37883. <inheritdoc cref="M:System.Object.GetHashCode"/>
  37884. </member>
  37885. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeKey.ToString">
  37886. <inheritdoc cref="M:System.Object.ToString"/>
  37887. </member>
  37888. <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeMerger">
  37889. <summary>
  37890. Performs merging on the noded edges of the input geometries.
  37891. Merging takes place on edges which are coincident
  37892. (i.e.have the same coordinate list, modulo direction).
  37893. The following situations can occur:<para/>
  37894. <list type="bullet">
  37895. <item><description>Coincident edges from different input geometries have their labels combined</description></item>
  37896. <item><description>Coincident edges from the same area geometry indicate a topology collapse.
  37897. In this case the topology locations are "summed" to provide a final
  37898. assignment of side location</description></item>
  37899. <item><description>Coincident edges from the same linear geometry can simply be merged
  37900. using the same ON location</description></item>
  37901. </list>
  37902. <para/>
  37903. The merging attempts to preserve the direction of linear
  37904. edges if possible(which is the case if there is
  37905. no other coincident edge, or if all coincident edges have the same direction).
  37906. This ensures that the overlay output line direction will be as consistent
  37907. as possible with input lines.
  37908. <para/>
  37909. The merger also preserves the order of the edges in the input.
  37910. This means that for polygon-line overlay
  37911. the result lines will be in the same order as in the input
  37912. (possibly with multiple result lines for a single input line).
  37913. </summary>
  37914. <author>Martin Davis</author>
  37915. </member>
  37916. <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder">
  37917. <summary>
  37918. Builds a set of noded, unique, labelled Edges from
  37919. the edges of the two input geometries.
  37920. <para/>
  37921. It performs the following steps:
  37922. <list type="bullet">
  37923. <item><description>Extracts input edges, and attaches topological information</description></item>
  37924. <item><description>if clipping is enabled, handles clipping or limiting input geometry</description></item>
  37925. <item><description>chooses a <see cref="T:NetTopologySuite.Noding.INoder"/> based on provided precision model, unless a custom one is supplied</description></item>
  37926. <item><description>calls the chosen Noder, with precision model</description></item>
  37927. <item><description>removes any fully collapsed noded edges</description></item>
  37928. <item><description>builds <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s and merges them</description></item>
  37929. </list>
  37930. </summary>
  37931. <author>Martin Davis</author>
  37932. </member>
  37933. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
  37934. <summary>
  37935. Creates a new builder, with an optional custom noder.
  37936. If the noder is not provided, a suitable one will
  37937. be used based on the supplied precision model.
  37938. </summary>
  37939. <param name="pm">The precision model to use</param>
  37940. <param name="noder">An optional noder to use (may be null)</param>
  37941. </member>
  37942. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.#ctor(NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Noding.INoder)">
  37943. <summary>
  37944. Creates a new builder, with an optional custom noder.
  37945. If the noder is not provided, a suitable one will
  37946. be used based on the supplied precision model.
  37947. </summary>
  37948. <param name="pm">The precision model to use</param>
  37949. <param name="em">The elevation model to use. May be <c>null</c></param>
  37950. <param name="noder">An optional noder to use (may be null)</param>
  37951. </member>
  37952. <member name="P:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Noder">
  37953. <summary>
  37954. Gets or sets a noder appropriate for the precision model supplied.<br/>
  37955. This is one of:
  37956. <list type="bullet">
  37957. <item><term>Fixed precision:</term><description>a snap-rounding noder (which should be fully robust)</description></item>
  37958. <item><term>Floating precision:</term><description>a conventional noder (which may be non-robust).
  37959. In this case, a validation step is applied to the output from the noder.</description></item>
  37960. </list>
  37961. </summary>
  37962. </member>
  37963. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.HasEdgesFor(System.Int32)">
  37964. <summary>
  37965. Reports whether there are noded edges
  37966. for the given input geometry.
  37967. If there are none, this indicates that either
  37968. the geometry was empty, or has completely collapsed
  37969. (because it is smaller than the noding precision).
  37970. </summary>
  37971. <param name="geomIndex">index of the input geometry</param>
  37972. <returns><c>true</c> if there are edges for the geometry</returns>
  37973. </member>
  37974. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Build(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  37975. <summary>
  37976. Creates a set of labelled {Edge}s.
  37977. representing the fully noded edges of the input geometries.
  37978. Coincident edges (from the same or both geometries)
  37979. are merged along with their labels
  37980. into a single unique, fully labelled edge.
  37981. </summary>
  37982. <param name="geom0">The first geometry</param>
  37983. <param name="geom1">The second geometry</param>
  37984. <returns>The noded, merged, labelled edges</returns>
  37985. </member>
  37986. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Node(System.Collections.Generic.IList{NetTopologySuite.Noding.ISegmentString})">
  37987. <summary>
  37988. Nodes a set of segment strings and creates <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s from the result.
  37989. The input segment strings each carry a <see cref="T:NetTopologySuite.Operation.OverlayNG.EdgeSourceInfo"/> object,
  37990. which is used to provide source topology info to the constructed Edges
  37991. (and then is discarded).
  37992. </summary>
  37993. </member>
  37994. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.AddPolygonRing(NetTopologySuite.Geometries.LinearRing,System.Boolean,System.Int32)">
  37995. <summary>
  37996. Adds a polygon ring to the graph.
  37997. </summary>
  37998. <remarks>Empty rings are ignored.</remarks>
  37999. </member>
  38000. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.IsClippedCompletely(NetTopologySuite.Geometries.Envelope)">
  38001. <summary>
  38002. Tests whether a geometry (represented by its envelope)
  38003. lies completely outside the clip extent(if any).
  38004. </summary>
  38005. <param name="env">The geometry envelope</param>
  38006. <returns><c>true</c> if the geometry envelope is outside the clip extent.</returns>
  38007. </member>
  38008. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Clip(NetTopologySuite.Geometries.LinearRing)">
  38009. <summary>
  38010. If clipper is present,
  38011. clip the line to the clip extent.
  38012. <para/>
  38013. If clipping is enabled, then every ring MUST
  38014. be clipped, to ensure that holes are clipped to
  38015. be inside the shell.
  38016. This means it is not possible to skip
  38017. clipping for rings with few vertices.
  38018. </summary>
  38019. <param name="ring">The line to clip</param>
  38020. <returns>The points in the clipped ring</returns>
  38021. </member>
  38022. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.RemoveRepeatedPoints(NetTopologySuite.Geometries.LineString)">
  38023. <summary>
  38024. Removes any repeated points from a linear component.
  38025. This is required so that noding can be computed correctly.
  38026. </summary>
  38027. <param name="line">The line to process</param>
  38028. <returns>The points of the line with repeated points removed</returns>
  38029. </member>
  38030. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.AddLine(NetTopologySuite.Geometries.LineString,System.Int32)">
  38031. <summary>
  38032. Adds a line geometry, limiting it if enabled,
  38033. and otherwise removing repeated points.
  38034. </summary>
  38035. <param name="line">The line to add</param>
  38036. <param name="geomIndex">The index of the parent geometry</param>
  38037. </member>
  38038. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.IsToBeLimited(NetTopologySuite.Geometries.LineString)">
  38039. <summary>
  38040. Tests whether it is worth limiting a line.
  38041. Lines that have few vertices or are covered
  38042. by the clip extent do not need to be limited.
  38043. </summary>
  38044. <param name="line">The line to test</param>
  38045. <returns><c>true</c> if the line should be limited</returns>
  38046. </member>
  38047. <member name="M:NetTopologySuite.Operation.OverlayNG.EdgeNodingBuilder.Limit(NetTopologySuite.Geometries.LineString)">
  38048. <summary>
  38049. If limiter is provided,
  38050. limit the line to the clip envelope.
  38051. </summary>
  38052. <param name="line">The line to clip</param>
  38053. <returns>the point sections in the clipped line</returns>
  38054. </member>
  38055. <member name="T:NetTopologySuite.Operation.OverlayNG.EdgeSourceInfo">
  38056. <summary>
  38057. Records topological information about an
  38058. edge representing a piece of linework (lineString or polygon ring)
  38059. from a single source geometry.
  38060. This information is carried through the noding process
  38061. (which may result in many noded edges sharing the same information object).
  38062. It is then used to populate the topology info fields
  38063. in <see cref="T:NetTopologySuite.Operation.OverlayNG.Edge"/>s (possibly via merging).
  38064. That information is used to construct the topology graph <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel"/>s.
  38065. </summary>
  38066. <autor>Martin Davis</autor>
  38067. </member>
  38068. <member name="T:NetTopologySuite.Operation.OverlayNG.ElevationModel">
  38069. <summary>A simple elevation model used to populate missing Z values
  38070. in overlay results.
  38071. <para/>
  38072. The model divides the extent of the input geometry(s)
  38073. into an NxM grid.
  38074. The default grid size is 3x3.
  38075. If the input has no extent in the X or Y dimension,
  38076. that dimension is given grid size 1.
  38077. The elevation of each grid cell is computed as the average of the Z values
  38078. of the input vertices in that cell (if any).
  38079. If a cell has no input vertices within it, it is assigned
  38080. the average elevation over all cells.
  38081. <para/>
  38082. If no input vertices have Z values, the model does not assign a Z value.
  38083. <para/>
  38084. The elevation of an arbitrary location is determined as the
  38085. Z value of the nearest grid cell.
  38086. <para/>
  38087. An elevation model can be used to populate missing Z values
  38088. in an overlay result geometry.
  38089. </summary>
  38090. <author>Martin Davis</author>
  38091. </member>
  38092. <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.Create(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  38093. <summary>
  38094. Creates an elevation model from two geometries (which may be null).
  38095. </summary>
  38096. <param name="geom1">An input geometry</param>
  38097. <param name="geom2">An input geometry</param>
  38098. <returns>The elevation model computed from the geometries</returns>
  38099. </member>
  38100. <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.#ctor(NetTopologySuite.Geometries.Envelope,System.Int32,System.Int32)">
  38101. <summary>
  38102. Creates a new elevation model covering an extent by a grid of given dimensions.
  38103. </summary>
  38104. <param name="extent">The XY extent to cover</param>
  38105. <param name="numCellX">The number of grid cells in the X dimension</param>
  38106. <param name="numCellY">The number of grid cells in the Y dimension</param>
  38107. </member>
  38108. <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.Add(NetTopologySuite.Geometries.Geometry)">
  38109. <summary>
  38110. Updates the model using the Z values of a given geometry.
  38111. </summary>
  38112. <param name="geom">The geometry to scan for Z values.</param>
  38113. </member>
  38114. <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.GetZ(System.ReadOnlySpan{System.Double},System.Span{System.Double})">
  38115. <summary>
  38116. Gets the model Z value at a given location.
  38117. If the location lies outside the model grid extent,
  38118. this returns the Z value of the nearest grid cell.
  38119. If the model has no elevation computed (i.e. due
  38120. to empty input), the value is returned as <see cref="F:System.Double.NaN"/>
  38121. </summary>
  38122. <param name="xy">xy-ordinate of the location</param>
  38123. <param name="z">z-ordinate of the location</param>
  38124. <returns>The computed Z value</returns>
  38125. </member>
  38126. <member name="M:NetTopologySuite.Operation.OverlayNG.ElevationModel.PopulateZ(NetTopologySuite.Geometries.Geometry)">
  38127. <summary>
  38128. Computes Z values for any missing Z values in a geometry,
  38129. using the computed model.
  38130. If the model has no Z value, or the geometry coordinate dimension
  38131. does not include Z, the geometry is not updated.
  38132. </summary>
  38133. <param name="geom">The geometry to populate Z values for</param>
  38134. </member>
  38135. <member name="T:NetTopologySuite.Operation.OverlayNG.IndexedPointOnLineLocator">
  38136. <summary>
  38137. Locates points on a linear geometry,
  38138. using a spatial index to provide good performance.
  38139. </summary>
  38140. <author>Martin Davis</author>
  38141. </member>
  38142. <member name="T:NetTopologySuite.Operation.OverlayNG.InputGeometry">
  38143. <summary>
  38144. Manages the input geometries for an overlay operation.
  38145. The second geometry is allowed to be null,
  38146. to support for instance precision reduction.
  38147. </summary>
  38148. <author>Martin Davis</author>
  38149. </member>
  38150. <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.GetAreaIndex">
  38151. <summary>
  38152. Gets the index of an input which is an area,
  38153. if one exists.
  38154. Otherwise returns -1.
  38155. </summary>
  38156. <returns>The index of an area input, or -1</returns>
  38157. </member>
  38158. <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.HasEdges(System.Int32)">
  38159. <summary>
  38160. Tests if an input geometry has edges.
  38161. This indicates that topology needs to be computed for them.
  38162. </summary>
  38163. <param name="geomIndex"></param>
  38164. <returns><c>true</c> if the input geometry has edges</returns>
  38165. </member>
  38166. <member name="M:NetTopologySuite.Operation.OverlayNG.InputGeometry.LocatePointInArea(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  38167. <summary>
  38168. Determines the location within an area geometry.
  38169. This allows disconnected edges to be fully
  38170. located.
  38171. </summary>
  38172. <param name="geomIndex">The index of the geometry</param>
  38173. <param name="pt">The coordinate to locate</param>
  38174. <returns>The location of the coordinate</returns>
  38175. <seealso cref="T:NetTopologySuite.Geometries.Location"/>
  38176. </member>
  38177. <member name="T:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder">
  38178. <summary>
  38179. Extracts Point resultants from an overlay graph
  38180. created by an Intersection operation
  38181. between non-Point inputs.
  38182. Points may be created during intersection
  38183. if lines or areas touch one another at single points.
  38184. Intersection is the only overlay operation which can
  38185. result in Points from non-Point inputs.
  38186. <para/>
  38187. Overlay operations where one or more inputs
  38188. are Points are handled via a different code path.
  38189. </summary>
  38190. <author>Martin Davis</author>
  38191. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayPoints"/>
  38192. </member>
  38193. <member name="F:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder._isAllowCollapseLines">
  38194. <summary>
  38195. Controls whether lines created by area topology collapses
  38196. to participate in the result computation. <br/>
  38197. True provides the original JTS semantics.
  38198. </summary>
  38199. </member>
  38200. <member name="M:NetTopologySuite.Operation.OverlayNG.IntersectionPointBuilder.IsResultPoint(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38201. <summary>
  38202. Tests if a node is a result point.
  38203. This is the case if the node is incident on edges from both
  38204. inputs, and none of the edges are themselves in the result.
  38205. </summary>
  38206. <param name="nodeEdge">An edge originating at the node</param>
  38207. <returns><c>true</c> if the node is a result point.</returns>
  38208. </member>
  38209. <member name="T:NetTopologySuite.Operation.OverlayNG.LineBuilder">
  38210. <summary>
  38211. Finds and builds overlay result lines from the overlay graph.
  38212. Output linework has the following semantics:
  38213. <list type="number">
  38214. <item><description>Linework is fully noded</description></item>
  38215. <item><description>Lines are as long as possible between nodes</description></item>
  38216. </list>
  38217. Various strategies are possible for how to
  38218. merge graph edges into lines.
  38219. This implementation uses the approach
  38220. of having output lines run contiguously from node to node.
  38221. For rings a node point is chosen arbitrarily.
  38222. <para/>
  38223. Another possible strategy would be to preserve input linework
  38224. as far as possible (i.e.any sections of input lines which are not
  38225. coincident with other linework would be preserved).
  38226. <para/>
  38227. It would also be possible to output LinearRings,
  38228. if the input is a LinearRing and is unchanged.
  38229. This will require additional info from the input linework.
  38230. </summary>
  38231. <author>Martin Davis</author>
  38232. </member>
  38233. <member name="F:NetTopologySuite.Operation.OverlayNG.LineBuilder._isAllowMixedResult">
  38234. <summary>
  38235. Indicates whether intersections are allowed to produce
  38236. heterogeneous results including proper boundary touches.
  38237. This does not control inclusion of touches along collapses.<br/>
  38238. True provides the original JTS semantics.
  38239. </summary>
  38240. </member>
  38241. <member name="F:NetTopologySuite.Operation.OverlayNG.LineBuilder._isAllowCollapseLines">
  38242. <summary>
  38243. Allow lines created by area topology collapses
  38244. to appear in the result.<br/>
  38245. True provides the original JTS semantics.
  38246. </summary>
  38247. </member>
  38248. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.#ctor(NetTopologySuite.Operation.OverlayNG.InputGeometry,NetTopologySuite.Operation.OverlayNG.OverlayGraph,System.Boolean,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.GeometryFactory)">
  38249. <summary>
  38250. Creates a builder for linear elements which may be present
  38251. in the overlay result.
  38252. </summary>
  38253. <param name="inputGeom">The input geometries</param>
  38254. <param name="graph">The topology graph</param>
  38255. <param name="hasResultArea"><c>true</c> if an area has been generated for the result</param>
  38256. <param name="opCode">The overlay operation code</param>
  38257. <param name="geomFact">The output geometry factory</param>
  38258. </member>
  38259. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.IsResultLine(NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
  38260. <summary>
  38261. Checks if the topology indicated by an edge label
  38262. determines that this edge should be part of a result line.
  38263. <para/>
  38264. Note that the logic here relies on the semantic
  38265. that for intersection lines are only returned if
  38266. there is no result area components.
  38267. </summary>
  38268. <param name="lbl">The label for an edge</param>
  38269. <returns><c>true</c> if the edge should be included in the result</returns>
  38270. </member>
  38271. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.EffectiveLocation(NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Int32)">
  38272. <summary>
  38273. Determines the effective location for a line,
  38274. for the purpose of overlay operation evaluation.
  38275. Line edges and Collapses are reported as INTERIOR
  38276. so they may be included in the result
  38277. if warranted by the effect of the operation on the two edges.
  38278. (For instance, the intersection of a line edge and a collapsed boundary
  38279. is included in the result).
  38280. </summary>
  38281. <param name="lbl">The label of line</param>
  38282. <param name="geomIndex">The index of parent geometry</param>
  38283. <returns>The effective location of the line</returns>
  38284. </member>
  38285. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.AddResultLinesRings">
  38286. <summary>
  38287. Adds lines which form rings (i.e. have only degree-2 vertices).
  38288. </summary>
  38289. </member>
  38290. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.BuildLine(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38291. <summary>
  38292. Traverses edges from edgeStart which
  38293. lie in a single line (have degree = 2).
  38294. <para/>
  38295. The direction of the linework is preserved as far as possible.
  38296. Specifically, the direction of the line is determined
  38297. by the start edge direction. This implies
  38298. that if all edges are reversed, the created line
  38299. will be reversed to match.
  38300. This ensures the orientation of linework is faithful to the input
  38301. in the case of polygon-line overlay.
  38302. However, this does not provide a consistent orientation
  38303. in the case of line-line intersection(where A and B might have different orientations).
  38304. (Other more complex strategies would be possible.
  38305. E.g. using the direction of the majority of segments,
  38306. or preferring the direction of the A edges.)
  38307. </summary>
  38308. </member>
  38309. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.NextLineEdgeUnvisited(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38310. <summary>
  38311. Finds the next edge around a node which forms
  38312. part of a result line.
  38313. </summary>
  38314. <param name="node">A line edge originating at the node to be scanned</param>
  38315. <returns>The next line edge, or null if there is none
  38316. </returns>
  38317. </member>
  38318. <member name="M:NetTopologySuite.Operation.OverlayNG.LineBuilder.DegreeOfLines(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38319. <summary>
  38320. Computes the degree of the line edges incident on a node
  38321. </summary>
  38322. <param name="node">Node to compute degree for</param>
  38323. <returns>Degree of the node line edges</returns>
  38324. </member>
  38325. <member name="T:NetTopologySuite.Operation.OverlayNG.LineLimiter">
  38326. <summary>
  38327. Limits the segments in a list of segments
  38328. to those which intersect an envelope.
  38329. This creates zero or more sections of the input segment sequences,
  38330. containing only line segments which intersect the limit envelope.
  38331. Segments are not clipped, since that can move
  38332. line segments enough to alter topology,
  38333. and it happens in the overlay in any case.
  38334. This can substantially reduce the number of vertices which need to be
  38335. processed during overlay.
  38336. <para/>
  38337. This optimization is only applicable to Line geometries,
  38338. since it does not maintain the closed topology of rings.
  38339. Polygonal geometries are optimized using the <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>.
  38340. </summary>
  38341. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>
  38342. <author>Martin Davis</author>
  38343. </member>
  38344. <member name="M:NetTopologySuite.Operation.OverlayNG.LineLimiter.#ctor(NetTopologySuite.Geometries.Envelope)">
  38345. <summary>
  38346. Creates a new limiter for a given envelope.
  38347. </summary>
  38348. <param name="env">The envelope to limit to</param>
  38349. </member>
  38350. <member name="M:NetTopologySuite.Operation.OverlayNG.LineLimiter.Limit(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Coordinate})">
  38351. <summary>
  38352. Limits a list of segments.
  38353. </summary>
  38354. <param name="pts">The segment sequence to limit</param>
  38355. <returns>The sections which intersect the limit envelope</returns>
  38356. </member>
  38357. <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.LinkResultAreaMaxRingAtNode(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38358. <summary>
  38359. Traverses the star of edges originating at a node
  38360. and links consecutive result edges together
  38361. into <b>maximal</b> edge rings.
  38362. To link two edges the <c>resultNextMax</c> pointer
  38363. for an <b>incoming</b> result edge
  38364. is set to the next <b>outgoing</b> result edge.
  38365. <para/>
  38366. Edges are linked when:
  38367. <list type="bullet">
  38368. <item><description>they belong to an area (i.e.they have sides)</description></item>
  38369. <item><description>they are marked as being in the result</description></item>
  38370. </list>
  38371. <para/>
  38372. Edges are linked in CCW order
  38373. (which is the order they are linked in the underlying graph).
  38374. This means that rings have their face on the Right
  38375. (in other words,
  38376. the topological location of the face is given by the RHS label of the DirectedEdge).
  38377. This produces rings with CW orientation.
  38378. <para/>
  38379. PRECONDITIONS: <br/>
  38380. - This edge is in the result<br/>
  38381. - This edge is not yet linked<br/>
  38382. - The edge and its sym are NOT both marked as being in the result
  38383. </summary>
  38384. </member>
  38385. <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.LinkMinRingEdgesAtNode(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing)">
  38386. <summary>
  38387. Links the edges of a <see cref="T:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing"/> around this node
  38388. into minimal edge rings (<see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing"/>s).
  38389. Minimal ring edges are linked in the opposite orientation (CW)
  38390. to the maximal ring.
  38391. This changes self-touching rings into a two or more separate rings,
  38392. as per the OGC SFS polygon topology semantics.
  38393. This relinking must be done to each max ring separately,
  38394. rather than all the node result edges, since there may be
  38395. more than one max ring incident at the node.
  38396. </summary>
  38397. <param name="maxRing">The maximal ring to link</param>
  38398. <param name="nodeEdge">An edge originating at this node</param>
  38399. </member>
  38400. <member name="M:NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing.IsAlreadyLinked(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.OverlayNG.MaximalEdgeRing)">
  38401. <summary>
  38402. Tests if an edge of the maximal edge ring is already linked into
  38403. a minimal <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing"/>. If so, this node has already been processed
  38404. earlier in the maximal edgering linking scan.
  38405. </summary>
  38406. <param name="edge">An edge of a maximal edgering</param>
  38407. <param name="maxRing">The maximal edgering</param>
  38408. <returns><c>true</c> if the edge has already been linked into a minimal edgering.</returns>
  38409. </member>
  38410. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdge.CreateEdge(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Operation.OverlayNG.OverlayLabel,System.Boolean)">
  38411. <summary>
  38412. Creates a single OverlayEdge.
  38413. </summary>
  38414. <param name="pts"></param>
  38415. <param name="lbl"></param>
  38416. <param name="direction"></param>
  38417. <returns>A new edge based on the given coordinates and direction.</returns>
  38418. </member>
  38419. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.NodeComparator">
  38420. <summary>
  38421. Gets a <see cref="T:System.Collections.Generic.IComparer`1"/> which sorts by the origin Coordinates.
  38422. </summary>
  38423. </member>
  38424. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.IsForward">
  38425. <summary>
  38426. <c>true</c> indicates direction is forward along segString<br/>
  38427. <c>false</c> is reverse direction<br/>
  38428. The label must be interpreted accordingly.
  38429. </summary>
  38430. </member>
  38431. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdge.AddCoordinates(NetTopologySuite.Geometries.CoordinateList)">
  38432. <summary>
  38433. Adds the coordinates of this edge to the given list,
  38434. in the direction of the edge.
  38435. Duplicate coordinates are removed
  38436. (which means that this is safe to use for a path
  38437. of connected edges in the topology graph).
  38438. </summary>
  38439. <param name="coords">The coordinate list to add to</param>
  38440. </member>
  38441. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.SymOE">
  38442. <summary>
  38443. ets the symmetric pair edge of this edge.
  38444. </summary>
  38445. <returns>The symmetric pair edge</returns>
  38446. </member>
  38447. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.ONextOE">
  38448. <summary>
  38449. Gets the next edge CCW around the origin of this edge,
  38450. with the same origin.<br/>
  38451. If the origin vertex has degree 1 then this is the edge itself.
  38452. </summary>
  38453. <returns>
  38454. The next edge around the origin
  38455. </returns>
  38456. </member>
  38457. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdge.NextResult">
  38458. <summary>
  38459. Gets or sets a link to next edge in the result ring.
  38460. The origin of the edge is the dest of this edge.
  38461. </summary>
  38462. </member>
  38463. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.IsHole">
  38464. <summary>
  38465. Tests whether this ring is a hole.
  38466. </summary>
  38467. <value><c>true</c> if this ring is a hole</value>
  38468. </member>
  38469. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.HasShell">
  38470. <summary>
  38471. Tests whether this ring has a shell assigned to it.
  38472. </summary>
  38473. <value><c>true</c> if the ring has a shell</value>
  38474. </member>
  38475. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Shell">
  38476. <summary>
  38477. Gets or sets a value indicating the shell for this ring.<br/>
  38478. The shell is the ring itself if it is not a hole, otherwise its parent shell.
  38479. </summary>
  38480. </member>
  38481. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Coordinates">
  38482. <summary>
  38483. Computes the list of coordinates which are contained in this ring.
  38484. The coordinates are computed once only and cached.
  38485. </summary>
  38486. <value>An array of the <see cref="P:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Coordinate"/>s in this ring</value>
  38487. </member>
  38488. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.FindEdgeRingContaining(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
  38489. <summary>
  38490. Finds the innermost enclosing shell OverlayEdgeRing
  38491. containing this OverlayEdgeRing, if any.
  38492. The innermost enclosing ring is the <i>smallest</i> enclosing ring.
  38493. The algorithm used depends on the fact that:
  38494. <br/>
  38495. ring A contains ring B if envelope(ring A) contains envelope(ring B)
  38496. <br/>
  38497. This routine is only safe to use if the chosen point of the hole
  38498. is known to be properly contained in a shell
  38499. (which is guaranteed to be the case if the hole does not touch its shell)
  38500. <para/>
  38501. To improve performance of this function the caller should
  38502. make the passed shellList as small as possible (e.g.
  38503. by using a spatial index filter beforehand).
  38504. </summary>
  38505. <returns>The containing EdgeRing or <c>null</c> if no containing EdgeRing is found
  38506. </returns>
  38507. </member>
  38508. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.Contains(NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing)">
  38509. <summary>
  38510. Tests if an edgeRing is properly contained in this ring.
  38511. Relies on property that edgeRings never overlap (although they may
  38512. touch at single vertices).
  38513. </summary>
  38514. <param name="ring">The ring to test</param>
  38515. <returns><c>true</c> if the ring is properly contained</returns>
  38516. </member>
  38517. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
  38518. <summary>
  38519. Computes the <see cref="T:NetTopologySuite.Geometries.Polygon"/> formed by this ring and any contained holes.
  38520. </summary>
  38521. <returns>The <see cref="T:NetTopologySuite.Geometries.Polygon"/> formed by this ring and its holes.</returns>
  38522. </member>
  38523. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph">
  38524. <summary>
  38525. A planar graph of edges, representing
  38526. the topology resulting from an overlay operation.
  38527. Each source edge is represented
  38528. by a pair of <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdge"/>s,
  38529. with opposite(symmetric) orientation.
  38530. The pair of OverlayEdges share the edge coordinates
  38531. and a single <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel"/>.
  38532. </summary>
  38533. <author>Martin Davis</author>
  38534. </member>
  38535. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayGraph.Edges">
  38536. <summary>
  38537. Gets the set of edges in this graph.
  38538. Only one of each symmetric pair of OverlayEdges is included.
  38539. The opposing edge can be found by using <see cref="P:NetTopologySuite.EdgeGraph.HalfEdge.Sym"/>.
  38540. </summary>
  38541. <returns>The collection of representative edges in this graph</returns>
  38542. </member>
  38543. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayGraph.NodeEdges">
  38544. <summary>
  38545. Gets the collection of edges representing the nodes in this graph.
  38546. For each star of edges originating at a node
  38547. a single representative edge is included.<br/>
  38548. The other edges around the node can be found by following the next and prev links.
  38549. </summary>
  38550. <returns>The collection of representative node edges</returns>
  38551. </member>
  38552. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.GetNodeEdge(NetTopologySuite.Geometries.Coordinate)">
  38553. <summary>
  38554. Gets an edge originating at the given node point.
  38555. </summary>
  38556. <param name="nodePt">The node coordinate to query</param>
  38557. <returns>An edge originating at the point, or <c>null</c> if none exists</returns>
  38558. </member>
  38559. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.GetResultAreaEdges">
  38560. <summary>
  38561. Gets the representative edges marked as being in the result area.
  38562. </summary>
  38563. <returns>The result area edges</returns>
  38564. </member>
  38565. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.AddEdge(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
  38566. <summary>
  38567. Adds an edge between the coordinates orig and dest
  38568. to this graph.<br/>
  38569. Only valid edges can be added (in particular, zero-length segments cannot be added)
  38570. </summary>
  38571. <param name="pts">The edge to add.</param>
  38572. <param name="label">The edge topology information</param>
  38573. <returns>The created graph edge with same orientation as the linework</returns>
  38574. </member>
  38575. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayGraph.Insert(NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  38576. <summary>
  38577. Inserts a single half-edge into the graph.
  38578. The sym edge must also be inserted.
  38579. </summary>
  38580. <param name="e">The half-edge to insert</param>
  38581. </member>
  38582. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayLabel">
  38583. <summary>
  38584. A structure recording the topological situation
  38585. for an edge in a topology graph
  38586. used during overlay processing.
  38587. </summary>
  38588. <remarks>
  38589. A label contains the topological <see cref="T:NetTopologySuite.Geometries.Location"/> for
  38590. one or two input geometries to an overlay operation.
  38591. An input geometry may be either a Line or an Area.
  38592. The label locations for each input geometry are populated
  38593. with the <see cref="T:NetTopologySuite.Geometries.Location"/>
  38594. for the edge <see cref="T:NetTopologySuite.Geometries.Position"/>s
  38595. when they are created or once they are computed by topological evaluation.
  38596. A label also records the(effective) dimension of each input geometry.
  38597. For area edges the role(shell or hole)
  38598. of the originating ring is recorded, to allow
  38599. determination of edge handling in collapse cases.
  38600. <para/>
  38601. In an <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph"/>
  38602. a single label is shared between
  38603. the two oppositely-oriented <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayEdge"/>s
  38604. of a symmetric pair.
  38605. Accessors for orientation-sensitive information
  38606. are parameterized by the orientation of the containing edge.
  38607. <para/>
  38608. For each input geometry (0 and 1), the label records
  38609. that an edge is in one of the following states
  38610. (identified by the<c>dim</c> field).
  38611. Each state has additional information about the edge topology.
  38612. <list type="bullet">
  38613. <item><description>A <b>Boundary</b> edge of an Area (polygon)
  38614. <list type="bullet">
  38615. <item><description><c>dim</c> = DIM_BOUNDARY</description></item>
  38616. <item><description><c>locLeft, locRight</c> : the locations of the edge sides for the Area</description></item>
  38617. <item><description><c>locLine</c> : INTERIOR</description></item>
  38618. <item><description><c>isHole</c> : whether the edge is in a shell or a hole (the ring role)</description></item>
  38619. </list>
  38620. </description>
  38621. </item>
  38622. <item><description>A <b>Collapsed</b> edge of an input Area
  38623. (formed by merging two or more parent edges)
  38624. <list type="bullet">
  38625. <item><description><c>dim</c> = DIM_COLLAPSE</description></item>
  38626. <item><description><c>locLine</c> : the location of the edge relative to the effective input Area
  38627. (a collapsed spike is EXTERIOR, a collapsed gore or hole is INTERIOR)</description></item>
  38628. <item><description><c>isHole</c> : <c>true</c> if all parent edges are in holes;
  38629. <c>false</c> if some parent edge is in a shell</description></item>
  38630. </list></description>
  38631. </item>
  38632. <item><description>A <b>Line</b> edge from an input line
  38633. <list type="bullet">
  38634. <item><description><c>dim</c> = DIM_LINE</description></item>
  38635. <item><description><c>locLine </c> : the location of the edge relative to the Line.
  38636. Initialized to LOC_UNKNOWN to simplify logic.</description></item>
  38637. </list></description>
  38638. </item>
  38639. <item><description>An edge which is <b>Not Part</b> of an input geometry
  38640. (and thus must be part of the other geometry).
  38641. <list type="bullet">
  38642. <item><description><c>dim</c> = NOT_PART</description></item>
  38643. </list></description>
  38644. </item>
  38645. </list>
  38646. Note that:
  38647. <list type="bullet">
  38648. <item><description>an edge cannot be both a Collapse edge and a Line edge in the same input geometry,
  38649. because each input geometry must be homogeneous.</description></item>
  38650. <item><description>an edge may be an Boundary edge in one input geometry
  38651. and a Line or Collapse edge in the other input.</description></item>
  38652. </list>
  38653. </remarks>
  38654. <author>Martin Davis</author>
  38655. </member>
  38656. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_UNKNOWN">
  38657. <summary>
  38658. The dimension of an input geometry which is not known.
  38659. </summary>
  38660. </member>
  38661. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_NOT_PART">
  38662. <summary>
  38663. The dimension of an edge which is not part of a specified input geometry.
  38664. </summary>
  38665. </member>
  38666. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_LINE">
  38667. <summary>
  38668. The dimension of an edge which is a line.
  38669. </summary>
  38670. </member>
  38671. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_BOUNDARY">
  38672. <summary>
  38673. The dimension for an edge which is part of an input Area geometry boundary.
  38674. </summary>
  38675. </member>
  38676. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_COLLAPSE">
  38677. <summary>
  38678. The dimension for an edge which is a collapsed part of an input Area geometry boundary.
  38679. A collapsed edge represents two or more line segments which have the same endpoints.
  38680. They usually are caused by edges in valid polygonal geometries
  38681. having their endpoints become identical due to precision reduction.
  38682. </summary>
  38683. </member>
  38684. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.LOC_UNKNOWN">
  38685. <summary>
  38686. Indicates that the location is currently unknown
  38687. </summary>
  38688. </member>
  38689. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,System.Boolean)">
  38690. <summary>
  38691. Creates a label for an Area edge
  38692. </summary>
  38693. <param name="index">The input index of the parent geometry</param>
  38694. <param name="locLeft">The location of the left side of the edge</param>
  38695. <param name="locRight">The location of the right side of the edge</param>
  38696. <param name="isHole">Whether the edge role is a hole or a shell</param>
  38697. </member>
  38698. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(System.Int32)">
  38699. <summary>
  38700. Creates a label for a Line edge
  38701. </summary>
  38702. <param name="index">The input index of the parent geometry</param>
  38703. </member>
  38704. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor">
  38705. <summary>
  38706. Creates an uninitialized label
  38707. </summary>
  38708. </member>
  38709. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.#ctor(NetTopologySuite.Operation.OverlayNG.OverlayLabel)">
  38710. <summary>
  38711. Creates a label which is a copy of another label.
  38712. </summary>
  38713. <param name="lbl">The template label</param>
  38714. </member>
  38715. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.Dimension(System.Int32)">
  38716. <summary>
  38717. Gets the effective dimension of the given input geometry.
  38718. </summary>
  38719. <param name="index">The input index of the parent geometry</param>
  38720. <returns>The dimension</returns>
  38721. <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_UNKNOWN"/>
  38722. <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_NOT_PART"/>
  38723. <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_LINE"/>
  38724. <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_BOUNDARY"/>
  38725. <seealso cref="F:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DIM_COLLAPSE"/>
  38726. </member>
  38727. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitBoundary(System.Int32,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,System.Boolean)">
  38728. <summary>
  38729. Initializes the label for an input geometry which is an Area boundary.
  38730. </summary>
  38731. <param name="index">The input index of the parent geometry</param>
  38732. <param name="locLeft">The location of the left side of the edge</param>
  38733. <param name="locRight">The location of the right side of the edge</param>
  38734. <param name="isHole">Whether the edge role is a hole or a shell</param>
  38735. </member>
  38736. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitCollapse(System.Int32,System.Boolean)">
  38737. <summary>
  38738. Initializes the label for an edge which is the collapse of
  38739. part of the boundary of an Area input geometry.
  38740. <para/>
  38741. The location of the collapsed edge relative to the
  38742. parent area geometry is initially unknown.
  38743. It must be determined from the topology of the overlay graph
  38744. </summary>
  38745. <param name="index">The index of the parent input geometry</param>
  38746. <param name="isHole">Whether the dominant edge role is a hole or a shell</param>
  38747. </member>
  38748. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitLine(System.Int32)">
  38749. <summary>
  38750. Initializes the label for an input geometry which is a Line.
  38751. </summary>
  38752. <param name="index">The index of the parent input geometry</param>
  38753. </member>
  38754. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.InitNotPart(System.Int32)">
  38755. <summary>
  38756. Initializes the label for an edge which is not part of an input geometry.
  38757. </summary>
  38758. <param name="index">The index of the parent input geometry</param>
  38759. </member>
  38760. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationLine(System.Int32,NetTopologySuite.Geometries.Location)">
  38761. <summary>
  38762. Sets the line location.
  38763. <br/>
  38764. This is used to set the locations for linear edges
  38765. encountered during area label propagation.
  38766. </summary>
  38767. <param name="index">The index of the input geometry</param>
  38768. <param name="loc">Location to set</param>
  38769. </member>
  38770. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationAll(System.Int32,NetTopologySuite.Geometries.Location)">
  38771. <summary>
  38772. Sets the location of all postions for a given input.
  38773. </summary>
  38774. <param name="index">The index of the input geometry</param>
  38775. <param name="loc">The location to set</param>
  38776. </member>
  38777. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.SetLocationCollapse(System.Int32)">
  38778. <summary>
  38779. Sets the location for a collapsed edge (the Line position)
  38780. for an input geometry,
  38781. depending on the ring role recorded in the label.
  38782. If the input geometry edge is from a shell,
  38783. the location is <see cref="F:NetTopologySuite.Geometries.Location.Exterior"/>, if it is a hole
  38784. it is <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>.
  38785. </summary>
  38786. <param name="index">The index of the input geometry</param>
  38787. </member>
  38788. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLine">
  38789. <summary>
  38790. Tests whether at least one of the sources is a Line.
  38791. </summary>
  38792. <value><c>true</c> if at least one source is a line</value>
  38793. </member>
  38794. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineAt(System.Int32)">
  38795. <summary>
  38796. Tests whether a source is a Line.
  38797. </summary>
  38798. <param name="index">The index of the input geometry</param>
  38799. <returns><c>true</c> if the input is a Line</returns>
  38800. </member>
  38801. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLinear(System.Int32)">
  38802. <summary>
  38803. Tests whether an edge is linear (a Line or a Collapse) in an input geometry.
  38804. </summary>
  38805. <param name="index">The index of the input geometry</param>
  38806. <returns><c>true</c> if the edge is linear</returns>
  38807. </member>
  38808. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsKnown(System.Int32)">
  38809. <summary>
  38810. Tests whether the source of a label is known.
  38811. </summary>
  38812. <param name="index">The index of the input geometry</param>
  38813. <returns><c>true</c> if the source is known</returns>
  38814. </member>
  38815. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsNotPart(System.Int32)">
  38816. <summary>
  38817. Tests whether a label is for an edge which is not part
  38818. of a given input geometry.
  38819. </summary>
  38820. <param name="index">The index of the input geometry</param>
  38821. <returns><c>true</c> if the edge is not part of the geometry</returns>
  38822. </member>
  38823. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryEither">
  38824. <summary>
  38825. Gets a value indicating if a label is for an edge which is in the boundary of either source geometry.
  38826. </summary>
  38827. <returns><c>true</c> if the label is a boundary for either source</returns>
  38828. </member>
  38829. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryBoth">
  38830. <summary>
  38831. Gets a value indicating if a label is for an edge which is in the boundary of both source geometries.
  38832. </summary>
  38833. <returns><c>true</c> if the label is a boundary for both sources</returns>
  38834. </member>
  38835. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryCollapse">
  38836. <summary>
  38837. Tests if the label is a collapsed edge of one area
  38838. and is a(non-collapsed) boundary edge of the other area.
  38839. </summary>
  38840. <value><c>true</c> if the label is for a collapse coincident with a boundary</value>
  38841. </member>
  38842. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundaryTouch">
  38843. <summary>
  38844. Tests if a label is for an edge where two
  38845. area touch along their boundary.
  38846. </summary>
  38847. <returns><c>true</c> if the edge is a boundary touch</returns>
  38848. </member>
  38849. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundary(System.Int32)">
  38850. <summary>
  38851. Tests if a label is for an edge which is in the boundary of a source geometry.
  38852. Collapses are not reported as being in the boundary.
  38853. </summary>
  38854. <param name="index">The index of the input geometry</param>
  38855. <returns><c>true</c> if the label is a boundary for the source</returns>
  38856. </member>
  38857. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsBoundarySingleton">
  38858. <summary>
  38859. Tests whether a label is for an edge which is a boundary of one geometry
  38860. and not part of the other.
  38861. </summary>
  38862. <returns><c>true</c> if the edge is a boundary singleton</returns>
  38863. </member>
  38864. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineLocationUnknown(System.Int32)">
  38865. <summary>
  38866. Tests if the line location for a source is unknown.
  38867. </summary>
  38868. <param name="index">The index of the input geometry</param>
  38869. <returns><c>true</c> if the line location is unknown</returns>
  38870. </member>
  38871. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineInArea(System.Int32)">
  38872. <summary>
  38873. Tests if a line edge is inside a source geometry
  38874. (i.e.it has location <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>).
  38875. </summary>
  38876. <param name="index">The index of the input geometry</param>
  38877. <returns><c>true</c> if the line is inside the source geometry</returns>
  38878. </member>
  38879. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsHole(System.Int32)">
  38880. <summary>
  38881. Tests if the ring role of an edge is a hole.
  38882. </summary>
  38883. <param name="index">The index of the input geometry</param>
  38884. <returns><c>true</c> if the ring role is a hole</returns>
  38885. </member>
  38886. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsCollapse(System.Int32)">
  38887. <summary>
  38888. Tests if an edge is a Collapse for a source geometry.
  38889. </summary>
  38890. <param name="index">The index of the input geometry</param>
  38891. <returns><c>true</c> if the label indicates the edge is a collapse for the source</returns>
  38892. </member>
  38893. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsInteriorCollapse">
  38894. <summary>
  38895. Tests if a label is a Collapse has location {@link Location#INTERIOR},
  38896. to at least one source geometry.
  38897. </summary>
  38898. <returns><c>true</c> if the label is an Interior Collapse to a source geometry</returns>
  38899. </member>
  38900. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsCollapseAndNotPartInterior">
  38901. <summary>
  38902. Tests if a label is a Collapse
  38903. and NotPart with location {@link Location#INTERIOR} for the other geometry.
  38904. </summary>
  38905. <returns><c>true</c> if the label is a Collapse and a NotPart with Location Interior</returns>
  38906. </member>
  38907. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLineLocation(System.Int32)">
  38908. <summary>
  38909. Gets the line location for a source geometry.
  38910. </summary>
  38911. <param name="index">The index of the input geometry</param>
  38912. <returns>The line location for the source</returns>
  38913. </member>
  38914. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.IsLineInterior(System.Int32)">
  38915. <summary>
  38916. Tests if a line is in the interior of a source geometry.
  38917. </summary>
  38918. <param name="index">The index of the source geometry</param>
  38919. <returns><c>true</c> if the label is a line and is interior</returns>
  38920. </member>
  38921. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocation(System.Int32,NetTopologySuite.Geometries.Position,System.Boolean)">
  38922. <summary>
  38923. Gets the location for a <see cref="T:NetTopologySuite.Geometries.Position"/> of an edge of a source
  38924. for an edge with given orientation.
  38925. </summary>
  38926. <param name="index">The index of the input geometry</param>
  38927. <param name="position">The position to get the location for</param>
  38928. <param name="isForward"><c>true</c> if the orientation of the containing edge is forward</param>
  38929. <returns>The location of the oriented position in the source</returns>
  38930. </member>
  38931. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocationBoundaryOrLine(System.Int32,NetTopologySuite.Geometries.Position,System.Boolean)">
  38932. <summary>
  38933. Gets the location for this label for either
  38934. a Boundary or a Line edge.
  38935. This supports a simple determination of
  38936. whether the edge should be included as a result edge.
  38937. </summary>
  38938. <param name="index">The source index</param>
  38939. <param name="position">The position for a boundary label</param>
  38940. <param name="isForward">The direction for a boundary label</param>
  38941. <returns>The location for the specified position</returns>
  38942. </member>
  38943. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.GetLocation(System.Int32)">
  38944. <summary>
  38945. Gets the linear location for the given source.
  38946. </summary>
  38947. <param name="index">The source geometry index</param>
  38948. <returns>The linear location for the source</returns>
  38949. </member>
  38950. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.HasSides(System.Int32)">
  38951. <summary>
  38952. Tests whether this label has side position information
  38953. for a source geometry.
  38954. </summary>
  38955. <param name="index">The index of the input geometry</param>
  38956. <returns><c>true</c> if at least one side position is known</returns>
  38957. </member>
  38958. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.Copy">
  38959. <summary>
  38960. Creates a copy of this label
  38961. </summary>
  38962. <returns>A copy of this label</returns>
  38963. </member>
  38964. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.RingRoleSymbol(System.Boolean)">
  38965. <summary>
  38966. Gets a symbol for the a ring role (Shell or Hole).
  38967. </summary>
  38968. <param name="isHole"><c>true</c> for a hole, <c>false</c> for a shell</param>
  38969. <returns>The ring role symbol character</returns>
  38970. </member>
  38971. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabel.DimensionSymbol(NetTopologySuite.Geometries.Dimension)">
  38972. <summary>
  38973. Gets the symbol for the dimension code of an edge.
  38974. </summary>
  38975. <param name="dim">The dimension code</param>
  38976. <returns>The dimension symbol character</returns>
  38977. </member>
  38978. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayLabeller">
  38979. <summary>
  38980. Implements the logic to compute the full labeling
  38981. for the edges in an <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayGraph"/>.
  38982. </summary>
  38983. <author>Martin Davis</author>
  38984. </member>
  38985. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.ComputeLabelling">
  38986. <summary>
  38987. Computes the topological labeling for the edges in the graph.
  38988. </summary>
  38989. </member>
  38990. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelAreaNodeEdges(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge})">
  38991. <summary>
  38992. Labels edges around nodes based on the arrangement
  38993. of incident area boundary edges.
  38994. Also propagates the labeling to connected linear edges.
  38995. </summary>
  38996. <param name="nodes">The nodes to label</param>
  38997. </member>
  38998. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.PropagateAreaLocations(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
  38999. <summary>
  39000. Scans around a node CCW, propagating the side labels
  39001. for a given area geometry to all edges (and their sym)
  39002. with unknown locations for that geometry.
  39003. </summary>
  39004. <param name="nodeEdge"></param>
  39005. <param name="geomIndex">The geometry to propagate locations for</param>
  39006. </member>
  39007. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.FindPropagationStartEdge(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
  39008. <summary>
  39009. Finds a boundary edge for this geom originating at the given
  39010. node, if one exists.
  39011. A boundary edge should exist if this is a node on the boundary
  39012. of the parent area geometry.
  39013. </summary>
  39014. <param name="nodeEdge">An edge for this node</param>
  39015. <param name="geomIndex">The parent geometry index</param>
  39016. <returns>A boundary edge, or <c>null</c> if no boundary edge exists</returns>
  39017. </member>
  39018. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelCollapsedEdges">
  39019. <summary>
  39020. At this point collapsed edges with unknown location
  39021. must be disconnected from the boundary edges of the parent
  39022. (because otherwise the location would have
  39023. been propagated from them).<br/>
  39024. They can be now located based on their parent ring role(shell or hole).
  39025. (This cannot be done earlier, because the location
  39026. based on the boundary edges must take precedence.<br/>
  39027. There are situations where a collapsed edge has a location
  39028. which is different to its ring role -
  39029. e.g.a narrow gore in a polygon, which is in
  39030. the interior of the reduced polygon, but whose
  39031. ring role would imply the location EXTERIOR.)
  39032. <para/>
  39033. Note that collapsed edges can NOT have location determined via a PIP location check,
  39034. because that is done against the unreduced input geometry,
  39035. which may give an invalid result due to topology collapse.
  39036. <para/>
  39037. The labeling is propagated to other connected linear edges,
  39038. since there may be NOT_PART edges which are connected,
  39039. and they can be labeled in the same way.
  39040. (These would get labeled anyway during subsequent disconnected labeling pass,
  39041. but may be more efficient and accurate to do it here.)
  39042. </summary>
  39043. </member>
  39044. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelConnectedLinearEdges">
  39045. <summary>
  39046. There can be edges which have unknown location
  39047. but are connected to a linear edge with known location.
  39048. In this case linear location is propagated to the connected edges.
  39049. </summary>
  39050. </member>
  39051. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.PropagateLinearLocations(System.Int32)">
  39052. <summary>
  39053. Performs a breadth-first graph traversal to find and label
  39054. connected linear edges.
  39055. </summary>
  39056. <param name="geomIndex">The index of the input geometry to label.</param>
  39057. </member>
  39058. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.FindLinearEdgesWithLocation(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge},System.Int32)">
  39059. <summary>
  39060. Finds all OverlayEdges which are linear
  39061. (i.e.line or collapsed) and have a known location
  39062. for the given input geometry.
  39063. </summary>
  39064. <param name="geomIndex">The index of the input geometry</param>
  39065. <returns>A list of linear edges with known location</returns>
  39066. </member>
  39067. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelDisconnectedEdges">
  39068. <summary>
  39069. At this point there may still be edges which have unknown location
  39070. relative to an input geometry.<br/>
  39071. This must be because they are NOT_PART edges for that geometry,
  39072. and are disconnected from any edges of that geometry.
  39073. An example of this is rings of one geometry wholly contained
  39074. in another geometry.<br/>
  39075. The location must be fully determined to compute a
  39076. correct result for all overlay operations.
  39077. <para/>
  39078. If the input geometry is an Area the edge location can
  39079. be determined via a PIP test.
  39080. If the input is not an Area the location is EXTERIOR.
  39081. </summary>
  39082. </member>
  39083. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LabelDisconnectedEdge(NetTopologySuite.Operation.OverlayNG.OverlayEdge,System.Int32)">
  39084. <summary>
  39085. Determines the location of an edge relative to a target input geometry.
  39086. The edge has no location information
  39087. because it is disconnected from other
  39088. edges that would provide that information.
  39089. The location is determined by checking
  39090. if the edge lies inside the target geometry area(if any).
  39091. </summary>
  39092. <param name="edge">The edge to label</param>
  39093. <param name="geomIndex">The input geometry to label against</param>
  39094. </member>
  39095. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LocateEdge(System.Int32,NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  39096. <summary>
  39097. Determines the <see cref="T:NetTopologySuite.Geometries.Location"/> for an edge within an Area geometry
  39098. via point-in-polygon location.
  39099. <para/>
  39100. NOTE this is only safe to use for disconnected edges,
  39101. since the test is carried out against the original input geometry,
  39102. and precision reduction may cause incorrect results for edges
  39103. which are close enough to a boundary to become connected.
  39104. </summary>
  39105. <param name="geomIndex">The parent geometry index</param>
  39106. <param name="edge">The edge to locate</param>
  39107. <returns>The location of the edge.</returns>
  39108. </member>
  39109. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.LocateEdgeBothEnds(System.Int32,NetTopologySuite.Operation.OverlayNG.OverlayEdge)">
  39110. <summary>
  39111. Determines the {@link Location} for an edge within an Area geometry
  39112. via point-in-polygon location,
  39113. by checking that both endpoints are interior to the target geometry.
  39114. Checking both endpoints ensures correct results in the presence of topology collapse.
  39115. <para/>
  39116. NOTE this is only safe to use for disconnected edges,
  39117. since the test is carried out against the original input geometry,
  39118. and precision reduction may cause incorrect results for edges
  39119. which are close enough to a boundary to become connected.
  39120. </summary>
  39121. <param name="geomIndex">The parent geometry index</param>
  39122. <param name="edge">The edge to locate</param>
  39123. <returns>The location of the edge</returns>
  39124. </member>
  39125. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.MarkInResultArea(NetTopologySuite.Operation.OverlayNG.OverlayEdge,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39126. <summary>
  39127. Marks an edge which forms part of the boundary of the result area.
  39128. This is determined by the overlay operation being executed,
  39129. and the location of the edge.
  39130. The relevant location is either the right side of a boundary edge,
  39131. or the line location of a non-boundary edge.
  39132. </summary>
  39133. <param name="e">The edge to mark</param>
  39134. <param name="overlayOpCode">The overlay operation</param>
  39135. </member>
  39136. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayLabeller.UnmarkDuplicateEdgesFromResultArea">
  39137. <summary>
  39138. Unmarks result area edges where the sym edge
  39139. is also marked as in the result.
  39140. This has the effect of merging edge-adjacent result areas,
  39141. as required by polygon validity rules.
  39142. </summary>
  39143. </member>
  39144. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints">
  39145. <summary>
  39146. Computes an overlay where one input is Point(s) and one is not.
  39147. This class supports overlay being used as an efficient way
  39148. to find points within or outside a polygon.
  39149. <para/>
  39150. Input semantics are:
  39151. <list type="bullet">
  39152. <item><description>Duplicates are removed from Point output</description></item>
  39153. <item><description>Non-point output is rounded and noded using the given precision model</description></item>
  39154. </list>
  39155. Output semantics are:
  39156. <list type="bullet">
  39157. <item><description>An empty result is an empty atomic geometry
  39158. with dimension determined by the inputs and the operation as per overlay semantics
  39159. </description></item>
  39160. </list>
  39161. For efficiency the following optimizations are used:
  39162. <list type="bullet">
  39163. <item><description>Input points are not included in the noding of the non-point input geometry
  39164. (in particular, they do not participate in snap-rounding if that is used).</description></item>
  39165. <item><description>If the non-point input geometry is not included in the output
  39166. it is not rounded and noded.This means that points
  39167. are compared to the non-rounded geometry.
  39168. This will be apparent in the result.</description></item>
  39169. </list>
  39170. This means that overlay is efficient to use for finding points
  39171. within or outside a polygon.
  39172. </summary>
  39173. <author>Martin Davis</author>
  39174. </member>
  39175. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints.CopyNonPoint">
  39176. <summary>
  39177. Copy the non-point input geometry if not
  39178. already done by precision reduction process.
  39179. </summary>
  39180. <returns>A copy of the non-point geometry</returns>
  39181. </member>
  39182. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayNG">
  39183. <summary>
  39184. Computes the geometric overlay of two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s,
  39185. using an explicit precision model to allow robust computation.
  39186. <para/>
  39187. The overlay can be used to determine any of the
  39188. following set-theoretic operations (boolean combinations) of the geometries:
  39189. <list type="bullet">
  39190. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term><description>all points which lie in both geometries</description></item>
  39191. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/></term><description>all points which lie in at least one geometry</description></item>
  39192. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/></term><description>all points which lie in the first geometry but not the second</description></item>
  39193. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/></term><description>all points which lie in one geometry but not both</description></item>
  39194. </list>
  39195. Input geometries may have different dimension.
  39196. Input collections must be homogeneous (all elements must have the same dimension).
  39197. Inputs may be <b>simple</b> <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s.
  39198. A GeometryCollection is simple if it can be flattened into a valid Multi-geometry;
  39199. i.e.it is homogeneous and does not contain any overlapping Polygons.
  39200. <para/>
  39201. The precision model used for the computation can be supplied
  39202. independent of the precision model of the input geometry.
  39203. The main use for this is to allow using a fixed precision
  39204. for geometry with a floating precision model.
  39205. This does two things: ensures robust computation;
  39206. and forces the output to be validly rounded to the precision model.
  39207. <para/>
  39208. For fixed precision models noding is performed using a <see cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/>.
  39209. This provides robust computation(as long as precision is limited to
  39210. around 13 decimal digits).
  39211. <para/>
  39212. For floating precision an <see cref="T:NetTopologySuite.Noding.MCIndexNoder"/> is used.
  39213. This is not fully robust, so can sometimes result in
  39214. <see cref="T:NetTopologySuite.Geometries.TopologyException"/>s being thrown.
  39215. For robust full-precision overlay see <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>.
  39216. <para/>
  39217. A custom <see cref="T:NetTopologySuite.Noding.INoder"/> can be supplied.
  39218. This allows using a more performant noding strategy in specific cases,
  39219. for instance in <see cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>.
  39220. <para/>
  39221. <b>Note:</b> If a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/> is used
  39222. it is best to specify a fairly small snap tolerance,
  39223. since the intersection clipping optimization can
  39224. interact with the snapping to alter the result.
  39225. <para/>
  39226. Optionally the overlay computation can process using strict mode
  39227. (via <see cref="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.StrictMode"/> = <c>true</c>).
  39228. In strict mode result semantics are:
  39229. <list type="bullet">
  39230. <item><description>Lines and Points resulting from topology collapses are not included in the result</description></item>
  39231. <item><description>Result geometry is homogeneous
  39232. for the <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> operations.</description></item>
  39233. <item><description>Result geometry is homogeneous
  39234. for the <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> operations
  39235. if the inputs have the same dimension</description></item>
  39236. </list>
  39237. Strict mode has the following benefits:
  39238. <list type="bullet">
  39239. <item><description>Results are simpler</description></item>
  39240. <item><description>Overlay operations are easily chainable
  39241. without needing to remove lower-dimension elements</description></item>
  39242. </list>
  39243. The original JTS overlay semantics corresponds to non-strict mode.
  39244. <para/>
  39245. If a robustness error occurs, a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
  39246. These are usually caused by numerical rounding causing the noding output
  39247. to not be fully noded.
  39248. For robust computation with full-precision <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
  39249. can be used.
  39250. </summary>
  39251. </member>
  39252. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.INTERSECTION">
  39253. <summary>
  39254. The code for the Intersection overlay operation.
  39255. </summary>
  39256. </member>
  39257. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.UNION">
  39258. <summary>
  39259. The code for the Union overlay operation.
  39260. </summary>
  39261. </member>
  39262. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.DIFFERENCE">
  39263. <summary>
  39264. The code for the Difference overlay operation.
  39265. </summary>
  39266. </member>
  39267. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.SYMDIFFERENCE">
  39268. <summary>
  39269. The code for the Symmetric Difference overlay operation.
  39270. </summary>
  39271. </member>
  39272. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNG.STRICT_MODE_DEFAULT">
  39273. <summary>
  39274. The default setting for Strict Mode.
  39275. <para/>
  39276. The original JTS overlay semantics used non-strict result
  39277. semantics, including;<br/>
  39278. - An Intersection result can be mixed-dimension,
  39279. due to inclusion of intersection components of all dimensions <br/>
  39280. - Results can include lines caused by Area topology collapse
  39281. </summary>
  39282. </member>
  39283. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.IsResultOfOpPoint(NetTopologySuite.Operation.OverlayNG.OverlayLabel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39284. <summary>
  39285. Tests whether a point with a given topological <see cref="T:NetTopologySuite.GeometriesGraph.Label"/>
  39286. relative to two geometries is contained in
  39287. the result of overlaying the geometries using
  39288. a given overlay operation.
  39289. <para/>
  39290. The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly
  39291. </summary>
  39292. <param name="label">The topological label of the point</param>
  39293. <param name="opCode">The code for the overlay operation to test</param>
  39294. <returns><c>true</c> if the label locations correspond to the overlay <paramref name="opCode"/></returns>
  39295. </member>
  39296. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.IsResultOfOp(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  39297. <summary>
  39298. Tests whether a point with given <see cref="T:NetTopologySuite.Geometries.Location"/>s
  39299. relative to two geometries would be contained in
  39300. the result of overlaying the geometries using
  39301. a given overlay operation.
  39302. This is used to determine whether components
  39303. computed during the overlay process should be
  39304. included in the result geometry.
  39305. <para/>
  39306. The method handles arguments of <see cref="F:NetTopologySuite.Geometries.Location.Null"/> correctly.
  39307. </summary>
  39308. <param name="overlayOpCode">The code for the overlay operation to test</param>
  39309. <param name="loc0">The code for the location in the first geometry</param>
  39310. <param name="loc1">The code for the location in the second geometry</param>
  39311. <returns><c>true</c> if a point with given locations is in the result of the overlay operation</returns>
  39312. </member>
  39313. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.PrecisionModel)">
  39314. <summary>
  39315. Computes an overlay operation for
  39316. the given geometry operands, with the
  39317. noding strategy determined by the precision model.
  39318. </summary>
  39319. <param name="geom0">The first geometry argument</param>
  39320. <param name="geom1">The second geometry argument</param>
  39321. <param name="opCode">The code for the desired overlay operation</param>
  39322. <param name="pm">The precision model to use</param>
  39323. <returns>The result of the overlay operation</returns>
  39324. </member>
  39325. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
  39326. <summary>
  39327. Computes an overlay operation for
  39328. the given geometry operands, using a supplied <see cref="T:NetTopologySuite.Noding.INoder"/>.
  39329. </summary>
  39330. <param name="geom0">The first geometry argument</param>
  39331. <param name="geom1">The second geometry argument</param>
  39332. <param name="opCode">The code for the desired overlay operation</param>
  39333. <param name="pm">The precision model to use (which may be null if the noder does not use one)</param>
  39334. <param name="noder">The noder to use</param>
  39335. <returns>The result of the overlay operation</returns>
  39336. </member>
  39337. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Noding.INoder)">
  39338. <summary>
  39339. Computes an overlay operation on the given geometry operands,
  39340. using a supplied <see cref="T:NetTopologySuite.Noding.INoder"/>.
  39341. </summary>
  39342. <param name="geom0">The first geometry argument</param>
  39343. <param name="geom1">The second geometry argument</param>
  39344. <param name="opCode">The code for the desired overlay operation</param>
  39345. <param name="noder">The noder to use</param>
  39346. <returns>The result of the overlay operation</returns>
  39347. </member>
  39348. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39349. <summary>
  39350. Computes an overlay operation on
  39351. the given geometry operands,
  39352. using the precision model of the geometry.
  39353. and an appropriate noder.
  39354. <para/>
  39355. The noder is chosen according to the precision model specified.
  39356. <list type="bullet">
  39357. <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/>
  39358. a snap-rounding noder is used, and the computation is robust.</description></item>
  39359. <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/>
  39360. a non-snapping noder is used,
  39361. and this computation may not be robust.
  39362. If errors occur a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.</description></item>
  39363. </list>
  39364. </summary>
  39365. <param name="geom0">The first geometry argument</param>
  39366. <param name="geom1">The second geometry argument</param>
  39367. <param name="opCode">The code for the desired overlay operation</param>
  39368. <returns>The result of the overlay operation</returns>
  39369. </member>
  39370. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39371. <summary>
  39372. Computes a union operation on
  39373. the given geometry, with the supplied precision model.
  39374. <para/>
  39375. The input must be a valid geometry.
  39376. Collections must be homogeneous.
  39377. <para/>
  39378. To union an overlapping set of polygons in a more performant way use <see cref="T:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG"/>.
  39379. To union a polygonal coverage or linear network in a more performant way,
  39380. use <see cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>.
  39381. </summary>
  39382. <param name="geom">The geometry</param>
  39383. <param name="pm">The precision model to use</param>
  39384. <returns>The result of the union operation</returns>
  39385. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayMixedPoints"/>
  39386. </member>
  39387. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Noding.INoder)">
  39388. <summary>
  39389. Computes a union of a single geometry using a custom noder.
  39390. <para/>
  39391. The primary use of this is to support coverage union.
  39392. Because of this the overlay is performed using strict mode.
  39393. </summary>
  39394. <param name="geom">The geometry to union</param>
  39395. <param name="pm">The precision model to use (maybe be <c>null</c>)</param>
  39396. <param name="noder">The noder to use</param>
  39397. <returns>the result geometry</returns>
  39398. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.CoverageUnion"/>
  39399. </member>
  39400. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39401. <summary>
  39402. Creates an overlay operation on the given geometries,
  39403. with a defined precision model.
  39404. </summary>
  39405. <param name="geom0">The A operand geometry</param>
  39406. <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
  39407. <param name="pm">The precision model to use</param>
  39408. <param name="opCode">The overlay opcode</param>
  39409. </member>
  39410. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel,NetTopologySuite.Algorithm.ElevationModel,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39411. <summary>
  39412. Creates an overlay operation on the given geometries,
  39413. with a defined precision model.
  39414. </summary>
  39415. <param name="geom0">The A operand geometry</param>
  39416. <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
  39417. <param name="pm">The precision model to use</param>
  39418. <param name="em">The elevation model to use. May be <c>null</c></param>
  39419. <param name="opCode">The overlay opcode</param>
  39420. </member>
  39421. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39422. <summary>
  39423. Creates an overlay operation on the given geometries
  39424. using the precision model of the geometries.
  39425. <para/>
  39426. The noder is chosen according to the precision model specified.
  39427. <list type="bullet">
  39428. <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Fixed"/>
  39429. a snap - rounding noder is used, and the computation is robust.</description></item>
  39430. <item><description>For <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> a non - snapping noder is used,
  39431. and this computation may not be robust.</description></item>
  39432. If errors occur a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
  39433. </list>
  39434. </summary>
  39435. <param name="geom0">The A operand geometry</param>
  39436. <param name="geom1">The B operand geometry (may be <c>null</c>)</param>
  39437. <param name="opCode">The overlay opcode</param>
  39438. </member>
  39439. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39440. <summary>
  39441. Creates a union of a single geometry with a given precision model.
  39442. </summary>
  39443. <param name="geom">The geometry</param>
  39444. <param name="pm">The precision model to use</param>
  39445. </member>
  39446. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.StrictMode">
  39447. <summary>
  39448. Gets or sets whether the overlay results are computed according to strict mode
  39449. semantics.
  39450. <list type="bullet">
  39451. <item><description>Lines resulting from topology collapse are not included</description></item>
  39452. <item><description>Result geometry is homogeneous for the
  39453. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/> and
  39454. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/> operations.</description></item>
  39455. <item><description>Result geometry is homogeneous for the
  39456. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and
  39457. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/> operations if the inputs have the same dimension</description></item>
  39458. </list>
  39459. </summary>
  39460. <returns></returns>
  39461. </member>
  39462. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.Optimized">
  39463. <summary>
  39464. Gets or sets a value indicating whether overlay processing optimizations are enabled.
  39465. <para/>
  39466. It may be useful to disable optimizations
  39467. for testing purposes.
  39468. <para/>
  39469. Default is <c>true</c> (optimization enabled).
  39470. </summary>
  39471. </member>
  39472. <member name="P:NetTopologySuite.Operation.OverlayNG.OverlayNG.AreaResultOnly">
  39473. <summary>
  39474. Gets or sets whether the result can contain only <see cref="T:NetTopologySuite.Geometries.Polygon"/> components.
  39475. This is used if it is known that the result must be an (possibly empty) area.
  39476. </summary>
  39477. <returns><c>true</c> if the result should contain only area components</returns>
  39478. </member>
  39479. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.GetResult">
  39480. <summary>
  39481. Gets the result of the overlay operation.
  39482. e</summary>
  39483. <returns>The result of the overlay operation.</returns>
  39484. <exception cref="T:System.ArgumentException">Thrown, if the input is not supported (e.g. a mixed-dimension geometry)</exception>
  39485. <exception cref="T:NetTopologySuite.Geometries.TopologyException">Thrown, if a robustness error occurs</exception>
  39486. </member>
  39487. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNG.ExtractResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.OverlayGraph)">
  39488. <summary>
  39489. Extracts the result geometry components from the fully labelled topology graph.
  39490. <para/>
  39491. This method implements the semantic that the result of an
  39492. intersection operation is homogeneous with highest dimension.
  39493. In other words,
  39494. if an intersection has components of a given dimension
  39495. no lower-dimension components are output.
  39496. For example, if two polygons intersect in an area,
  39497. no linestrings or points are included in the result,
  39498. even if portions of the input do meet in lines or points.
  39499. This semantic choice makes more sense for typical usage,
  39500. in which only the highest dimension components are of interest.
  39501. </summary>
  39502. <param name="opCode">The overlay operation</param>
  39503. <param name="graph">The topology graph</param>
  39504. <returns>The result geometry</returns>
  39505. </member>
  39506. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust">
  39507. <summary>
  39508. Performs an overlay operation using <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>,
  39509. increasing robustness by using a series of
  39510. increasingly robust (but slower) noding strategies.
  39511. <para/>
  39512. The noding strategies used are:
  39513. <list type="number">
  39514. <item><description>A simple fast noder using <see cref="F:NetTopologySuite.Geometries.PrecisionModels.Floating"/> precision</description></item>
  39515. <item><description>A <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/> using an automatically-determined snap tolerance</description></item>
  39516. <item><description>First snapping each geometry to itself, and then overlaying them wih a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/></description></item>
  39517. <item><description>The above two strategies are repeated with increasing snap tolerance, up to a limit</description></item>
  39518. <item><description>Finally a <see cref="T:NetTopologySuite.Noding.Snapround.SnapRoundingNoder"/> is used with a automatically-determined scale factor.</description></item>
  39519. </list>
  39520. If all of the above heuristics fail to compute a valid overlay,
  39521. the original <see cref="T:NetTopologySuite.Geometries.TopologyException"/> is thrown.
  39522. In practice this should be extremely unlikely to occur.
  39523. <para/>
  39524. This algorithm relies on each overlay operation execution
  39525. throwing a <see cref="T:NetTopologySuite.Geometries.TopologyException"/> if it is unable
  39526. to compute the overlay correctly.
  39527. Generally this occurs because the noding phase does
  39528. not produce a valid noding.
  39529. This requires the use of a <see cref="T:NetTopologySuite.Noding.ValidatingNoder"/>
  39530. in order to check the results of using a floating noder.
  39531. </summary>
  39532. <author>Martin Davis</author>
  39533. </member>
  39534. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(NetTopologySuite.Geometries.Geometry)">
  39535. <summary>
  39536. Computes the unary union of a geometry using robust computation.
  39537. </summary>
  39538. <param name="geom">The geometry to union</param>
  39539. <returns>The union result</returns>
  39540. </member>
  39541. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  39542. <summary>
  39543. Computes the unary union of a collection of geometries using robust computation.
  39544. </summary>
  39545. <param name="geoms">An enumeration of geometries to union</param>
  39546. <returns>The union result</returns>
  39547. </member>
  39548. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
  39549. <summary>
  39550. Computes the unary union of a collection of geometries using robust computation.
  39551. </summary>
  39552. <param name="geoms">An enumeration of geometries to union</param>
  39553. <param name="geomFact">The geometry factory to use</param>
  39554. <returns>The union of the geometries</returns>
  39555. </member>
  39556. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Overlay(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39557. <summary>
  39558. Overlay two geometries, using heuristics to ensure
  39559. computation completes correctly.
  39560. In practice the heuristics are observed to be fully correct.
  39561. </summary>
  39562. <param name="geom0">A geometry</param>
  39563. <param name="geom1">A geometry</param>
  39564. <param name="opCode">The overlay operation code</param>
  39565. <returns>The overlay result geometry</returns>
  39566. </member>
  39567. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapTries(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39568. <summary>
  39569. Attempt overlay using snapping with repeated tries with increasing snap tolerances.
  39570. </summary>
  39571. <param name ="geom0"></param>
  39572. <param name ="geom1"></param>
  39573. <param name ="opCode"></param>
  39574. <returns>The computed overlay result, or null if the overlay fails</returns>
  39575. </member>
  39576. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapping(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Double)">
  39577. <summary>
  39578. Attempt overlay using a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
  39579. </summary>
  39580. <param name="geom0"></param>
  39581. <param name="geom1"></param>
  39582. <param name="opCode"></param>
  39583. <param name="snapTol"></param>
  39584. <returns>The computed overlay result, or null if the overlay fails</returns>
  39585. </member>
  39586. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySnapBoth(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,System.Double)">
  39587. <summary>
  39588. Attempt overlay with first snapping each geometry individually.
  39589. </summary>
  39590. <param name="geom0"></param>
  39591. <param name="geom1"></param>
  39592. <param name="opCode"></param>
  39593. <param name="snapTol"></param>
  39594. <returns>The computed overlay result, or null if the overlay fails</returns>
  39595. </member>
  39596. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapSelf(NetTopologySuite.Geometries.Geometry,System.Double)">
  39597. <summary>
  39598. Self-snaps a geometry by running a union operation with it as the only input.
  39599. This helps to remove narrow spike/gore artifacts to simplify the geometry,
  39600. which improves robustness.
  39601. Collapsed artifacts are removed from the result to allow using
  39602. it in further overlay operations.
  39603. </summary>
  39604. <param name="geom">Geometry to self-snap</param>
  39605. <param name="snapTol">Snap tolerance</param>
  39606. <returns>The snapped geometry (homogenous)</returns>
  39607. </member>
  39608. <member name="F:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapTolFactor">
  39609. <summary>
  39610. A factor for a snapping tolerance distance which
  39611. should allow noding to be computed robustly.
  39612. </summary>
  39613. </member>
  39614. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.SnapTolerance(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  39615. <summary>
  39616. Computes a heuristic snap tolerance distance
  39617. for overlaying a pair of geometries using a <see cref="T:NetTopologySuite.Noding.Snap.SnappingNoder"/>.
  39618. </summary>
  39619. <param name="geom0"></param>
  39620. <param name="geom1"></param>
  39621. <returns></returns>
  39622. </member>
  39623. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OrdinateMagnitude(NetTopologySuite.Geometries.Geometry)">
  39624. <summary>
  39625. Computes the largest magnitude of the ordinates of a geometry,
  39626. based on the geometry envelope.
  39627. </summary>
  39628. <param name="geom"></param>
  39629. <returns>The magnitude of the largest ordinate</returns>
  39630. </member>
  39631. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.OverlaySR(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction)">
  39632. <summary>
  39633. Attempt Overlay using Snap-Rounding with an automatically-determined
  39634. scale factor.
  39635. </summary>
  39636. <param name="geom0"></param>
  39637. <param name="geom1"></param>
  39638. <param name="opCode"></param>
  39639. <returns>the computed overlay result, or null if the overlay fails</returns>
  39640. </member>
  39641. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayPoints">
  39642. <summary>
  39643. Performs an overlay operation on inputs which are both point geometries.
  39644. <para/>
  39645. Semantics are:
  39646. <list type="bullet">
  39647. <item><description>Points are rounded to the precision model if provided</description></item>
  39648. <item><description>Points with identical XY values are merged to a single point</description></item>
  39649. <item><description>Extended ordinate values are preserved in the output, apart from merging</description></item>
  39650. <item><description>An empty result is returned as <c>POINT EMPTY</c></description></item>
  39651. </list>
  39652. </summary>
  39653. <author>Martin Davis</author>
  39654. </member>
  39655. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.Overlay(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39656. <summary>
  39657. Performs an overlay operation on inputs which are both point geometries.
  39658. </summary>
  39659. <param name="opCode">The code for the desired overlay operation</param>
  39660. <param name="geom0">The first geometry argument</param>
  39661. <param name="geom1">The second geometry argument</param>
  39662. <param name="pm">The precision model to use</param>
  39663. <returns>The result of the overlay operation</returns>
  39664. </member>
  39665. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.#ctor(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39666. <summary>
  39667. Creates an instance of an overlay operation on inputs which are both point geometries.
  39668. </summary>
  39669. <param name="opCode">The code for the desired overlay operation</param>
  39670. <param name="geom0">The first geometry argument</param>
  39671. <param name="geom1">The second geometry argument</param>
  39672. <param name="pm">The precision model to use</param>
  39673. </member>
  39674. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.GetResult">
  39675. <summary>
  39676. Gets the result of the overlay.
  39677. </summary>
  39678. </member>
  39679. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayPoints.RoundCoord(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.PrecisionModel)">
  39680. <summary>
  39681. Round the key point if precision model is fixed.
  39682. Note: return value is only copied if rounding is performed.
  39683. </summary>
  39684. </member>
  39685. <member name="T:NetTopologySuite.Operation.OverlayNG.OverlayUtility">
  39686. <summary>
  39687. Utility methods for overlay processing.
  39688. </summary>
  39689. <author>Martin Davis</author>
  39690. </member>
  39691. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsFloating(NetTopologySuite.Geometries.PrecisionModel)">
  39692. <summary>
  39693. A null-handling wrapper for <see cref="P:NetTopologySuite.Geometries.PrecisionModel.IsFloating"/>
  39694. </summary>
  39695. <param name="pm">A precision model</param>
  39696. <returns><c>true</c> if the provided precision model is floating</returns>
  39697. </member>
  39698. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ClippingEnvelope(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.InputGeometry,NetTopologySuite.Geometries.PrecisionModel)">
  39699. <summary>
  39700. Computes a clipping envelope for overlay input geometries.
  39701. The clipping envelope encloses all geometry line segments which
  39702. might participate in the overlay, with a buffer to
  39703. account for numerical precision
  39704. (in particular, rounding due to a precision model.
  39705. The clipping envelope is used in both the <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>
  39706. and in the <see cref="T:NetTopologySuite.Operation.OverlayNG.LineLimiter"/>.
  39707. <para/>
  39708. Some overlay operations (i.e. <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/> and <see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/>)
  39709. cannot use clipping as an optimization,
  39710. since the result envelope is the full extent of the two input geometries.
  39711. In this case the returned
  39712. envelope is <c>null</c> to indicate this.
  39713. </summary>
  39714. <param name="opCode">The overlay op code</param>
  39715. <param name="inputGeom">The input geometries</param>
  39716. <param name="pm">The precision model being used</param>
  39717. <returns>An envelope for clipping and line limiting, or null if no clipping is performed</returns>
  39718. </member>
  39719. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ResultEnvelope(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Operation.OverlayNG.InputGeometry,NetTopologySuite.Geometries.PrecisionModel)">
  39720. <summary>
  39721. Computes an envelope which covers the extent of the result of
  39722. a given overlay operation for given inputs.
  39723. The operations which have a result envelope smaller than the extent of the inputs
  39724. are:
  39725. <list type="bullet">
  39726. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term>
  39727. <description>result envelope is the intersection of the input envelopes</description></item>
  39728. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/></term>
  39729. <description>result envelope is the envelope of the A input geometry</description></item>
  39730. </list>
  39731. Otherwise, <c>null</c> is returned to indicate full extent.
  39732. </summary>
  39733. <param name="opCode">The overlay op code</param>
  39734. <param name="inputGeom">The input geometries</param>
  39735. <param name="pm">The precision model being used</param>
  39736. <returns>The result envelope, or null if the full extent</returns>
  39737. </member>
  39738. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.SafeEnv(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.PrecisionModel)">
  39739. <summary>
  39740. Determines a safe geometry envelope for clipping,
  39741. taking into account the precision model being used.
  39742. </summary>
  39743. <param name="env">A safe geometry envelope for clipping</param>
  39744. <param name="pm">The precision model</param>
  39745. <returns>A safe envelope to use for clipping</returns>
  39746. </member>
  39747. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsEmptyResult(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39748. <summary>
  39749. Tests if the result can be determined to be empty
  39750. based on simple properties of the input geometries
  39751. (such as whether one or both are empty,
  39752. or their envelopes are disjoint).
  39753. </summary>
  39754. <param name="opCode">The overlay operation</param>
  39755. <param name="a">The A operand geometry</param>
  39756. <param name="b">The B operand geometry</param>
  39757. <param name="pm">The precision model to use</param>
  39758. <returns><c>true</c> if the overlay result is determined to be empty</returns>
  39759. </member>
  39760. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsEnvDisjoint(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39761. <summary>
  39762. Tests if the geometry envelopes are disjoint, or empty.
  39763. The disjoint test must take into account the precision model
  39764. being used, since geometry coordinates may shift under rounding.
  39765. </summary>
  39766. <param name="a">The A operand geometry</param>
  39767. <param name="b">The B operand geometry</param>
  39768. <param name="pm">The precision model to use</param>
  39769. <returns><c>true</c> if the geometry envelopes are disjoint or empty</returns>
  39770. </member>
  39771. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsDisjoint(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.PrecisionModel)">
  39772. <summary>
  39773. Tests for disjoint envelopes adjusting for rounding
  39774. caused by a fixed precision model.
  39775. Assumes envelopes are non-empty.
  39776. </summary>
  39777. <param name="envA">The A operand envelope</param>
  39778. <param name="envB">The B operand envelope</param>
  39779. <param name="pm">The precision model to use</param>
  39780. <returns><c>true</c> if the envelopes are disjoint</returns>
  39781. </member>
  39782. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.CreateEmptyResult(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.GeometryFactory)">
  39783. <summary>
  39784. Creates an empty result geometry of the appropriate dimension,
  39785. based on the given overlay operation and the dimensions of the inputs.
  39786. The created geometry is an atomic geometry,
  39787. not a collection(unless the dimension is <see cref="F:NetTopologySuite.Geometries.Dimension.Unknown"/>,
  39788. in which case a <c>GEOMETRYCOLLECTION EMPTY</c> is created.
  39789. </summary>
  39790. <param name="dim">The dimension of the empty geometry</param>
  39791. <param name="geomFact">The geometry factory being used for the operation</param>
  39792. <returns>An empty atomic geometry of the appropriate dimension</returns>
  39793. </member>
  39794. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.ResultDimension(NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  39795. <summary>
  39796. Computes the dimension of the result of
  39797. applying the given operation to inputs
  39798. with the given dimensions.
  39799. This assumes that complete collapse does not occur.
  39800. <para/>
  39801. The result dimension is computed using the following rules:
  39802. <list type="bullet">
  39803. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Intersection"/></term><description>result has the dimension of the lowest input dimension</description></item>
  39804. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Union"/></term><description>result has the dimension of the highest input dimension</description></item>
  39805. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.Difference"/></term><description>result has the dimension of the left-hand input</description></item>
  39806. <item><term><see cref="F:NetTopologySuite.Operation.Overlay.SpatialFunction.SymDifference"/></term><description>result has the dimension of the highest input dimension
  39807. (since the Symmetric Difference is the Union of the Differences).</description></item>
  39808. </list>
  39809. </summary>
  39810. <param name="opCode">The overlay operation</param>
  39811. <param name="dim0">Dimension of the LH input</param>
  39812. <param name="dim1">Dimension of the RH input</param>
  39813. <returns></returns>
  39814. </member>
  39815. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.CreateResultGeometry(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Polygon},System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.LineString},System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Point},NetTopologySuite.Geometries.GeometryFactory)">
  39816. <summary>
  39817. Creates an overlay result geometry for homogeneous or mixed components.
  39818. </summary>
  39819. <param name="resultPolyList">An enumeration of result polygons (may be empty or <c>null</c>)</param>
  39820. <param name="resultLineList">An enumeration of result lines (may be empty or <c>null</c>)</param>
  39821. <param name="resultPointList">An enumeration of result points (may be empty or <c>null</c>)</param>
  39822. <param name="geometryFactory">The geometry factory to use.</param>
  39823. <returns>A geometry structured according to the overlay result semantics</returns>
  39824. </member>
  39825. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.Round(NetTopologySuite.Geometries.Point,NetTopologySuite.Geometries.PrecisionModel)">
  39826. <summary>
  39827. Round the key point if precision model is fixed.
  39828. Note: return value is only copied if rounding is performed.
  39829. </summary>
  39830. <param name="pt">The point to round</param>
  39831. <param name="pm">The precision model to use for rounding</param>
  39832. <returns>The rounded point coordinate, or null if empty</returns>
  39833. </member>
  39834. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.Round(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.PrecisionModel)">
  39835. <summary>
  39836. Rounds a coordinate if precision model is fixed.<br/>
  39837. <b>Note:</b> return value is only copied if rounding is performed.
  39838. </summary>
  39839. <param name="p">The coordinate to round</param>
  39840. <param name="pm">The precision model to use for rounding</param>
  39841. <returns>The rounded coordinate</returns>
  39842. </member>
  39843. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsResultAreaConsistent(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Overlay.SpatialFunction,NetTopologySuite.Geometries.Geometry)">
  39844. <summary>
  39845. A heuristic check for overlay result correctness
  39846. comparing the areas of the input and result.
  39847. The heuristic is necessarily coarse, but it detects some obvious issues.<br/>
  39848. (e.g. <a href="https://github.com/locationtech/jts/issues/798"/>)
  39849. <para/>
  39850. <b>Note:</b> - this check is only safe if the precision model is floating.
  39851. It should also be safe for snapping noding if the distance tolerance is reasonably small.
  39852. (Fixed precision models can lead to collapse causing result area to expand.)
  39853. </summary>
  39854. <param name="geom0">Input geometry 0</param>
  39855. <param name="geom1">Input geometry 1</param>
  39856. <param name="opCode">The overlay opcode</param>
  39857. <param name="result">The overlay result</param>
  39858. <returns><c>true</c> if the result area is consistent</returns>
  39859. </member>
  39860. <member name="M:NetTopologySuite.Operation.OverlayNG.OverlayUtility.IsDifferenceAreaConsistent(System.Double,System.Double,System.Double,System.Double)">
  39861. <summary>
  39862. Tests if the area of a difference is greater than the minimum possible difference area.
  39863. This is a heuristic which will only detect gross overlay errors.
  39864. </summary>
  39865. <param name="areaA">The area of A</param>
  39866. <param name="areaB">The area of B</param>
  39867. <param name="areaResult">The result area</param>
  39868. <param name="tolFrac">The area tolerance fraction</param>
  39869. <returns><c>true</c> if the difference area is consistent.</returns>
  39870. </member>
  39871. <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.BuildMaximalRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdge})">
  39872. <summary>
  39873. For all OverlayEdges in result, form them into MaximalEdgeRings
  39874. </summary>
  39875. </member>
  39876. <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.FindSingleShell(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
  39877. <summary>
  39878. Finds the single shell, if any, out of
  39879. a list of minimal rings derived from a maximal ring.
  39880. The other possibility is that they are a set of (connected) holes,
  39881. in which case no shell will be found.
  39882. </summary>
  39883. <returns>The shell ring, if there is one
  39884. or <c>null</c>, if all rings are holes
  39885. </returns>
  39886. </member>
  39887. <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.AssignHoles(NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing,System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
  39888. <summary>
  39889. For the set of minimal rings comprising a maximal ring,
  39890. assigns the holes to the shell known to contain them.
  39891. Assigning the holes directly to the shell serves two purposes:
  39892. <list type="bullet">
  39893. <item><description>it is faster than using a point-in-polygon check later on.</description></item>
  39894. <item><description>it ensures correctness, since if the PIP test was used the point
  39895. chosen might lie on the shell, which might return an incorrect result from the
  39896. PIP test</description></item>
  39897. </list>
  39898. </summary>
  39899. </member>
  39900. <member name="M:NetTopologySuite.Operation.OverlayNG.PolygonBuilder.PlaceFreeHoles(System.Collections.Generic.IReadOnlyCollection{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.OverlayNG.OverlayEdgeRing})">
  39901. <summary>
  39902. Place holes have not yet been assigned to a shell.
  39903. These "free" holes should
  39904. all be <b>properly</b> contained in their parent shells, so it is safe to use the
  39905. <c>findEdgeRingContaining</c> method.
  39906. (This is the case because any holes which are NOT
  39907. properly contained (i.e. are connected to their
  39908. parent shell) would have formed part of a MaximalEdgeRing
  39909. and been handled in a previous step).
  39910. </summary>
  39911. <exception cref="T:NetTopologySuite.Geometries.TopologyException">If a hole cannot be assigned to a shell</exception>
  39912. </member>
  39913. <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionReducer">
  39914. <summary>
  39915. Functions to reduce the precision of a geometry
  39916. by rounding it to a given precision model.
  39917. <para/>
  39918. This class handles only polygonal and linear inputs.
  39919. For full functionality <see cref="T:NetTopologySuite.Precision.GeometryPrecisionReducer"/>.
  39920. </summary>
  39921. <seealso cref="T:NetTopologySuite.Precision.GeometryPrecisionReducer"/>
  39922. <author>Martin Davis</author>
  39923. </member>
  39924. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionReducer.ReducePrecision(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  39925. <summary>
  39926. Reduces the precision of a geometry by rounding and snapping it to the
  39927. supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.<br/>
  39928. The input geometry must be polygonal or linear.
  39929. <para/>
  39930. The output is always a valid geometry. This implies that input components
  39931. may be merged if they are closer than the grid precision.
  39932. if merging is not desired, then the individual geometry components
  39933. should be processed separately.
  39934. <para/>
  39935. The output is fully noded (i.e. coincident lines are merged and noded).
  39936. This provides an effective way to node / snap-round a collection of <see cref="T:NetTopologySuite.Geometries.LineString"/>s.
  39937. </summary>
  39938. <param name="geom">The geometry to reduce</param>
  39939. <param name="pm">The precision model to use</param>
  39940. <returns>The precision-reduced geometry</returns>
  39941. </member>
  39942. <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionUtility">
  39943. <summary>
  39944. Functions for computing precision model scale factors
  39945. that ensure robust geometry operations.
  39946. In particular, these can be used to
  39947. automatically determine appropriate scale factors for operations
  39948. using limited-precision noding (such as <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>).
  39949. <para/>
  39950. WARNING: the <c>inherentScale</c> and <c>robustScale</c>
  39951. functions can be very slow, due to the method used to determine
  39952. number of decimal places of a number.
  39953. These are not recommended for production use.
  39954. </summary>
  39955. <author>Martin Davis</author>
  39956. </member>
  39957. <member name="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS">
  39958. <summary>
  39959. A number of digits of precision which leaves some computational "headroom"
  39960. to ensure robust evaluation of certain double-precision floating point geometric operations.
  39961. <para/>
  39962. This value should be less than the maximum decimal precision of double-precision values (16).
  39963. </summary>
  39964. </member>
  39965. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(System.Double)">
  39966. <summary>
  39967. Computes a safe scale factor for a numeric value.
  39968. A safe scale factor ensures that rounded
  39969. number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
  39970. digits of precision.
  39971. </summary>
  39972. <param name="value">A numeric value.</param>
  39973. <returns>A safe scale factor for the value</returns>
  39974. </member>
  39975. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(NetTopologySuite.Geometries.Geometry)">
  39976. <summary>
  39977. Computes a safe scale factor for a geometry.
  39978. A safe scale factor ensures that rounded
  39979. number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
  39980. digits of precision.
  39981. </summary>
  39982. <param name="geom">A geometry.</param>
  39983. <returns>A safe scale factor for the geometry ordinates</returns>
  39984. </member>
  39985. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.SafeScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  39986. <summary>
  39987. Computes a safe scale factor for two geometry.
  39988. A safe scale factor ensures that rounded
  39989. number has no more than <see cref="F:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MAX_ROBUST_DP_DIGITS"/>
  39990. digits of precision.
  39991. </summary>
  39992. <param name="a">A geometry.</param>
  39993. <param name="b">A geometry (which may be <c>null</c>).</param>
  39994. <returns>A safe scale factor for the geometry ordinates</returns>
  39995. </member>
  39996. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.MaxBoundMagnitude(NetTopologySuite.Geometries.Envelope)">
  39997. <summary>
  39998. Determines the maximum magnitude (absolute value) of the bounds of an
  39999. of an envelope.
  40000. This is equal to the largest ordinate value
  40001. which must be accommodated by a scale factor.
  40002. </summary>
  40003. <param name="env">An envelope</param>
  40004. <returns>The value of the maximum bound magnitude</returns>
  40005. </member>
  40006. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.PrecisionScale(System.Double,System.Int32)">
  40007. <summary>
  40008. Computes the scale factor which will
  40009. produce a given number of digits of precision(significant digits)
  40010. when used to round the given number.
  40011. <para/>
  40012. For example: to provide 5 decimal digits of precision
  40013. for the number 123.456 the precision scale factor is 100;
  40014. for 3 digits of precision the scale factor is 1;
  40015. for 2 digits of precision the scale factor is 0.1.
  40016. <para/>
  40017. Rounding to the scale factor can be performed with <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)"/>
  40018. </summary>
  40019. <param name="value">A number to be rounded</param>
  40020. <param name="precisionDigits">The number of digits of precision required</param>
  40021. <returns>The scale factor which provides the required number of digits of precision</returns>
  40022. <seealso cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(NetTopologySuite.Geometries.Coordinate)"/>
  40023. </member>
  40024. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(System.Double)">
  40025. <summary>
  40026. Computes the inherent scale of a number.
  40027. The inherent scale is the scale factor for rounding
  40028. which preserves <b>all</b> digits of precision
  40029. (significant digits)
  40030. present in the numeric value.
  40031. In other words, it is the scale factor which does not
  40032. change the numeric value when rounded:
  40033. <code>
  40034. num = round( num, inherentScale(num) )
  40035. </code>
  40036. </summary>
  40037. <param name="value">A number</param>
  40038. <returns>The inherent scale factor of the number</returns>
  40039. </member>
  40040. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(NetTopologySuite.Geometries.Geometry)">
  40041. <summary>
  40042. Computes the inherent scale of a geometry.
  40043. The inherent scale is the scale factor for rounding
  40044. which preserves <b>all</b> digits of precision
  40045. (significant digits)
  40046. present in the geometry ordinates.
  40047. <para/>
  40048. This is the maximum inherent scale
  40049. of all ordinate values in the geometry.
  40050. <para/>
  40051. WARNING: this is <b>very</b> slow.
  40052. </summary>
  40053. <param name="geom">A geometry</param>
  40054. <returns>The inherent scale factor in the geometry's ordinates</returns>
  40055. </member>
  40056. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  40057. <summary>
  40058. Computes the inherent scale of two geometries.
  40059. The inherent scale is the scale factor for rounding
  40060. which preserves <b>all</b> digits of precision
  40061. (significant digits)
  40062. present in the geometry ordinates.
  40063. <para/>
  40064. This is the maximum inherent scale
  40065. of all ordinate values in the geometries.
  40066. </summary>
  40067. <param name="a">A geometry</param>
  40068. <param name="b">A geomety (which may be <c>null</c>)</param>
  40069. <returns>The inherent scale factor in the geometries' ordinates</returns>
  40070. </member>
  40071. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.NumberOfDecimals(System.Double)">
  40072. <summary>
  40073. Determines the
  40074. number of decimal places represented in a double-precision
  40075. number (as determined by .NET).
  40076. This uses the .NET double-precision print routine
  40077. to determine the number of decimal places,
  40078. This is likely not optimal for performance,
  40079. but should be accurate and portable.
  40080. </summary>
  40081. <param name="value">A numeric value</param>
  40082. <returns>The number of decimal places in the value</returns>
  40083. </member>
  40084. <member name="T:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.InherentScaleFilter">
  40085. <summary>
  40086. Applies the inherent scale calculation
  40087. to every ordinate in a geometry.
  40088. <para/>
  40089. WARNING: this is <b>very</b> slow.
  40090. </summary>
  40091. <author>Martin Davis</author>
  40092. </member>
  40093. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustPM(NetTopologySuite.Geometries.Geometry)">
  40094. <summary>
  40095. Determines a precision model to
  40096. use for robust overlay operations for one geometry.
  40097. The precision scale factor is chosen to maximize
  40098. output precision while avoiding round-off issues.
  40099. <para/>
  40100. NOTE: this is a heuristic determination, so is not guaranteed to
  40101. eliminate precision issues.
  40102. <para/>
  40103. WARNING: this is <b>very</b> slow.
  40104. </summary>
  40105. <param name="a">A geometry</param>
  40106. <returns>A suitable precision model for overlay</returns>
  40107. </member>
  40108. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustScale(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  40109. <summary>
  40110. Determines a scale factor which maximizes
  40111. the digits of precision and is
  40112. safe to use for overlay operations.
  40113. The robust scale is the minimum of the
  40114. inherent scale and the safe scale factors.
  40115. <para/>
  40116. WARNING: this is <b>very</b> slow.
  40117. </summary>
  40118. <param name="a">A geometry</param>
  40119. <param name="b">A geometry</param>
  40120. <returns>A scale factor for use in overlay operations</returns>
  40121. </member>
  40122. <member name="M:NetTopologySuite.Operation.OverlayNG.PrecisionUtility.RobustScale(NetTopologySuite.Geometries.Geometry)">
  40123. <summary>
  40124. Determines a scale factor which maximizes
  40125. the digits of precision and is
  40126. safe to use for overlay operations.
  40127. The robust scale is the minimum of the
  40128. inherent scale and the safe scale factors.
  40129. </summary>
  40130. <param name="a">A geometry</param>
  40131. <returns>A scale factor for use in overlay operations</returns>
  40132. </member>
  40133. <member name="T:NetTopologySuite.Operation.OverlayNG.RingClipper">
  40134. <summary>
  40135. Clips a ring of points to an rectangle.
  40136. Uses a variant of Cohen-Sutherland clipping.
  40137. <para/>
  40138. In general the output is not topologically valid.
  40139. In particular, the output may contain coincident non-noded line segments
  40140. along the clip rectangle sides.
  40141. However, the output is sufficiently well-structured
  40142. that it can be used as input to the <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/> algorithm
  40143. (which is able to process coincident linework due
  40144. to the need to handle topology collapse under precision reduction).
  40145. <para/>
  40146. Because of the likelihood of creating
  40147. extraneous line segments along the clipping rectangle sides,
  40148. this class is not suitable for clipping linestrings.
  40149. <para/>
  40150. The clipping envelope should be generated using <see cref="T:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer"/>,
  40151. to ensure that intersecting line segments are not perturbed
  40152. by clipping.
  40153. This is required to ensure that the overlay of the
  40154. clipped geometry is robust and correct (i.e. the same as
  40155. if clipping was not used).
  40156. </summary>
  40157. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.LineLimiter"/>
  40158. <author>Martin Davis</author>
  40159. </member>
  40160. <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.#ctor(NetTopologySuite.Geometries.Envelope)">
  40161. <summary>
  40162. Creates a new clipper for the given envelope.
  40163. </summary>
  40164. <param name="clipEnv">The clipping envelope</param>
  40165. </member>
  40166. <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.Clip(NetTopologySuite.Geometries.Coordinate[])">
  40167. <summary>
  40168. Clips a list of points to the clipping rectangle box.
  40169. </summary>
  40170. <param name="pts">The points of the ring</param>
  40171. <returns>The points of the clipped ring</returns>
  40172. </member>
  40173. <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.ClipToBoxEdge(NetTopologySuite.Geometries.Coordinate[],System.Int32,System.Boolean)">
  40174. <summary>
  40175. Clips line to the axis-parallel line defined by a single box edge.
  40176. </summary>
  40177. <param name="pts">The coordinates</param>
  40178. <param name="edgeIndex">An edge index</param>
  40179. <param name="closeRing">A flag indicating whether to close the ring.</param>
  40180. <returns>The clipped coordinates</returns>
  40181. </member>
  40182. <member name="M:NetTopologySuite.Operation.OverlayNG.RingClipper.Intersection(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Int32)">
  40183. <summary>
  40184. Computes the intersection point of a segment
  40185. with an edge of the clip box.
  40186. The segment must be known to intersect the edge.
  40187. </summary>
  40188. <param name="a">First endpoint of the segment</param>
  40189. <param name="b">Second endpoint of the segment</param>
  40190. <param name="edgeIndex">Index of box edge</param>
  40191. <returns>
  40192. The intersection point with the box edge
  40193. </returns>
  40194. </member>
  40195. <member name="T:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer">
  40196. <summary>
  40197. Computes a robust clipping envelope for a pair of polygonal geometries.
  40198. The envelope is computed to be large enough to include the full
  40199. length of all geometry line segments which intersect
  40200. a given target envelope.
  40201. This ensures that line segments which might intersect are
  40202. not perturbed when clipped using <see cref="T:NetTopologySuite.Operation.OverlayNG.RingClipper"/>.
  40203. </summary>
  40204. <author>Martin Davis</author>
  40205. </member>
  40206. <member name="M:NetTopologySuite.Operation.OverlayNG.RobustClipEnvelopeComputer.AddPolygonRing(NetTopologySuite.Geometries.LineString)">
  40207. <summary>
  40208. Adds a polygon ring to the graph. Empty rings are ignored.
  40209. </summary>
  40210. </member>
  40211. <member name="T:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG">
  40212. <summary>
  40213. Unions a collection of geometries in an
  40214. efficient way, using <see cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNG"/>
  40215. to ensure robust computation.
  40216. <para/>
  40217. This class is most useful for performing UnaryUnion using
  40218. a fixed-precision model.<br/>
  40219. For unary union using floating precision,
  40220. <see cref="M:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust.Union(NetTopologySuite.Geometries.Geometry)"/> should be used.
  40221. </summary>
  40222. <author>Martin Davis</author>
  40223. </member>
  40224. <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  40225. <summary>
  40226. Unions a geometry (which is often a collection)
  40227. using a given precision model.
  40228. </summary>
  40229. <param name="geom">The geometry to union</param>
  40230. <param name="pm">The precision model to use</param>
  40231. <returns>The union of the geometry</returns>
  40232. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
  40233. </member>
  40234. <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.PrecisionModel)">
  40235. <summary>
  40236. Unions a geometry (which is often a collection)
  40237. using a given precision model.
  40238. </summary>
  40239. <param name="geoms">The geometries to union</param>
  40240. <param name="pm">The precision model to use</param>
  40241. <returns>The union of the geometries</returns>
  40242. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
  40243. </member>
  40244. <member name="M:NetTopologySuite.Operation.OverlayNG.UnaryUnionNG.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory,NetTopologySuite.Geometries.PrecisionModel)">
  40245. <summary>
  40246. Unions a geometry (which is often a collection)
  40247. using a given precision model.
  40248. </summary>
  40249. <param name="geoms">The geometries to union</param>
  40250. <param name="geomFact">The geometry factory to use</param>
  40251. <param name="pm">The precision model to use</param>
  40252. <returns>The union of the geometries</returns>
  40253. <seealso cref="T:NetTopologySuite.Operation.OverlayNG.OverlayNGRobust"/>
  40254. </member>
  40255. <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing">
  40256. <summary>
  40257. Represents a ring of <see cref="T:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge"/>s which form
  40258. a ring of a polygon. The ring may be either an outer shell or a hole.
  40259. </summary>
  40260. </member>
  40261. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindEdgeRingContaining(NetTopologySuite.Operation.Polygonize.EdgeRing,System.Collections.Generic.IList{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40262. <summary>
  40263. Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
  40264. The innermost enclosing ring is the <i>smallest</i> enclosing ring.
  40265. The algorithm used depends on the fact that:
  40266. ring A contains ring B if envelope(ring A) contains envelope(ring B).
  40267. This routine is only safe to use if the chosen point of the hole
  40268. is known to be properly contained in a shell
  40269. (which is guaranteed to be the case if the hole does not touch its shell).
  40270. <para/>
  40271. To improve performance of this function the caller should
  40272. make the passed shellList as small as possible(e.g.
  40273. by using a spatial index filter beforehand).
  40274. </summary>
  40275. <param name="erList"></param>
  40276. <param name="testEr"></param>
  40277. <returns>Containing EdgeRing or <c>null</c> if no containing EdgeRing is found.</returns>
  40278. </member>
  40279. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
  40280. <summary>
  40281. Traverses a ring of DirectedEdges, accumulating them into a list.
  40282. This assumes that all dangling directed edges have been removed
  40283. from the graph, so that there is always a next dirEdge.
  40284. </summary>
  40285. <remarks>This function has a different return type than its counterpart
  40286. in JTS. Use <see cref="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindPolyDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)"/>
  40287. instead.</remarks>
  40288. <param name="startDE">The DirectedEdge to start traversing at</param>
  40289. <returns>A list of DirectedEdges that form a ring</returns>
  40290. </member>
  40291. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.FindPolyDirEdgesInRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
  40292. <summary>
  40293. Traverses a ring of DirectedEdges, accumulating them into a list.
  40294. This assumes that all dangling directed edges have been removed
  40295. from the graph, so that there is always a next dirEdge.
  40296. </summary>
  40297. <remarks>This function is called <c>FindDirEdgesInRing</c> in JTS.</remarks>
  40298. <param name="startDE">The DirectedEdge to start traversing at</param>
  40299. <returns>A list of DirectedEdges that form a ring</returns>
  40300. </member>
  40301. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.Add(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
  40302. <summary>
  40303. Adds a DirectedEdge which is known to form part of this ring.
  40304. </summary>
  40305. <param name="de">The DirectedEdge to add.</param>
  40306. </member>
  40307. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsHole">
  40308. <summary>
  40309. Tests whether this ring is a hole.
  40310. Due to the way the edges in the polygonization graph are linked,
  40311. a ring is a hole if it is oriented counter-clockwise.
  40312. </summary>
  40313. <returns><c>true</c> if this ring is a hole.</returns>
  40314. </member>
  40315. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeHole">
  40316. <summary>
  40317. Computes whether this ring is a hole.
  40318. Due to the way the edges in the polygonization graph are linked,
  40319. a ring is a hole if it is oriented counter-clockwise.
  40320. </summary>
  40321. </member>
  40322. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddHole(NetTopologySuite.Geometries.LinearRing)">
  40323. <summary>
  40324. Adds a hole to the polygon formed by this ring.
  40325. </summary>
  40326. <param name="hole">The LinearRing forming the hole.</param>
  40327. </member>
  40328. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddHole(NetTopologySuite.Operation.Polygonize.EdgeRing)">
  40329. <summary>
  40330. Adds a hole to the polygon formed by this ring.
  40331. </summary>
  40332. <param name="holeER">the <see cref="T:NetTopologySuite.Geometries.LinearRing"/> forming the hole.</param>
  40333. </member>
  40334. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Polygon">
  40335. <summary>
  40336. Computes and returns the Polygon formed by this ring and any contained holes.
  40337. </summary>
  40338. </member>
  40339. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsValid">
  40340. <summary>
  40341. Gets a value indicating if the <see cref="T:NetTopologySuite.Geometries.LinearRing" /> ring formed by this edge ring is topologically valid.
  40342. </summary>
  40343. <remarks><see cref="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeValid"/> must be called prior to accessing this property.</remarks>
  40344. <return>true if the ring is valid.</return>
  40345. </member>
  40346. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ComputeValid">
  40347. <summary>
  40348. Computes the validity of the ring.
  40349. Must be called prior to calling <see cref="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsValid"/>.
  40350. </summary>
  40351. </member>
  40352. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.Contains(NetTopologySuite.Operation.Polygonize.EdgeRing)">
  40353. <summary>
  40354. Tests if an edgeRing is properly contained in this ring.
  40355. Relies on property that edgeRings never overlap (although they may
  40356. touch at single vertices).</summary>
  40357. <param name="ring">The ring to test</param>
  40358. <returns><c>true</c> if ring is properly contained</returns>
  40359. </member>
  40360. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Coordinates">
  40361. <summary>
  40362. Computes and returns the list of coordinates which are contained in this ring.
  40363. The coordinates are computed once only and cached.
  40364. </summary>
  40365. </member>
  40366. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.LineString">
  40367. <summary>
  40368. Gets the coordinates for this ring as a <c>LineString</c>.
  40369. Used to return the coordinates in this ring
  40370. as a valid point, when it has been detected that the ring is topologically
  40371. invalid.
  40372. </summary>
  40373. </member>
  40374. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Ring">
  40375. <summary>
  40376. Returns this ring as a LinearRing, or null if an Exception occurs while
  40377. creating it (such as a topology problem).
  40378. </summary>
  40379. </member>
  40380. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.AddEdge(NetTopologySuite.Geometries.Coordinate[],System.Boolean,NetTopologySuite.Geometries.CoordinateList)">
  40381. <summary>
  40382. </summary>
  40383. <param name="coords"></param>
  40384. <param name="isForward"></param>
  40385. <param name="coordList"></param>
  40386. </member>
  40387. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.Shell">
  40388. <summary>
  40389. Gets or sets a value indicating the containing shell ring of a ring that has been determined to be a hole.
  40390. </summary>
  40391. </member>
  40392. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.HasShell">
  40393. <summary>
  40394. Gets a value indicating whether this ring has a shell assigned to it.
  40395. </summary>
  40396. </member>
  40397. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsOuterHole">
  40398. <summary>
  40399. Tests whether this ring is an outer hole.
  40400. A hole is an outer hole if it is not contained by a shell.
  40401. </summary>
  40402. </member>
  40403. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsOuterShell">
  40404. <summary>
  40405. Tests whether this ring is an outer shell.
  40406. </summary>
  40407. </member>
  40408. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.OuterHole">
  40409. <summary>
  40410. Gets the outer hole of a shell, if it has one.
  40411. An outer hole is one that is not contained
  40412. in any other shell.
  40413. Each disjoint connected group of shells
  40414. is surrounded by an outer hole.
  40415. </summary>
  40416. <returns>The outer hole edge ring, or <c>null</c></returns>
  40417. </member>
  40418. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.UpdateIncluded">
  40419. <summary>
  40420. Updates the included status for currently non-included shells
  40421. based on whether they are adjacent to an included shell.
  40422. </summary>
  40423. </member>
  40424. <member name="M:NetTopologySuite.Operation.Polygonize.EdgeRing.ToString">
  40425. <summary>
  40426. Gets a string representation of this object.
  40427. </summary>
  40428. </member>
  40429. <member name="P:NetTopologySuite.Operation.Polygonize.EdgeRing.IsProcessed">
  40430. <summary>
  40431. Gets or sets a value indicating whether this ring has been processed.
  40432. </summary>
  40433. </member>
  40434. <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing.EnvelopeComparator">
  40435. <summary>
  40436. Compares EdgeRings based on their envelope,
  40437. using the standard lexicographic ordering.
  40438. This ordering is sufficient to make edge ring sorting deterministic.
  40439. </summary>
  40440. <author>mbdavis</author>
  40441. </member>
  40442. <member name="T:NetTopologySuite.Operation.Polygonize.EdgeRing.EnvelopeAreaComparator">
  40443. <summary>
  40444. Compares EdgeRings based on the area of their envelopes.
  40445. Smaller envelopes sort before bigger ones.
  40446. This effectively sorts EdgeRings in order of containment.
  40447. </summary>
  40448. <author>mbdavis</author>
  40449. </member>
  40450. <member name="T:NetTopologySuite.Operation.Polygonize.HoleAssigner">
  40451. <summary>
  40452. Assigns hole rings to shell rings
  40453. during polygonization.
  40454. Uses spatial indexing to improve performance
  40455. of shell lookup.
  40456. </summary>
  40457. <author>mdavis</author>
  40458. </member>
  40459. <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.AssignHolesToShells(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing},System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40460. <summary>
  40461. Assigns hole rings to shell rings.
  40462. </summary>
  40463. <param name="holes">An enumeration of hole rings to assign</param>
  40464. <param name="shells">An enumeration of shell rings</param>
  40465. </member>
  40466. <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40467. <summary>
  40468. Creates a new hole assigner.
  40469. </summary>
  40470. <param name="shells">An enumeration of shell rings to assign holes to</param>
  40471. </member>
  40472. <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.AssignHolesToShells(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40473. <summary>
  40474. Assigns holes to the shells.
  40475. </summary>
  40476. <param name="holes">An enumeration of holes to assign to shells</param>
  40477. </member>
  40478. <member name="M:NetTopologySuite.Operation.Polygonize.HoleAssigner.FindShellContaining(NetTopologySuite.Operation.Polygonize.EdgeRing)">
  40479. <summary>
  40480. Find the innermost enclosing shell EdgeRing containing the argument EdgeRing, if any.
  40481. The innermost enclosing ring is the <i>smallest</i> enclosing ring.
  40482. The algorithm used depends on the fact that:
  40483. <list type="Bullet">
  40484. <item><term>ring A contains ring B if envelope(ring A) contains envelope(ring B)</term></item>
  40485. </list>
  40486. This routine is only safe to use if the chosen point of the hole
  40487. is known to be properly contained in a shell
  40488. (which is guaranteed to be the case if the hole does not touch its shell)
  40489. </summary>
  40490. <param name="testER">An edge ring to test</param>
  40491. <returns>
  40492. The containing shell EdgeRing, if there is one
  40493. or <c>null</c> if no containing EdgeRing is found
  40494. </returns>
  40495. </member>
  40496. <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge">
  40497. <summary>
  40498. A <c>DirectedEdge</c> of a <c>PolygonizeGraph</c>, which represents
  40499. an edge of a polygon formed by the graph.
  40500. May be logically deleted from the graph by setting the <c>marked</c> flag.
  40501. </summary>
  40502. </member>
  40503. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  40504. <summary>
  40505. Constructs a directed edge connecting the <c>from</c> node to the
  40506. <c>to</c> node.
  40507. </summary>
  40508. <param name="from"></param>
  40509. <param name="to"></param>
  40510. <param name="directionPt">
  40511. Specifies this DirectedEdge's direction (given by an imaginary
  40512. line from the <c>from</c> node to <c>directionPt</c>).
  40513. </param>
  40514. <param name="edgeDirection">
  40515. Whether this DirectedEdge's direction is the same as or
  40516. opposite to that of the parent Edge (if any).
  40517. </param>
  40518. </member>
  40519. <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Label">
  40520. <summary>
  40521. Returns the identifier attached to this directed edge.
  40522. Attaches an identifier to this directed edge.
  40523. </summary>
  40524. </member>
  40525. <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Next">
  40526. <summary>
  40527. Returns the next directed edge in the EdgeRing that this directed edge is a member of.
  40528. Sets the next directed edge in the EdgeRing that this directed edge is a member of.
  40529. </summary>
  40530. </member>
  40531. <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.IsInRing">
  40532. <summary>
  40533. Returns the ring of directed edges that this directed edge is
  40534. a member of, or null if the ring has not been set.
  40535. </summary>
  40536. </member>
  40537. <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge.Ring">
  40538. <summary>
  40539. Gets/Sets the ring of directed edges that this directed edge is
  40540. a member of.
  40541. </summary>
  40542. </member>
  40543. <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeEdge">
  40544. <summary>
  40545. An edge of a polygonization graph.
  40546. </summary>
  40547. </member>
  40548. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeEdge.#ctor(NetTopologySuite.Geometries.LineString)">
  40549. <summary>
  40550. </summary>
  40551. <param name="line"></param>
  40552. </member>
  40553. <member name="P:NetTopologySuite.Operation.Polygonize.PolygonizeEdge.Line">
  40554. <summary>
  40555. </summary>
  40556. </member>
  40557. <member name="T:NetTopologySuite.Operation.Polygonize.PolygonizeGraph">
  40558. <summary>
  40559. Represents a planar graph of edges that can be used to compute a
  40560. polygonization, and implements the algorithms to compute the
  40561. <see cref="T:NetTopologySuite.Operation.Polygonize.EdgeRing"/>s formed by the graph.
  40562. The marked flag on DirectedEdges is used to indicate that a directed edge
  40563. has be logically deleted from the graph.
  40564. </summary>
  40565. </member>
  40566. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetDegreeNonDeleted(NetTopologySuite.Planargraph.Node)">
  40567. <summary>
  40568. </summary>
  40569. <param name="node"></param>
  40570. <returns></returns>
  40571. </member>
  40572. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetDegree(NetTopologySuite.Planargraph.Node,System.Int64)">
  40573. <summary>
  40574. </summary>
  40575. <param name="node"></param>
  40576. <param name="label"></param>
  40577. <returns></returns>
  40578. </member>
  40579. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteAllEdges(NetTopologySuite.Planargraph.Node)">
  40580. <summary>
  40581. Deletes all edges at a node.
  40582. </summary>
  40583. <param name="node"></param>
  40584. </member>
  40585. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  40586. <summary>
  40587. Create a new polygonization graph.
  40588. </summary>
  40589. <param name="factory"></param>
  40590. </member>
  40591. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.AddEdge(NetTopologySuite.Geometries.LineString)">
  40592. <summary>
  40593. Add a <c>LineString</c> forming an edge of the polygon graph.
  40594. </summary>
  40595. <param name="line">The line to add.</param>
  40596. </member>
  40597. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetNode(NetTopologySuite.Geometries.Coordinate)">
  40598. <summary>
  40599. </summary>
  40600. <param name="pt"></param>
  40601. <returns></returns>
  40602. </member>
  40603. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCWEdges">
  40604. <summary>
  40605. </summary>
  40606. </member>
  40607. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ConvertMaximalToMinimalEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge})">
  40608. <summary>
  40609. Convert the maximal edge rings found by the initial graph traversal
  40610. into the minimal edge rings required by NTS polygon topology rules.
  40611. </summary>
  40612. <param name="ringEdges">The list of start edges for the edgeRings to convert.</param>
  40613. </member>
  40614. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindIntersectionNodes(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge,System.Int64)">
  40615. <summary>
  40616. Finds all nodes in a maximal edgering which are self-intersection nodes
  40617. </summary>
  40618. <param name="startDE"></param>
  40619. <param name="label"></param>
  40620. <returns>
  40621. The list of intersection nodes found,
  40622. or null if no intersection nodes were found.
  40623. </returns>
  40624. </member>
  40625. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.GetEdgeRings">
  40626. <summary>
  40627. Computes the minimal EdgeRings formed by the edges in this graph.
  40628. </summary>
  40629. <returns>A list of the{EdgeRings found by the polygonization process.</returns>
  40630. </member>
  40631. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindLabeledEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge})">
  40632. <summary>
  40633. Finds and labels all edgerings in the graph.
  40634. The edge rings are labeling with unique integers.
  40635. The labeling allows detecting cut edges.
  40636. </summary>
  40637. <param name="dirEdges">A List of the DirectedEdges in the graph.</param>
  40638. <returns>A List of DirectedEdges, one for each edge ring found.</returns>
  40639. </member>
  40640. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteCutEdges">
  40641. <summary>
  40642. Finds and removes all cut edges from the graph.
  40643. </summary>
  40644. <returns>A list of the <c>LineString</c>s forming the removed cut edges.</returns>
  40645. </member>
  40646. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.Label(System.Collections.Generic.IEnumerable{NetTopologySuite.Planargraph.DirectedEdge},System.Int64)">
  40647. <summary>
  40648. </summary>
  40649. <param name="dirEdges"></param>
  40650. <param name="label"></param>
  40651. </member>
  40652. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCWEdges(NetTopologySuite.Planargraph.Node)">
  40653. <summary>
  40654. </summary>
  40655. <param name="node"></param>
  40656. </member>
  40657. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeNextCCWEdges(NetTopologySuite.Planargraph.Node,System.Int64)">
  40658. <summary>
  40659. Computes the next edge pointers going CCW around the given node, for the
  40660. given edgering label.
  40661. This algorithm has the effect of converting maximal edgerings into minimal edgerings
  40662. </summary>
  40663. <param name="node"></param>
  40664. <param name="label"></param>
  40665. </member>
  40666. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.FindEdgeRing(NetTopologySuite.Operation.Polygonize.PolygonizeDirectedEdge)">
  40667. <summary>
  40668. </summary>
  40669. <param name="startDE"></param>
  40670. <returns></returns>
  40671. </member>
  40672. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.DeleteDangles">
  40673. <summary>
  40674. Marks all edges from the graph which are "dangles".
  40675. Dangles are which are incident on a node with degree 1.
  40676. This process is recursive, since removing a dangling edge
  40677. may result in another edge becoming a dangle.
  40678. In order to handle large recursion depths efficiently,
  40679. an explicit recursion stack is used.
  40680. </summary>
  40681. <returns>A List containing the <see cref="T:NetTopologySuite.Geometries.LineString"/>s that formed dangles.</returns>
  40682. </member>
  40683. <member name="M:NetTopologySuite.Operation.Polygonize.PolygonizeGraph.ComputeDepthParity">
  40684. <summary>
  40685. Traverses the polygonized edge rings in the graph
  40686. and computes the depth parity (odd or even)
  40687. relative to the exterior of the graph.
  40688. If the client has requested that the output
  40689. be polygonally valid, only odd polygons will be constructed.
  40690. </summary>
  40691. <exception cref="T:System.NotSupportedException"/>
  40692. </member>
  40693. <member name="T:NetTopologySuite.Operation.Polygonize.Polygonizer">
  40694. <summary>
  40695. Polygonizes a set of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s which contain linework that
  40696. represents the edges of a planar graph.
  40697. </summary>
  40698. <remarks>
  40699. <para>All types of Geometry are accepted as input;
  40700. the constituent linework is extracted as the edges to be polygonized.
  40701. The processed edges must be correctly noded; that is, they must only meet
  40702. at their endpoints. Polygonization will accept incorrectly noded input
  40703. but will not form polygons from non-noded edges,
  40704. and reports them as errors.
  40705. </para><para>
  40706. The Polygonizer reports the follow kinds of errors:
  40707. <list type="Table">
  40708. <item><term><see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetDangles"/>Dangles</term><description>edges which have one or both ends which are not incident on another edge endpoint</description></item>
  40709. <item><term><see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetCutEdges"/></term><description>edges which are connected at both ends but which do not form part of polygon</description></item>
  40710. <item><term><see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetInvalidRingLines"/></term><description>edges which form rings which are invalid
  40711. (e.g. the component lines contain a self-intersection)</description>
  40712. </item></list>
  40713. </para>
  40714. <para>
  40715. The <see cref="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor(System.Boolean)"/> constructor allows
  40716. extracting only polygons which form a valid polygonal result.
  40717. The set of extracted polygons is guaranteed to be edge-disjoint.
  40718. This is useful for situations where it is known that the input lines form a
  40719. valid polygonal geometry (which may include holes or nested polygons).</para>
  40720. </remarks>
  40721. </member>
  40722. <member name="F:NetTopologySuite.Operation.Polygonize.Polygonizer.AllPolys">
  40723. <summary>
  40724. The default polygonizer output behavior
  40725. </summary>
  40726. </member>
  40727. <member name="T:NetTopologySuite.Operation.Polygonize.Polygonizer.LineStringAdder">
  40728. <summary>
  40729. Adds every linear element in a <see cref="T:NetTopologySuite.Geometries.Geometry"/> into the polygonizer graph.
  40730. </summary>
  40731. </member>
  40732. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.LineStringAdder.Filter(NetTopologySuite.Geometries.Geometry)">
  40733. <summary>
  40734. Filters all <see cref="T:NetTopologySuite.Geometries.LineString"/> geometry instances
  40735. </summary>
  40736. <param name="g">The geometry instance</param>
  40737. </member>
  40738. <member name="F:NetTopologySuite.Operation.Polygonize.Polygonizer._lineStringAdder">
  40739. <summary>
  40740. Default linestring adder.
  40741. </summary>
  40742. </member>
  40743. <member name="P:NetTopologySuite.Operation.Polygonize.Polygonizer.IsCheckingRingsValid">
  40744. <summary>
  40745. Allows disabling the valid ring checking,
  40746. to optimize situations where invalid rings are not expected.
  40747. </summary>
  40748. <remarks>The default is <c>true</c></remarks>
  40749. </member>
  40750. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor">
  40751. <summary>
  40752. Creates a polygonizer that extracts all polygons.
  40753. </summary>
  40754. </member>
  40755. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.#ctor(System.Boolean)">
  40756. <summary>
  40757. Creates a polygonizer, specifying whether a valid polygonal geometry must be created.
  40758. If the argument is <c>true</c>
  40759. then areas may be discarded in order to
  40760. ensure that the extracted geometry is a valid polygonal geometry.
  40761. </summary>
  40762. <param name="extractOnlyPolygonal"><c>true</c> if a valid polygonal geometry should be extracted</param>
  40763. </member>
  40764. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  40765. <summary>
  40766. Adds a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s to be polygonized.
  40767. May be called multiple times.
  40768. Any dimension of Geometry may be added;
  40769. the constituent linework will be extracted and used.
  40770. </summary>
  40771. <param name="geomList">A list of <c>Geometry</c>s with linework to be polygonized.</param>
  40772. </member>
  40773. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(NetTopologySuite.Geometries.Geometry)">
  40774. <summary>
  40775. Adds a <see cref="T:NetTopologySuite.Geometries.Geometry"/> to the linework to be polygonized.
  40776. May be called multiple times.
  40777. Any dimension of Geometry may be added;
  40778. the constituent linework will be extracted and used
  40779. </summary>
  40780. <param name="g">A <c>Geometry</c> with linework to be polygonized.</param>
  40781. </member>
  40782. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Add(NetTopologySuite.Geometries.LineString)">
  40783. <summary>
  40784. Adds a to the graph of polygon edges.
  40785. </summary>
  40786. <param name="line">The <see cref="T:NetTopologySuite.Geometries.LineString"/> to add.</param>
  40787. </member>
  40788. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetPolygons">
  40789. <summary>
  40790. Gets the list of polygons formed by the polygonization.
  40791. </summary>
  40792. </member>
  40793. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetGeometry">
  40794. <summary>
  40795. Gets a geometry representing the polygons formed by the polygonization.
  40796. If a valid polygonal geometry was extracted the result is a <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.
  40797. </summary>
  40798. <returns>A geometry containing the polygons</returns>
  40799. </member>
  40800. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetDangles">
  40801. <summary>
  40802. Gets the list of dangling lines found during polygonization.
  40803. </summary>
  40804. </member>
  40805. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetCutEdges">
  40806. <summary>
  40807. Gets the list of cut edges found during polygonization.
  40808. </summary>
  40809. </member>
  40810. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.GetInvalidRingLines">
  40811. <summary>
  40812. Gets the list of lines forming invalid rings found during polygonization.
  40813. </summary>
  40814. </member>
  40815. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.Polygonize">
  40816. <summary>
  40817. Performs the polygonization, if it has not already been carried out.
  40818. </summary>
  40819. </member>
  40820. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.FindOuterShells(System.Collections.Generic.List{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40821. <summary>
  40822. For each outer hole finds and includes a single outer shell.
  40823. This seeds the traversal algorithm for finding only polygonal shells.
  40824. </summary>
  40825. <param name="shellList">The list of shell EdgeRings</param>
  40826. </member>
  40827. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.ExtractInvalidLines(System.Collections.Generic.List{NetTopologySuite.Operation.Polygonize.EdgeRing})">
  40828. <summary>Extracts unique lines for invalid rings,
  40829. discarding rings which correspond to outer rings and hence contain
  40830. duplicate linework.
  40831. </summary>
  40832. <param name="invalidRings">A list of edge rings</param>
  40833. <returns>The list of invalid LineString geometries</returns>
  40834. </member>
  40835. <member name="M:NetTopologySuite.Operation.Polygonize.Polygonizer.IsIncludedInvalid(NetTopologySuite.Operation.Polygonize.EdgeRing)">
  40836. <summary>
  40837. Tests if a invalid ring should be included in
  40838. the list of reported invalid rings.
  40839. <para/>
  40840. Rings are included only if they contain
  40841. linework which is not already in a valid ring,
  40842. or in an already-included ring.
  40843. <para/>
  40844. Because the invalid rings list is sorted by extent area,
  40845. this results in outer rings being discarded,
  40846. since all their linework is reported in the rings they contain.
  40847. </summary>
  40848. <param name="invalidRing">The ring to test</param>
  40849. <returns><c>true</c> if the ring should be included</returns>
  40850. </member>
  40851. <member name="T:NetTopologySuite.Operation.Predicate.RectangleContains">
  40852. <summary>
  40853. Optimized implementation of spatial predicate "contains"
  40854. for cases where the first <c>Geometry</c> is a rectangle.
  40855. As a further optimization,
  40856. this class can be used directly to test many geometries against a single rectangle.
  40857. </summary>
  40858. </member>
  40859. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.Contains(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  40860. <summary>
  40861. </summary>
  40862. <param name="rectangle"></param>
  40863. <param name="b"></param>
  40864. <returns></returns>
  40865. </member>
  40866. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.#ctor(NetTopologySuite.Geometries.Polygon)">
  40867. <summary>
  40868. Create a new contains computer for two geometries.
  40869. </summary>
  40870. <param name="rectangle">A rectangular geometry.</param>
  40871. </member>
  40872. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.Contains(NetTopologySuite.Geometries.Geometry)">
  40873. <summary>
  40874. </summary>
  40875. <param name="geom"></param>
  40876. <returns></returns>
  40877. </member>
  40878. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsContainedInBoundary(NetTopologySuite.Geometries.Geometry)">
  40879. <summary>
  40880. </summary>
  40881. <param name="geom"></param>
  40882. <returns></returns>
  40883. </member>
  40884. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsPointContainedInBoundary(NetTopologySuite.Geometries.Point)">
  40885. <summary>
  40886. </summary>
  40887. <param name="point"></param>
  40888. <returns></returns>
  40889. </member>
  40890. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsPointContainedInBoundary(NetTopologySuite.Geometries.Coordinate)">
  40891. <summary>
  40892. Tests if a point is contained in the boundary of the target rectangle.
  40893. </summary>
  40894. <param name="pt">the point to test</param>
  40895. <returns>true if the point is contained in the boundary</returns>
  40896. </member>
  40897. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsLineStringContainedInBoundary(NetTopologySuite.Geometries.LineString)">
  40898. <summary>
  40899. Tests if a linestring is completely contained in the boundary of the target rectangle.
  40900. </summary>
  40901. <param name="line">the linestring to test</param>
  40902. <returns>true if the linestring is contained in the boundary</returns>
  40903. </member>
  40904. <member name="M:NetTopologySuite.Operation.Predicate.RectangleContains.IsLineSegmentContainedInBoundary(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  40905. <summary>
  40906. Tests if a line segment is contained in the boundary of the target rectangle.
  40907. </summary>
  40908. <param name="p0">an endpoint of the segment</param>
  40909. <param name="p1">an endpoint of the segment</param>
  40910. <returns>true if the line segment is contained in the boundary</returns>
  40911. </member>
  40912. <member name="T:NetTopologySuite.Operation.Predicate.RectangleIntersects">
  40913. <summary>I
  40914. Implementation of the <tt>Intersects</tt> spatial predicate
  40915. optimized for the case where one <see cref="T:NetTopologySuite.Geometries.Geometry"/> is a rectangle.
  40916. </summary>
  40917. <remarks>
  40918. This class works for all input geometries, including <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s.
  40919. <para/>
  40920. As a further optimization, this class can be used in batch style
  40921. to test many geometries against a single rectangle.
  40922. </remarks>
  40923. </member>
  40924. <member name="F:NetTopologySuite.Operation.Predicate.RectangleIntersects.MaximumScanSegmentCount">
  40925. <summary>
  40926. Crossover size at which brute-force intersection scanning
  40927. is slower than indexed intersection detection.
  40928. Must be determined empirically. Should err on the
  40929. safe side by making value smaller rather than larger.
  40930. </summary>
  40931. </member>
  40932. <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.Intersects(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  40933. <summary>
  40934. Tests whether a rectangle intersects a given geometry.
  40935. </summary>
  40936. <param name="rectangle">A rectangular polygon</param>
  40937. <param name="b">A geometry of any kind</param>
  40938. <returns><c>true</c> if the geometries intersect.</returns>
  40939. </member>
  40940. <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.#ctor(NetTopologySuite.Geometries.Polygon)">
  40941. <summary>
  40942. Create a new intersects computer for a rectangle.
  40943. </summary>
  40944. <param name="rectangle">A rectangular polygon.</param>
  40945. </member>
  40946. <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersects.Intersects(NetTopologySuite.Geometries.Geometry)">
  40947. <summary>
  40948. Tests whether the given Geometry intersects the query rectangle.
  40949. </summary>
  40950. <param name="geom">The Geometry to test (may be of any type)</param>
  40951. <returns><c>true</c> if an intersection must occur
  40952. or <c>false</c> if no conclusion about intersection can be made</returns>
  40953. </member>
  40954. <member name="T:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor">
  40955. <summary>
  40956. Tests whether it can be concluded that a rectangle intersects a geometry,
  40957. based on the relationship of the envelope(s) of the geometry.
  40958. </summary>
  40959. <author>Martin Davis</author>
  40960. </member>
  40961. <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.#ctor(NetTopologySuite.Geometries.Envelope)">
  40962. <summary>
  40963. Creates an instance of this class using the provided <c>Envelope</c>
  40964. </summary>
  40965. <param name="rectEnv">The query envelope</param>
  40966. </member>
  40967. <member name="P:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.Intersects">
  40968. <summary>
  40969. Reports whether it can be concluded that an intersection occurs,
  40970. or whether further testing is required.
  40971. </summary>
  40972. <returns><c>true</c> if an intersection must occur <br/>
  40973. or <c>false</c> if no conclusion about intersection can be made</returns>
  40974. </member>
  40975. <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
  40976. <summary>
  40977. </summary>
  40978. <param name="element"></param>
  40979. </member>
  40980. <member name="M:NetTopologySuite.Operation.Predicate.EnvelopeIntersectsVisitor.IsDone">
  40981. <summary>
  40982. </summary>
  40983. <returns></returns>
  40984. </member>
  40985. <member name="T:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor">
  40986. <summary>
  40987. A visitor which tests whether it can be
  40988. concluded that a geometry contains a vertex of
  40989. a query geometry.
  40990. </summary>
  40991. <author>Martin Davis</author>
  40992. </member>
  40993. <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.#ctor(NetTopologySuite.Geometries.Polygon)">
  40994. <summary>
  40995. </summary>
  40996. <param name="rectangle"></param>
  40997. </member>
  40998. <member name="P:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.ContainsPoint">
  40999. <summary>
  41000. Gets a value indicating whether it can be concluded that a corner point of the rectangle is
  41001. contained in the geometry, or whether further testing is required.
  41002. </summary>
  41003. <returns><c>true</c> if a corner point is contained
  41004. or <c>false</c> if no conclusion about intersection can be made
  41005. </returns>
  41006. </member>
  41007. <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.Visit(NetTopologySuite.Geometries.Geometry)">
  41008. <summary>
  41009. </summary>
  41010. <param name="geom"></param>
  41011. </member>
  41012. <member name="M:NetTopologySuite.Operation.Predicate.GeometryContainsPointVisitor.IsDone">
  41013. <summary>
  41014. </summary>
  41015. <returns></returns>
  41016. </member>
  41017. <member name="T:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor">
  41018. <summary>
  41019. A visitor to test for intersection between the query rectangle and the line segments of the geometry.
  41020. </summary>
  41021. <author>Martin Davis</author>
  41022. </member>
  41023. <member name="M:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor.#ctor(NetTopologySuite.Geometries.Polygon)">
  41024. <summary>
  41025. Creates a visitor for checking rectangle intersection with segments
  41026. </summary>
  41027. <param name="rectangle">the query rectangle </param>
  41028. </member>
  41029. <member name="P:NetTopologySuite.Operation.Predicate.RectangleIntersectsSegmentVisitor.Intersects">
  41030. <summary>Reports whether any segment intersection exists.</summary>
  41031. <returns>true if a segment intersection exists or
  41032. false if no segment intersection exists</returns>
  41033. </member>
  41034. <member name="T:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester">
  41035. <summary>
  41036. Tests if any line segments in two sets of <see cref="T:NetTopologySuite.Geometries.CoordinateSequences"/> intersect.
  41037. Optimized for use when at least one input is of small size.
  41038. Short-circuited to return as soon an intersection is found.
  41039. </summary>
  41040. </member>
  41041. <member name="M:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester.HasIntersectionWithLineStrings(NetTopologySuite.Geometries.CoordinateSequence,System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  41042. <summary>
  41043. </summary>
  41044. <param name="seq"></param>
  41045. <param name="lines"></param>
  41046. <returns></returns>
  41047. </member>
  41048. <member name="M:NetTopologySuite.Operation.Predicate.SegmentIntersectionTester.HasIntersection(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.CoordinateSequence)">
  41049. <summary>
  41050. </summary>
  41051. <param name="seq0"></param>
  41052. <param name="seq1"></param>
  41053. <returns></returns>
  41054. </member>
  41055. <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBuilder">
  41056. <summary>
  41057. An EdgeEndBuilder creates EdgeEnds for all the "split edges"
  41058. created by the intersections determined for an Edge.
  41059. Computes the <c>EdgeEnd</c>s which arise from a noded <c>Edge</c>.
  41060. </summary>
  41061. </member>
  41062. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.ComputeEdgeEnds(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.Edge})">
  41063. <summary>
  41064. </summary>
  41065. <param name="edges"></param>
  41066. <returns></returns>
  41067. </member>
  41068. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.ComputeEdgeEnds(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd})">
  41069. <summary>
  41070. Creates stub edges for all the intersections in this
  41071. Edge (if any) and inserts them into the graph.
  41072. </summary>
  41073. <param name="edge"></param>
  41074. <param name="l"></param>
  41075. </member>
  41076. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.CreateEdgeEndForPrev(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
  41077. <summary>
  41078. Create a EdgeStub for the edge before the intersection eiCurr.
  41079. The previous intersection is provided
  41080. in case it is the endpoint for the stub edge.
  41081. Otherwise, the previous point from the parent edge will be the endpoint.
  41082. eiCurr will always be an EdgeIntersection, but eiPrev may be null.
  41083. </summary>
  41084. <param name="edge"></param>
  41085. <param name="l"></param>
  41086. <param name="eiCurr"></param>
  41087. <param name="eiPrev"></param>
  41088. </member>
  41089. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBuilder.CreateEdgeEndForNext(NetTopologySuite.GeometriesGraph.Edge,System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd},NetTopologySuite.GeometriesGraph.EdgeIntersection,NetTopologySuite.GeometriesGraph.EdgeIntersection)">
  41090. <summary>
  41091. Create a StubEdge for the edge after the intersection eiCurr.
  41092. The next intersection is provided
  41093. in case it is the endpoint for the stub edge.
  41094. Otherwise, the next point from the parent edge will be the endpoint.
  41095. eiCurr will always be an EdgeIntersection, but eiNext may be null.
  41096. </summary>
  41097. <param name="edge"></param>
  41098. <param name="l"></param>
  41099. <param name="eiCurr"></param>
  41100. <param name="eiNext"></param>
  41101. </member>
  41102. <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBundle">
  41103. <summary>
  41104. A collection of EdgeStubs which obey the following invariant:
  41105. They originate at the same node and have the same direction.
  41106. Contains all <c>EdgeEnd</c>s which start at the same point and are parallel.
  41107. </summary>
  41108. </member>
  41109. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.#ctor(NetTopologySuite.Algorithm.IBoundaryNodeRule,NetTopologySuite.GeometriesGraph.EdgeEnd)">
  41110. <summary>
  41111. </summary>
  41112. <param name="boundaryNodeRule"></param>
  41113. <param name="e"></param>
  41114. </member>
  41115. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.GetEnumerator">
  41116. <summary>
  41117. </summary>
  41118. <returns></returns>
  41119. </member>
  41120. <member name="P:NetTopologySuite.Operation.Relate.EdgeEndBundle.EdgeEnds">
  41121. <summary>
  41122. </summary>
  41123. </member>
  41124. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  41125. <summary>
  41126. </summary>
  41127. <param name="e"></param>
  41128. </member>
  41129. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabel(NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41130. <summary>
  41131. This computes the overall edge label for the set of
  41132. edges in this EdgeStubBundle. It essentially merges
  41133. the ON and side labels for each edge.
  41134. These labels must be compatible
  41135. </summary>
  41136. <param name="boundaryNodeRule"></param>
  41137. </member>
  41138. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelOn(System.Int32,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41139. <summary>
  41140. Compute the overall ON location for the list of EdgeStubs.
  41141. (This is essentially equivalent to computing the self-overlay of a single Geometry)
  41142. edgeStubs can be either on the boundary (e.g. Polygon edge)
  41143. OR in the interior (e.g. segment of a LineString)
  41144. of their parent Geometry.
  41145. In addition, GeometryCollections use the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to determine
  41146. whether a segment is on the boundary or not.
  41147. Finally, in GeometryCollections it can occur that an edge is both
  41148. on the boundary and in the interior (e.g. a LineString segment lying on
  41149. top of a Polygon edge.) In this case the Boundary is given precedence.
  41150. These observations result in the following rules for computing the ON location:
  41151. if there are an odd number of Bdy edges, the attribute is Bdy
  41152. if there are an even number >= 2 of Bdy edges, the attribute is Int
  41153. if there are any Int edges, the attribute is Int
  41154. otherwise, the attribute is Null.
  41155. </summary>
  41156. <param name="geomIndex"></param>
  41157. <param name="boundaryNodeRule"></param>
  41158. </member>
  41159. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelSides(System.Int32)">
  41160. <summary>
  41161. Compute the labelling for each side
  41162. </summary>
  41163. <param name="geomIndex"></param>
  41164. </member>
  41165. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.ComputeLabelSide(System.Int32,NetTopologySuite.Geometries.Position)">
  41166. <summary>
  41167. To compute the summary label for a side, the algorithm is:
  41168. FOR all edges
  41169. IF any edge's location is Interior for the side, side location = Interior
  41170. ELSE IF there is at least one Exterior attribute, side location = Exterior
  41171. ELSE side location = Null
  41172. Note that it is possible for two sides to have apparently contradictory information
  41173. i.e. one edge side may indicate that it is in the interior of a point, while
  41174. another edge side may indicate the exterior of the same point. This is
  41175. not an incompatibility - GeometryCollections may contain two Polygons that touch
  41176. along an edge. This is the reason for Interior-primacy rule above - it
  41177. results in the summary label having the Geometry interior on both sides.
  41178. </summary>
  41179. <param name="geomIndex"></param>
  41180. <param name="side"></param>
  41181. </member>
  41182. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  41183. <summary>
  41184. Update the IM with the contribution for the computed label for the EdgeStubs.
  41185. </summary>
  41186. <param name="im"></param>
  41187. </member>
  41188. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundle.Write(System.IO.StreamWriter)">
  41189. <summary>
  41190. </summary>
  41191. <param name="outstream"></param>
  41192. </member>
  41193. <member name="T:NetTopologySuite.Operation.Relate.EdgeEndBundleStar">
  41194. <summary>
  41195. An ordered list of <c>EdgeEndBundle</c>s around a <c>RelateNode</c>.
  41196. They are maintained in CCW order (starting with the positive x-axis) around the node
  41197. for efficient lookup and topology building.
  41198. </summary>
  41199. </member>
  41200. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundleStar.Insert(NetTopologySuite.GeometriesGraph.EdgeEnd)">
  41201. <summary>
  41202. Insert a EdgeEnd in order in the list.
  41203. If there is an existing EdgeStubBundle which is parallel, the EdgeEnd is
  41204. added to the bundle. Otherwise, a new EdgeEndBundle is created
  41205. to contain the EdgeEnd.
  41206. </summary>
  41207. <param name="e"></param>
  41208. </member>
  41209. <member name="M:NetTopologySuite.Operation.Relate.EdgeEndBundleStar.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  41210. <summary>
  41211. Update the IM with the contribution for the EdgeStubs around the node.
  41212. </summary>
  41213. <param name="im"></param>
  41214. </member>
  41215. <member name="T:NetTopologySuite.Operation.Relate.RelateComputer">
  41216. <summary>
  41217. Computes the topological relationship between two Geometries.
  41218. RelateComputer does not need to build a complete graph structure to compute
  41219. the IntersectionMatrix. The relationship between the geometries can
  41220. be computed by simply examining the labelling of edges incident on each node.
  41221. RelateComputer does not currently support arbitrary GeometryCollections.
  41222. This is because GeometryCollections can contain overlapping Polygons.
  41223. In order to correct compute relate on overlapping Polygons, they
  41224. would first need to be noded and merged (if not explicitly, at least
  41225. implicitly).
  41226. </summary>
  41227. </member>
  41228. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph[])">
  41229. <summary>
  41230. </summary>
  41231. <param name="arg"></param>
  41232. </member>
  41233. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeIM">
  41234. <summary>
  41235. </summary>
  41236. <returns></returns>
  41237. </member>
  41238. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.InsertEdgeEnds(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
  41239. <summary>
  41240. </summary>
  41241. <param name="ee"></param>
  41242. </member>
  41243. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeProperIntersectionIM(NetTopologySuite.GeometriesGraph.Index.SegmentIntersector,NetTopologySuite.Geometries.IntersectionMatrix)">
  41244. <summary>
  41245. </summary>
  41246. <param name="intersector"></param>
  41247. <param name="im"></param>
  41248. </member>
  41249. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.CopyNodesAndLabels(System.Int32)">
  41250. <summary>
  41251. Copy all nodes from an arg point into this graph.
  41252. The node label in the arg point overrides any previously computed
  41253. label for that argIndex.
  41254. (E.g. a node may be an intersection node with
  41255. a computed label of Boundary,
  41256. but in the original arg Geometry it is actually
  41257. in the interior due to the Boundary Determination Rule)
  41258. </summary>
  41259. <param name="argIndex"></param>
  41260. </member>
  41261. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeIntersectionNodes(System.Int32)">
  41262. <summary>
  41263. Insert nodes for all intersections on the edges of a Geometry.
  41264. Label the created nodes the same as the edge label if they do not already have a label.
  41265. This allows nodes created by either self-intersections or
  41266. mutual intersections to be labelled.
  41267. Endpoint nodes will already be labelled from when they were inserted.
  41268. </summary>
  41269. <param name="argIndex"></param>
  41270. </member>
  41271. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIntersectionNodes(System.Int32)">
  41272. <summary>
  41273. For all intersections on the edges of a Geometry,
  41274. label the corresponding node IF it doesn't already have a label.
  41275. This allows nodes created by either self-intersections or
  41276. mutual intersections to be labelled.
  41277. Endpoint nodes will already be labelled from when they were inserted.
  41278. </summary>
  41279. <param name="argIndex"></param>
  41280. </member>
  41281. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.ComputeDisjointIM(NetTopologySuite.Geometries.IntersectionMatrix,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41282. <summary>
  41283. If the Geometries are disjoint, we need to enter their dimension and
  41284. boundary dimension in the Ext rows in the IM
  41285. </summary>
  41286. <param name="im">An intersection matrix</param>
  41287. <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
  41288. </member>
  41289. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.GetBoundaryDim(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41290. <summary>
  41291. Compute the IM entry for the intersection of the boundary
  41292. of a geometry with the Exterior.
  41293. This is the nominal dimension of the boundary
  41294. unless the boundary is empty, in which case it is <see cref="F:NetTopologySuite.Geometries.Dimension.False"/>.
  41295. For linear geometries the Boundary Node Rule determines
  41296. whether the boundary is empty.
  41297. </summary>
  41298. <param name="geom">The geometry providing the boundary</param>
  41299. <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
  41300. <returns>The IM dimension entry</returns>
  41301. </member>
  41302. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelNodeEdges">
  41303. <summary>
  41304. </summary>
  41305. </member>
  41306. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.UpdateIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  41307. <summary>
  41308. Update the IM with the sum of the IMs for each component.
  41309. </summary>
  41310. <param name="im"></param>
  41311. </member>
  41312. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedEdges(System.Int32,System.Int32)">
  41313. <summary>
  41314. Processes isolated edges by computing their labelling and adding them
  41315. to the isolated edges list.
  41316. Isolated edges are guaranteed not to touch the boundary of the target (since if they
  41317. did, they would have caused an intersection to be computed and hence would
  41318. not be isolated).
  41319. </summary>
  41320. <param name="thisIndex"></param>
  41321. <param name="targetIndex"></param>
  41322. </member>
  41323. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedEdge(NetTopologySuite.GeometriesGraph.Edge,System.Int32,NetTopologySuite.Geometries.Geometry)">
  41324. <summary>
  41325. Label an isolated edge of a graph with its relationship to the target point.
  41326. If the target has dim 2 or 1, the edge can either be in the interior or the exterior.
  41327. If the target has dim 0, the edge must be in the exterior.
  41328. </summary>
  41329. <param name="e"></param>
  41330. <param name="targetIndex"></param>
  41331. <param name="target"></param>
  41332. </member>
  41333. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedNodes">
  41334. <summary>
  41335. Isolated nodes are nodes whose labels are incomplete
  41336. (e.g. the location for one Geometry is null).
  41337. This is the case because nodes in one graph which don't intersect
  41338. nodes in the other are not completely labelled by the initial process
  41339. of adding nodes to the nodeList.
  41340. To complete the labelling we need to check for nodes that lie in the
  41341. interior of edges, and in the interior of areas.
  41342. </summary>
  41343. </member>
  41344. <member name="M:NetTopologySuite.Operation.Relate.RelateComputer.LabelIsolatedNode(NetTopologySuite.GeometriesGraph.Node,System.Int32)">
  41345. <summary>
  41346. Label an isolated node with its relationship to the target point.
  41347. </summary>
  41348. <param name="n"></param>
  41349. <param name="targetIndex"></param>
  41350. </member>
  41351. <member name="T:NetTopologySuite.Operation.Relate.RelateNode">
  41352. <summary>
  41353. A RelateNode is a Node that maintains a list of EdgeStubs
  41354. for the edges that are incident on it.
  41355. </summary>
  41356. </member>
  41357. <member name="M:NetTopologySuite.Operation.Relate.RelateNode.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.GeometriesGraph.EdgeEndStar)">
  41358. <summary>
  41359. </summary>
  41360. <param name="coord"></param>
  41361. <param name="edges"></param>
  41362. </member>
  41363. <member name="M:NetTopologySuite.Operation.Relate.RelateNode.ComputeIM(NetTopologySuite.Geometries.IntersectionMatrix)">
  41364. <summary>
  41365. Update the IM with the contribution for this component.
  41366. A component only contributes if it has a labelling for both parent geometries.
  41367. </summary>
  41368. </member>
  41369. <member name="M:NetTopologySuite.Operation.Relate.RelateNode.UpdateIMFromEdges(NetTopologySuite.Geometries.IntersectionMatrix)">
  41370. <summary>
  41371. Update the IM with the contribution for the EdgeEnds incident on this node.
  41372. </summary>
  41373. <param name="im"></param>
  41374. </member>
  41375. <member name="T:NetTopologySuite.Operation.Relate.RelateNodeFactory">
  41376. <summary>
  41377. Used by the <c>NodeMap</c> in a <c>RelateNodeGraph</c> to create <c>RelateNode</c>s.
  41378. </summary>
  41379. </member>
  41380. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeFactory.CreateNode(NetTopologySuite.Geometries.Coordinate)">
  41381. <summary>
  41382. </summary>
  41383. <param name="coord"></param>
  41384. <returns></returns>
  41385. </member>
  41386. <member name="T:NetTopologySuite.Operation.Relate.RelateNodeGraph">
  41387. <summary>
  41388. Implements the simple graph of Nodes and EdgeEnd which is all that is
  41389. required to determine topological relationships between Geometries.
  41390. Also supports building a topological graph of a single Geometry, to
  41391. allow verification of valid topology.
  41392. It is not necessary to create a fully linked
  41393. PlanarGraph to determine relationships, since it is sufficient
  41394. to know how the Geometries interact locally around the nodes.
  41395. In fact, this is not even feasible, since it is not possible to compute
  41396. exact intersection points, and hence the topology around those nodes
  41397. cannot be computed robustly.
  41398. The only Nodes that are created are for improper intersections;
  41399. that is, nodes which occur at existing vertices of the Geometries.
  41400. Proper intersections (e.g. ones which occur between the interior of line segments)
  41401. have their topology determined implicitly, without creating a Node object
  41402. to represent them.
  41403. </summary>
  41404. </member>
  41405. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.GetNodeEnumerator">
  41406. <summary>
  41407. </summary>
  41408. <returns></returns>
  41409. </member>
  41410. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.Build(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  41411. <summary>
  41412. </summary>
  41413. <param name="geomGraph"></param>
  41414. </member>
  41415. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.ComputeIntersectionNodes(NetTopologySuite.GeometriesGraph.GeometryGraph,System.Int32)">
  41416. <summary>
  41417. Insert nodes for all intersections on the edges of a Geometry.
  41418. Label the created nodes the same as the edge label if they do not already have a label.
  41419. This allows nodes created by either self-intersections or
  41420. mutual intersections to be labelled.
  41421. Endpoint nodes will already be labelled from when they were inserted.
  41422. Precondition: edge intersections have been computed.
  41423. </summary>
  41424. <param name="geomGraph"></param>
  41425. <param name="argIndex"></param>
  41426. </member>
  41427. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.CopyNodesAndLabels(NetTopologySuite.GeometriesGraph.GeometryGraph,System.Int32)">
  41428. <summary>
  41429. Copy all nodes from an arg point into this graph.
  41430. The node label in the arg point overrides any previously computed
  41431. label for that argIndex.
  41432. (E.g. a node may be an intersection node with
  41433. a computed label of Boundary,
  41434. but in the original arg Geometry it is actually
  41435. in the interior due to the Boundary Determination Rule).
  41436. </summary>
  41437. <param name="geomGraph"></param>
  41438. <param name="argIndex"></param>
  41439. </member>
  41440. <member name="M:NetTopologySuite.Operation.Relate.RelateNodeGraph.InsertEdgeEnds(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeEnd})">
  41441. <summary>
  41442. </summary>
  41443. <param name="ee"></param>
  41444. </member>
  41445. <member name="T:NetTopologySuite.Operation.Relate.RelateOp">
  41446. <summary>
  41447. Implements the SFS <c>relate()</c> generalized spatial predicate on two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  41448. <br/>
  41449. The class supports specifying a custom <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  41450. to be used during the relate computation.
  41451. </summary>
  41452. <remarks>
  41453. If named spatial predicates are used on the result <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/>
  41454. of the RelateOp, the result may or not be affected by the
  41455. choice of <tt>BoundaryNodeRule</tt>, depending on the exact nature of the pattern.
  41456. For instance, <see cref="M:NetTopologySuite.Geometries.IntersectionMatrix.IsIntersects"/> is insensitive
  41457. to the choice of <tt>BoundaryNodeRule</tt>,
  41458. whereas <see cref="M:NetTopologySuite.Geometries.IntersectionMatrix.IsTouches(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)"/> is affected by the rule chosen.
  41459. <para/>
  41460. <b>Note:</b> custom Boundary Node Rules do not (currently)
  41461. affect the results of other <see cref="T:NetTopologySuite.Geometries.Geometry"/> methods (such
  41462. as <see cref="P:NetTopologySuite.Geometries.Geometry.Boundary"/>. The results of
  41463. these methods may not be consistent with the relationship computed by
  41464. a custom Boundary Node Rule.
  41465. </remarks>
  41466. </member>
  41467. <member name="M:NetTopologySuite.Operation.Relate.RelateOp.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  41468. <summary>
  41469. Computes the <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/> for the spatial relationship
  41470. between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the default (OGC SFS) Boundary Node Rule
  41471. </summary>
  41472. <param name="a">A geometry to test</param>
  41473. <param name="b">A geometry to test</param>
  41474. <returns>The <c>IntersectionMatrix</c> for the spatial relationship between the geometries</returns>
  41475. </member>
  41476. <member name="M:NetTopologySuite.Operation.Relate.RelateOp.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41477. <summary>
  41478. Computes the <see cref="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix"/> for the spatial relationship
  41479. between two <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the specified Boundary Node Rule
  41480. </summary>
  41481. <param name="a">A geometry to test</param>
  41482. <param name="b">A geometry to test</param>
  41483. <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
  41484. <returns>The <c>IntersectionMatrix</c> for the spatial relationship between the geometries</returns>
  41485. </member>
  41486. <member name="M:NetTopologySuite.Operation.Relate.RelateOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  41487. <summary>
  41488. Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
  41489. </summary>
  41490. <param name="g0">a Geometry to relate</param>
  41491. <param name="g1">another Geometry to relate</param>
  41492. </member>
  41493. <member name="M:NetTopologySuite.Operation.Relate.RelateOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41494. <summary>
  41495. Creates a new Relate operation, using the default (OGC SFS) Boundary Node Rule.
  41496. </summary>
  41497. <param name="g0">a Geometry to relate</param>
  41498. <param name="g1">another Geometry to relate</param>
  41499. <param name="boundaryNodeRule">The Boundary Node Rule to use</param>
  41500. </member>
  41501. <member name="P:NetTopologySuite.Operation.Relate.RelateOp.IntersectionMatrix">
  41502. <summary>
  41503. Gets the IntersectionMatrix for the spatial relationship
  41504. between the input geometries.
  41505. </summary>
  41506. </member>
  41507. <member name="T:NetTopologySuite.Operation.RelateNG.AdjacentEdgeLocator">
  41508. <summary>
  41509. Determines the location for a point which is known to lie
  41510. on at least one edge of a set of polygons.
  41511. This provides the union-semantics for determining
  41512. point location in a GeometryCollection, which may
  41513. have polygons with adjacent edges which are effectively
  41514. in the interior of the geometry.
  41515. Note that it is also possible to have adjacent edges which
  41516. lie on the boundary of the geometry
  41517. (e.g. a polygon contained within another polygon with adjacent edges).
  41518. </summary>
  41519. <author>Martin Davis</author>
  41520. </member>
  41521. <member name="T:NetTopologySuite.Operation.RelateNG.BasicPredicate">
  41522. <summary>
  41523. The base class for relate topological predicates
  41524. with a boolean value.
  41525. Implements tri-state logic for the predicate value,
  41526. to detect when the final value has been determined.
  41527. </summary>
  41528. <author>Martin Davis</author>
  41529. </member>
  41530. <member name="M:NetTopologySuite.Operation.RelateNG.BasicPredicate.IsIntersection(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location)">
  41531. <summary>
  41532. Tests if two geometries intersect
  41533. based on an interaction at given locations.
  41534. </summary>
  41535. <param name="locA">The location on geometry A</param>
  41536. <param name="locB">The location on geometry B</param>
  41537. <returns><c>true</c> if the geometries intersect</returns>
  41538. </member>
  41539. <member name="M:NetTopologySuite.Operation.RelateNG.BasicPredicate.SetValue(System.Boolean)">
  41540. <summary>
  41541. Updates the predicate value to the given state
  41542. if it is currently unknown.
  41543. </summary>
  41544. <param name="val">The predicate value to update</param>
  41545. </member>
  41546. <member name="T:NetTopologySuite.Operation.RelateNG.DimensionLocation">
  41547. <summary>
  41548. Codes which combine a geometry <see cref="T:NetTopologySuite.Geometries.Dimension"/> and a <see cref="T:NetTopologySuite.Geometries.Location"/>
  41549. </summary>
  41550. <author>Martin Davis</author>
  41551. </member>
  41552. <member name="T:NetTopologySuite.Operation.RelateNG.EdgeSegmentIntersector">
  41553. <summary>
  41554. Tests segments of <see cref="T:NetTopologySuite.Operation.RelateNG.RelateSegmentString"/>s
  41555. and if they intersect adds the intersection(s)
  41556. to the <see cref="T:NetTopologySuite.Operation.RelateNG.TopologyComputer"/>.
  41557. </summary>
  41558. <author>Martin Davis</author>
  41559. </member>
  41560. <member name="T:NetTopologySuite.Operation.RelateNG.IMPatternMatcher">
  41561. <summary>
  41562. A predicate that matches a DE-9IM pattern.
  41563. <para/>
  41564. <h3>FUTURE WORK</h3>
  41565. <para/>
  41566. Extend the expressiveness of the DE-9IM pattern language to allow:
  41567. <list type="bullet">
  41568. <item><description>Combining patterns via disjunction using "|".</description></item>
  41569. <item><description>Limiting patterns via geometry dimension.
  41570. A dimension limit specifies the allowable dimensions
  41571. for both or individual geometries as [d] or[ab] or[ab; cd]</description></item>
  41572. </list>
  41573. </summary>
  41574. <author>Martin Davis</author>
  41575. </member>
  41576. <member name="T:NetTopologySuite.Operation.RelateNG.IMPredicate">
  41577. <summary>
  41578. A base class for predicates which are
  41579. determined using entries in a <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>.
  41580. </summary>
  41581. <author>Martin Davis</author>
  41582. </member>
  41583. <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.dimA">
  41584. <summary>
  41585. Dimenension of geometry A
  41586. </summary>
  41587. </member>
  41588. <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.dimB">
  41589. <summary>
  41590. Dimenension of geometry B
  41591. </summary>
  41592. </member>
  41593. <member name="F:NetTopologySuite.Operation.RelateNG.IMPredicate.intMatrix">
  41594. <summary>
  41595. The intersection matrix
  41596. </summary>
  41597. </member>
  41598. <member name="P:NetTopologySuite.Operation.RelateNG.IMPredicate.IsDetermined">
  41599. <summary>
  41600. Tests whether predicate evaluation can be short-circuited
  41601. due to the current state of the matrix providing
  41602. enough information to determine the predicate value.
  41603. <para/>
  41604. If this value is true then <see cref="P:NetTopologySuite.Operation.RelateNG.IMPredicate.ValueIM"/>
  41605. must provide the correct result of the predicate.
  41606. </summary>
  41607. </member>
  41608. <member name="M:NetTopologySuite.Operation.RelateNG.IMPredicate.IntersectsExteriorOf(System.Boolean)">
  41609. <summary>
  41610. Tests whether the exterior of the specified input geometry
  41611. is intersected by any part of the other input.
  41612. </summary>
  41613. <param name="isA">A flag defining the input geometry</param>
  41614. <returns><c>true</c> if the input geometry exterior is intersected</returns>
  41615. </member>
  41616. <member name="M:NetTopologySuite.Operation.RelateNG.IMPredicate.Finish">
  41617. <summary>
  41618. Sets the final value based on the state of the IM.
  41619. </summary>
  41620. </member>
  41621. <member name="P:NetTopologySuite.Operation.RelateNG.IMPredicate.ValueIM">
  41622. <summary>
  41623. Gets the value of the predicate according to the current
  41624. intersection matrix state.
  41625. </summary>
  41626. </member>
  41627. <member name="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern">
  41628. <summary>
  41629. String constants for DE-9IM matrix patterns for topological relationships.
  41630. These can be used with <see cref="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,System.String)"/>
  41631. and <see cref="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)"/>.
  41632. <para/>
  41633. <h3> DE - 9IM Pattern Matching </h3>
  41634. Matrix patterns are specified as a 9 - character string
  41635. containing the pattern symbols for the DE-9IM 3x3 matrix entries,
  41636. listed row - wise.
  41637. The pattern symbols are:
  41638. <list type="table">
  41639. <listheader><term>Code</term><description>Description</description></listheader>
  41640. <item><term>0</term><description>topological interaction has dimension 0</description></item>
  41641. <item><term>1</term><description>topological interaction has dimension 1</description></item>
  41642. <item><term>2</term><description>topological interaction has dimension 2</description></item>
  41643. <item><term>F</term><description>no topological interaction</description></item>
  41644. <item><term>T</term><description>topological interaction of any dimension</description></item>
  41645. <item><term>*</term><description>any topological interaction is allowed, including none</description></item>
  41646. </list>
  41647. </summary>
  41648. <author>Martin Davis</author>
  41649. </member>
  41650. <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.Adjacent">
  41651. <summary>
  41652. A DE-9IM pattern to detect whether two polygonal geometries are adjacent along
  41653. an edge, but do not overlap.
  41654. </summary>
  41655. </member>
  41656. <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.ContainsProperly">
  41657. <summary>
  41658. A DE-9IM pattern to detect a geometry which properly contains another
  41659. geometry (i.e. which lies entirely in the interior of the first geometry).
  41660. </summary>
  41661. </member>
  41662. <member name="F:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern.InteriorIntersects">
  41663. <summary>
  41664. A DE-9IM pattern to detect if two geometries intersect in their interiors.
  41665. This can be used to determine if a polygonal coverage contains any overlaps
  41666. (although not whether they are correctly noded).
  41667. </summary>
  41668. </member>
  41669. <member name="T:NetTopologySuite.Operation.RelateNG.LinearBoundary">
  41670. <summary>
  41671. Determines the boundary points of a linear geometry,
  41672. using a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
  41673. </summary>
  41674. <author>Martin Davis</author>
  41675. </member>
  41676. <member name="T:NetTopologySuite.Operation.RelateNG.NodeSection">
  41677. <summary>
  41678. Represents a computed node along with the incident edges on either side of
  41679. it (if they exist).
  41680. <para/>
  41681. This captures the information about a node in a geometry component
  41682. required to determine the component's contribution to the node topology.
  41683. A node in an area geometry always has edges on both sides of the node.
  41684. A node in a linear geometry may have one or other incident edge missing, if
  41685. the node occurs at an endpoint of the line.
  41686. The edges of an area node are assumed to be provided
  41687. with CW-shell orientation (as per JTS and NTS norm).
  41688. This must be enforced by the caller.
  41689. </summary>
  41690. <author>Martin Davis</author>
  41691. </member>
  41692. <member name="T:NetTopologySuite.Operation.RelateNG.NodeSection.EdgeAngleComparator">
  41693. <summary>
  41694. Compares sections by the angle the entering edge makes with the positive X axis.
  41695. </summary>
  41696. </member>
  41697. <member name="P:NetTopologySuite.Operation.RelateNG.NodeSection.Polygonal">
  41698. <summary>
  41699. Gets the polygon this section is part of.
  41700. Will be <c>null</c> if section is not on a polygon boundary.
  41701. </summary>
  41702. </member>
  41703. <member name="M:NetTopologySuite.Operation.RelateNG.NodeSection.CompareTo(NetTopologySuite.Operation.RelateNG.NodeSection)">
  41704. <summary>
  41705. Compare node sections by parent geometry, dimension, element id and ring id,
  41706. and edge vertices.
  41707. Sections are assumed to be at the same node point.</summary>
  41708. </member>
  41709. <member name="M:NetTopologySuite.Operation.RelateNG.NodeSections.PrepareSections">
  41710. <summary>
  41711. Sorts the sections so that:
  41712. <list type="bullet">
  41713. <item><description>lines are before areas</description></item>
  41714. <item><description>edges from the same polygon are contiguous</description></item>
  41715. </list>
  41716. </summary>
  41717. </member>
  41718. <member name="T:NetTopologySuite.Operation.RelateNG.PolygonNodeConverter">
  41719. <summary>
  41720. Converts the node sections at a polygon node where
  41721. a shell and one or more holes touch, or two or more holes touch.
  41722. This converts the node topological structure from
  41723. the OGC "touching-rings" (AKA "minimal-ring") model to the equivalent "self-touch"
  41724. (AKA "inverted/exverted ring" or "maximal ring") model.
  41725. In the "self-touch" model the converted NodeSection corners enclose areas
  41726. which all lies inside the polygon
  41727. (i.e. they does not enclose hole edges).
  41728. This allows {@link RelateNode} to use simple area-additive semantics
  41729. for adding edges and propagating edge locations.
  41730. <para/>
  41731. The input node sections are assumed to have canonical orientation
  41732. (CW shells and CCW holes).
  41733. The arrangement of shells and holes must be topologically valid.
  41734. Specifically, the node sections must not cross or be collinear.
  41735. <para/>
  41736. This supports multiple shell-shell touches
  41737. (including ones containing holes), and hole-hole touches,
  41738. This generalizes the relate algorithm to support
  41739. both the OGC model and the self-touch model.
  41740. </summary>
  41741. <author>Martin Davis</author>
  41742. <seealso cref="T:NetTopologySuite.Operation.RelateNG.RelateNode"/>
  41743. </member>
  41744. <member name="M:NetTopologySuite.Operation.RelateNG.PolygonNodeConverter.Convert(System.Collections.Generic.List{NetTopologySuite.Operation.RelateNG.NodeSection})">
  41745. <summary>
  41746. Converts a list of sections of valid polygon rings
  41747. to have "self-touching" structure.
  41748. There are the same number of output sections as input ones.
  41749. </summary>
  41750. <param name="polySections">The original sections</param>
  41751. <returns>The converted sections</returns>
  41752. </member>
  41753. <member name="F:NetTopologySuite.Operation.RelateNG.RelateEdge.DIM_UNKNOWN">
  41754. <summary>
  41755. The dimension of an input geometry which is not known
  41756. </summary>
  41757. </member>
  41758. <member name="F:NetTopologySuite.Operation.RelateNG.RelateEdge.LOC_UNKNOWN">
  41759. <summary>
  41760. Indicates that the location is currently unknown
  41761. </summary>
  41762. </member>
  41763. <member name="M:NetTopologySuite.Operation.RelateNG.RelateEdge.MergeDimEdgeLoc(System.Boolean,NetTopologySuite.Geometries.Location)">
  41764. <summary>
  41765. Area edges override Line edges.
  41766. Merging edges of same dimension is a no-op for
  41767. the dimension and on location.
  41768. But merging an area edge into a line edge
  41769. sets the dimension to A and the location to BOUNDARY.
  41770. </summary>
  41771. </member>
  41772. <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsZeroLength(NetTopologySuite.Geometries.Geometry)">
  41773. <summary>
  41774. Tests if all geometry linear elements are zero-length.
  41775. For efficiency the test avoids computing actual length.
  41776. </summary>
  41777. </member>
  41778. <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.DimensionReal">
  41779. <summary>
  41780. Gets the actual non-empty dimension of the geometry.
  41781. Zero-length <c>LineString</c>s are treated as <c>Point</c>s.
  41782. </summary>
  41783. </member>
  41784. <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.LocateAreaVertex(NetTopologySuite.Geometries.Coordinate)">
  41785. <summary>
  41786. Locates a vertex of a polygon.
  41787. <para/>
  41788. A vertex of a <c>Polygon</c> or <c>MultiPolygon</c> is on
  41789. the <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
  41790. But a vertex of an overlapped polygon in a <c>GeometryCollection</c>
  41791. may be in the <see cref="F:NetTopologySuite.Geometries.Location.Interior"/>.
  41792. </summary>
  41793. <param name="pt">The polygon vertex</param>
  41794. <returns>The location of the vertex</returns>
  41795. </member>
  41796. <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsSelfNodingRequired">
  41797. <summary>
  41798. Gets a value that indicates whether the geometry requires self-noding
  41799. for correct evaluation of specific spatial predicates.
  41800. Self-noding is required for geometries which may self-cross
  41801. - i.e.lines, and overlapping elements in GeometryCollections.
  41802. Self-noding is not required for polygonal geometries,
  41803. since they can only touch at vertices.
  41804. </summary>
  41805. </member>
  41806. <member name="P:NetTopologySuite.Operation.RelateNG.RelateGeometry.IsPolygonal">
  41807. <summary>
  41808. Tests whether the geometry has polygonal topology.
  41809. This is not the case if it is a GeometryCollection
  41810. containing more than one polygon (since they may overlap
  41811. or be adjacent).
  41812. The significance is that polygonal topology allows more assumptions
  41813. about the location of boundary vertices.
  41814. </summary>
  41815. </member>
  41816. <member name="M:NetTopologySuite.Operation.RelateNG.RelateGeometry.ExtractSegmentStrings(System.Boolean,NetTopologySuite.Geometries.Envelope)">
  41817. <summary>
  41818. Extract RelateSegmentStrings from the geometry which
  41819. intersect a given envelope.
  41820. If the envelope is null all edges are extracted.
  41821. </summary>
  41822. <param name="isA">Flag indicating if this </param>
  41823. <param name="env"></param>
  41824. <returns>A list of <c>RelateSegmentString</c>s</returns>
  41825. </member>
  41826. <member name="T:NetTopologySuite.Operation.RelateNG.RelateMatrixPredicate">
  41827. <summary>
  41828. Evaluates the full relate <see cref="T:NetTopologySuite.Geometries.IntersectionMatrix"/>.
  41829. </summary>
  41830. <author>Martin Davis</author>
  41831. </member>
  41832. <member name="P:NetTopologySuite.Operation.RelateNG.RelateMatrixPredicate.IM">
  41833. <summary>
  41834. Gets the current state of the IM matrix (which may only be partially complete).
  41835. </summary>
  41836. </member>
  41837. <member name="T:NetTopologySuite.Operation.RelateNG.RelateNG">
  41838. <summary>
  41839. Computes the value of topological predicates between two geometries based on the
  41840. <a href = "https://en.wikipedia.org/wiki/DE-9IM" > Dimensionally - Extended 9-Intersection Model</a>(DE-9IM).
  41841. Standard and custom topological predicates are provided by <see cref="T:NetTopologySuite.Operation.RelateNG.RelatePredicate"/>.
  41842. <para/>
  41843. The RelateNG algorithm has the following capabilities:
  41844. <list type="number">
  41845. <item><description>Efficient short-circuited evaluation of topological predicates
  41846. (including matching custom DE-9IM matrix patterns)</description></item>
  41847. <item><description>Optimized repeated evaluation of predicates against a single geometry
  41848. via cached spatial indexes (AKA "prepared mode")</description></item>
  41849. <item><description>Robust computation (only point-local topology is required,
  41850. so invalid geometry topology does not cause failures)</description></item>
  41851. <item><description><see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> inputs containing mixed types and overlapping polygons
  41852. are supported, using <i>union semantics</i>.</description></item>
  41853. <item><description>Zero - length LineStrings are treated as being topologically identical to Points.</description></item>
  41854. <item><description>Support for <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>s.</description></item>
  41855. </list>
  41856. See <see cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
  41857. for a description of DE - 9IM patterns.
  41858. If not specified, the standard <see cref="T:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryNodeRule"/> is used.
  41859. RelateNG operates in 2D only; it ignores any Z ordinates.
  41860. This implementation replaces <see cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
  41861. and <see cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>.
  41862. <h3>FUTURE WORK</h3>
  41863. <list type="bullet">
  41864. <item><description>Support for a distance tolerance to provide "approximate" predicate evaluation</description></item>
  41865. </list>
  41866. </summary>
  41867. <author>Martin Davis</author>
  41868. <seealso cref="T:NetTopologySuite.Operation.Relate.RelateOp"/>
  41869. <seealso cref="T:NetTopologySuite.Geometries.Prepared.IPreparedGeometry"/>
  41870. </member>
  41871. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
  41872. <summary>
  41873. Tests whether the topological relationship between two geometries
  41874. satisfies a topological predicate.
  41875. </summary>
  41876. <param name="a">The A input geometry</param>
  41877. <param name="b">The B input geometry</param>
  41878. <param name="pred">The topological predicate</param>
  41879. <returns><c>true</c> if the topological relationship is satisfied</returns>
  41880. </member>
  41881. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41882. <summary>
  41883. Tests whether the topological relationship between two geometries
  41884. satisfies a topological predicate,
  41885. using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.</summary>
  41886. <param name="a">The A input geometry</param>
  41887. <param name="b">The B input geometry</param>
  41888. <param name="pred">The topological predicate</param>
  41889. <param name="bnRule">The Boundary Node Rule to use</param>
  41890. <returns><c>true</c> if the topological relationship is satisfied</returns>
  41891. </member>
  41892. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,System.String)">
  41893. <summary>
  41894. Tests whether the topological relationship to a geometry
  41895. matches a DE-9IM matrix pattern.
  41896. </summary>
  41897. <param name="a">The A input geometry</param>
  41898. <param name="b">The B input geometry</param>
  41899. <param name="imPattern">The DE-9IM pattern to match</param>
  41900. <returns><c>true</c> if the geometries relationship matches the DE-9IM pattern</returns>
  41901. <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
  41902. </member>
  41903. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  41904. <summary>
  41905. Computes the DE-9IM matrix
  41906. for the topological relationship between two geometries.
  41907. </summary>
  41908. <param name="a">The A input geometry</param>
  41909. <param name="b">The B input geometry</param>
  41910. <returns>The DE-9IM matrix for the topological relationship</returns>
  41911. </member>
  41912. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Relate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41913. <summary>
  41914. Computes the DE-9IM matrix
  41915. for the topological relationship between two geometries.
  41916. </summary>
  41917. <param name="a">The A input geometry</param>
  41918. <param name="b">The B input geometry</param>
  41919. <param name="bnRule">The Boundary Node Rule to use</param>
  41920. <returns>The DE-9IM matrix for the topological relationship</returns>
  41921. </member>
  41922. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Prepare(NetTopologySuite.Geometries.Geometry)">
  41923. <summary>
  41924. Creates a prepared RelateNG instance to optimize the
  41925. evaluation of relationships against a single geometry.
  41926. </summary>
  41927. <param name="a">The A input geometry</param>
  41928. <returns>A prepared instance</returns>
  41929. </member>
  41930. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Prepare(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  41931. <summary>
  41932. Creates a prepared RelateNG instance to optimize the
  41933. computation of predicates against a single geometry,
  41934. using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>.
  41935. </summary>
  41936. <param name="a">The A input geometry</param>
  41937. <param name="bnRule">The Boundary Node Rule to use</param>
  41938. <returns>A prepared instance</returns>
  41939. </member>
  41940. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry)">
  41941. <summary>
  41942. Computes the DE-9IM matrix for the topological relationship to a geometry.
  41943. </summary>
  41944. <param name="b">The B geometry</param>
  41945. <returns>the DE-9IM matrix</returns>
  41946. </member>
  41947. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,System.String)">
  41948. <summary>
  41949. Tests whether the topological relationship to a geometry
  41950. matches a DE-9IM matrix pattern.</summary>
  41951. <param name="b">The B geometry</param>
  41952. <param name="imPattern"></param>
  41953. <returns><c>true</c> if the geometry's topological relationship matches the DE-9IM pattern</returns>
  41954. <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
  41955. </member>
  41956. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.Evaluate(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
  41957. <summary>
  41958. Tests whether the topological relationship to a geometry
  41959. satisfies a topology predicate.
  41960. </summary>
  41961. <param name="b">The B geometry</param>
  41962. <param name="predicate">The topological predicate</param>
  41963. <returns><c>true</c> if the predicate is satisfied</returns>
  41964. </member>
  41965. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.ComputePP(NetTopologySuite.Operation.RelateNG.RelateGeometry,NetTopologySuite.Operation.RelateNG.TopologyComputer)">
  41966. <summary>
  41967. An optimized algorithm for evaluating P/P cases.
  41968. It tests one point set against the other.
  41969. </summary>
  41970. </member>
  41971. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNG.ComputeLineEnd(NetTopologySuite.Operation.RelateNG.RelateGeometry,System.Boolean,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Operation.RelateNG.RelateGeometry,NetTopologySuite.Operation.RelateNG.TopologyComputer)">
  41972. <summary>
  41973. Compute the topology of a line endpoint.
  41974. Also reports if the line end is in the exterior of the target geometry,
  41975. to optimize testing multiple exterior endpoints.
  41976. </summary>
  41977. <param name="geom"></param>
  41978. <param name="isA"></param>
  41979. <param name="pt"></param>
  41980. <param name="geomTarget"></param>
  41981. <param name="topoComputer"></param>
  41982. <returns><c>true</c> if the line endpoint is in the exterior of the target</returns>
  41983. </member>
  41984. <member name="F:NetTopologySuite.Operation.RelateNG.RelateNode._edges">
  41985. <summary>
  41986. A list of the edges around the node in CCW order,
  41987. ordered by their CCW angle with the positive X-axis.
  41988. </summary>
  41989. </member>
  41990. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNode.AddEdge(System.Boolean,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Dimension,System.Boolean)">
  41991. <summary>
  41992. Adds or merges an edge to the node.
  41993. </summary>
  41994. <param name="isA"></param>
  41995. <param name="dirPt"></param>
  41996. <param name="dim">Dimension of the geometry element containing the edge</param>
  41997. <param name="isForward">The direction of the edge</param>
  41998. </member>
  41999. <member name="M:NetTopologySuite.Operation.RelateNG.RelateNode.Finish(System.Boolean,System.Boolean)">
  42000. <summary>
  42001. Computes the final topology for the edges around this node.
  42002. Although nodes lie on the boundary of areas or the interior of lines,
  42003. in a mixed GC they may also lie in the interior of an area.
  42004. This changes the locations of the sides and line to Interior.
  42005. </summary>
  42006. <param name="isAreaInteriorA"><c>true</c> if the node is in the interior of A</param>
  42007. <param name="isAreaInteriorB"><c>true</c> if the node is in the interior of B</param>
  42008. </member>
  42009. <member name="T:NetTopologySuite.Operation.RelateNG.RelatePointLocator">
  42010. <summary>
  42011. Locates a point on a geometry, including mixed-type collections.
  42012. The dimension of the containing geometry element is also determined.
  42013. GeometryCollections are handled with union semantics;
  42014. i.e. the location of a point is that location of that point
  42015. on the union of the elements of the collection.
  42016. <para/>
  42017. Union semantics for GeometryCollections has the following behaviours:
  42018. <list type="number">
  42019. <item><description>For a mixed-dimension (heterogeneous) collection
  42020. a point may lie on two geometry elements with different dimensions.
  42021. In this case the location on the largest-dimension element is reported.</description></item>
  42022. <item><description>For a collection with overlapping or adjacent polygons,
  42023. points on polygon element boundaries may lie in the effective interior
  42024. of the collection geometry.</description></item>
  42025. </list>
  42026. Prepared mode is supported via cached spatial indexes.
  42027. <para/>
  42028. Supports specifying the <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/> to use.
  42029. </summary>
  42030. <author>Martin Davis</author>
  42031. </member>
  42032. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateLineEndWithDim(NetTopologySuite.Geometries.Coordinate)">
  42033. <summary>
  42034. Locates a line endpoint, as a <see cref="T:NetTopologySuite.Operation.RelateNG.DimensionLocation"/>.
  42035. In a mixed-dim GC, the line end point may also lie in an area.
  42036. In this case the area location is reported.
  42037. Otherwise, the dimLoc is either LINE_BOUNDARY
  42038. or LINE_INTERIOR, depending on the endpoint valence
  42039. and the BoundaryNodeRule in place.
  42040. </summary>
  42041. <param name="p">The line end point to locate</param>
  42042. <returns>The dimension and location of the line end point</returns>
  42043. </member>
  42044. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateNode(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  42045. <summary>
  42046. Locates a point which is known to be a node of the geometry
  42047. (i.e. a vertex or on an edge).
  42048. </summary>
  42049. <param name="p">The node point to locate</param>
  42050. <param name="parentPolygonal">The polygon the point is a node of</param>
  42051. <returns>The location of the node point</returns>
  42052. </member>
  42053. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateNodeWithDim(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry)">
  42054. <summary>
  42055. Locates a point which is known to be a node of the geometry,
  42056. as a <see cref="T:NetTopologySuite.Operation.RelateNG.DimensionLocation"/>.
  42057. </summary>
  42058. <param name="p">The node point to locate</param>
  42059. <param name="parentPolygonal">The polygon the point is a node of</param>
  42060. <returns>The dimension and location of the point</returns>
  42061. </member>
  42062. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateWithDim(NetTopologySuite.Geometries.Coordinate)">
  42063. <summary>
  42064. Computes the topological location (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point
  42065. in a Geometry, as well as the dimension of the geometry element the point
  42066. is located in (if not in the Exterior).
  42067. It handles both single-element and multi-element Geometries.
  42068. The algorithm for multi-part Geometries
  42069. takes into account the SFS Boundary Determination Rule.
  42070. </summary>
  42071. <param name="p">The point to locate</param>
  42072. <returns>The <see cref="T:NetTopologySuite.Geometries.Location"/> of the point relative to the input Geometry</returns>
  42073. </member>
  42074. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePointLocator.LocateWithDim(NetTopologySuite.Geometries.Coordinate,System.Boolean,NetTopologySuite.Geometries.Geometry)">
  42075. <summary>
  42076. Computes the topological location (<see cref="T:NetTopologySuite.Geometries.Location"/>) of a single point
  42077. in a Geometry, as well as the dimension of the geometry element the point
  42078. is located in (if not in the Exterior).
  42079. It handles both single-element and multi-element Geometries.
  42080. The algorithm for multi-part Geometries
  42081. takes into account the SFS Boundary Determination Rule.
  42082. </summary>
  42083. <param name="p">The coordinate to locate</param>
  42084. <param name="isNode">A flag indicating whether the coordinate is a node (on an edge) of the geometry</param>
  42085. <param name="parentPolygonal">The polygon the point is a node of</param>
  42086. <returns>The <see cref="T:NetTopologySuite.Geometries.Location"/> and <see cref="T:NetTopologySuite.Geometries.Dimension"/> of the point relative to the input Geometry
  42087. </returns>
  42088. </member>
  42089. <member name="T:NetTopologySuite.Operation.RelateNG.RelatePredicate">
  42090. <summary>
  42091. Creates predicate instances for evaluating OGC-standard named topological relationships.
  42092. Predicates can be evaluated for geometries using <see cref="T:NetTopologySuite.Operation.RelateNG.RelateNG"/>.
  42093. </summary>
  42094. <author>Martin Davis</author>
  42095. </member>
  42096. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects">
  42097. <summary>
  42098. Creates a predicate to determine whether two geometries intersect.
  42099. <para/>
  42100. The <c>Intersects</c> predicate has the following equivalent definitions:
  42101. <list type="bullet">
  42102. <item><description>The two geometries have at least one point in common</description></item>
  42103. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42104. at least one of the patterns
  42105. <list type="bullet">
  42106. <item><description><c>[T********]</c></description></item>
  42107. <item><description><c>[*T*******]</c></description></item>
  42108. <item><description><c>[***T*****]</c></description></item>
  42109. <item><description><c>[****T****]</c></description></item>
  42110. </list>
  42111. <item><description><c>Disjoint() = false</c>
  42112. <br/>(<c>Intersects</c> is the inverse of <c>Disjoint</c>)</description></item></description></item>
  42113. </list>
  42114. </summary>
  42115. <returns>The predicate instance</returns>
  42116. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint"/>
  42117. </member>
  42118. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint">
  42119. <summary>
  42120. Creates a predicate to determine whether two geometries are disjoint.
  42121. <para/>
  42122. The <c>Disjoint</c> predicate has the following equivalent definitions:
  42123. <list type="bullet">
  42124. <item><description>The two geometries have no point in common</description></item>
  42125. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42126. <c>[FF*FF****]</c></description></item>
  42127. <item><description><c>Intersects() = false</c>
  42128. <br/>(<c>Disjoint</c> is the inverse of <c>Intersects</c>)</description></item>
  42129. </list>
  42130. </summary>
  42131. <returns>The predicate instance</returns>
  42132. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects"/>
  42133. </member>
  42134. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains">
  42135. <summary>
  42136. Creates a predicate to determine whether a geometry contains another geometry.
  42137. <para/>
  42138. The <c>Contains</c> predicate has the following equivalent definitions:
  42139. <list type="bullet">
  42140. <item><description>Every point of the other geometry is a point of this geometry,
  42141. and the interiors of the two geometries have at least one point in common.</description></item>
  42142. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42143. the pattern <c>[T*****FF*]</c></description></item>
  42144. <item><description><c>within(B, A) = true </c>
  42145. <br/>(<c> contains </c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within"/>)</description></item>
  42146. </list>
  42147. An implication of the definition is that "Geometries do not
  42148. contain their boundary". In other words, if a geometry A is a subset of
  42149. the points in the boundary of a geometry B, <c>B.contains(A) = false</c>.
  42150. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  42151. For a predicate with similar behavior but avoiding
  42152. this subtle limitation, see <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>.
  42153. </summary>
  42154. <returns>The predicate instance</returns>
  42155. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within"/>
  42156. </member>
  42157. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Within">
  42158. <summary>
  42159. Creates a predicate to determine whether a geometry is within another geometry.
  42160. <para/>
  42161. The <c>Within</c> predicate has the following equivalent definitions:
  42162. <list type="bullet">
  42163. <item><description>Every point of this geometry is a point of the other geometry,
  42164. and the interiors of the two geometries have at least one point in common.</description></item>
  42165. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42166. <c>[T*F**F***]</c></description></item>
  42167. <item><description><c>contains(B, A) = true</c>
  42168. <br/>(<c>Within</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>)</description></item>
  42169. </list>
  42170. An implication of the definition is that
  42171. "The boundary of a Geometry is not within the Geometry".
  42172. In other words, if a geometry A is a subset of
  42173. the points in the boundary of a geometry B, <c>within(B, A) = false</c>
  42174. (As a concrete example, take A to be a LineString which lies in the boundary of a Polygon B.)
  42175. For a predicate with similar behavior but avoiding
  42176. this subtle limitation, see <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>.
  42177. </summary>
  42178. <returns>The predicate instance</returns>
  42179. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>
  42180. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>
  42181. </member>
  42182. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers">
  42183. <summary>
  42184. Creates a predicate to determine whether a geometry covers another geometry.
  42185. <para/>
  42186. The <c>Covers</c> predicate has the following equivalent definitions:
  42187. <list type="bullet">
  42188. <item><description>Every point of the other geometry is a point of this geometry.</description></item>
  42189. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42190. at least one of the following patterns:
  42191. <list type="bullet">
  42192. <item><c><description>[T*****FF*]</description></c></item>
  42193. <item><c><description>[*T****FF*]</description></c></item>
  42194. <item><c><description>[***T**FF*]</description></c></item>
  42195. <item><c><description>[****T*FF*]</description></c></item>
  42196. </list></description></item>
  42197. <item><description><c>CoveredBy(b, a) = true</c>
  42198. <br/>(<c>Covers</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>)</description></item>
  42199. </list>
  42200. If either geometry is empty, the value of this predicate is <c>false</c>.
  42201. <para/>
  42202. This predicate is similar to <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Contains"/>,
  42203. but is more inclusive (i.e. returns <c>true</c> for more cases).
  42204. In particular, unlike <c>Contains</c> it does not distinguish between
  42205. points in the boundary and in the interior of geometries.
  42206. For most cases, <c>Covers</c> should be used in preference to <c>Contains</c>.
  42207. As an added benefit, <c>Covers</c> is more amenable to optimization,
  42208. and hence should be more performant.
  42209. </summary>
  42210. <returns>The predicate instance</returns>
  42211. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy"/>
  42212. </member>
  42213. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.CoveredBy">
  42214. <summary>
  42215. Creates a predicate to determine whether a geometry is covered by another geometry.
  42216. <para/>
  42217. The <c>CoveredBy</c> predicate has the following equivalent definitions:
  42218. <list type="bullet">
  42219. <item><description>Every point of this geometry is a point of the other geometry.</description></item>
  42220. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42221. at least one of the following patterns:
  42222. <list type="bullet">
  42223. <item><description><c>[T*F**F***]</c></description></item>
  42224. <item><description><c>[*TF**F***]</c></description></item>
  42225. <item><description><c>[**FT*F***]</c></description></item>
  42226. <item><description><c>[**F*TF***]</c></description></item>
  42227. </list></description></item>
  42228. <item><description><c>Covers(B, A) = true</c>
  42229. <br/>(<c>CoveredBy</c> is the converse of <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>)</description></item>
  42230. </list>
  42231. If either geometry is empty, the value of this predicate is <c>false</c>.
  42232. <para/>
  42233. This predicate is similar to {@link #within},
  42234. but is more inclusive (i.e. returns <c>true</c> for more cases).
  42235. </summary>
  42236. <returns>The predicate instance</returns>
  42237. <seealso cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Covers"/>
  42238. </member>
  42239. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Crosses">
  42240. <summary>Creates a predicate to determine whether a geometry crosses another geometry.
  42241. <para/>
  42242. The <c>Crosses</c> predicate has the following equivalent definitions:
  42243. <list type="bullet">
  42244. <item><description>The geometries have some but not all interior points in common.</description></item>
  42245. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42246. one of the following patterns:
  42247. <list type="bullet">
  42248. <item><description><c>[T*T******]</c> (for P/L, P/A, and L/A cases)</description></item>
  42249. <item><description><c>[T*****T**]</c> (for L/P, A/P, and A/L cases)</description></item>
  42250. <item><description><c>[0********]</c> (for L/L cases)</description></item>
  42251. </list></description></item>
  42252. </list>
  42253. For the A/A and P/P cases this predicate returns <c>false</c>.
  42254. <para/>
  42255. The SFS defined this predicate only for P/L, P/A, L/L, and L/A cases.
  42256. To make the relation symmetric
  42257. NTS extends the definition to apply to L/P, A/P and A/L cases as well.
  42258. </summary>
  42259. <returns>The crosses predicate</returns>
  42260. </member>
  42261. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.EqualsTopologically">
  42262. <summary>
  42263. Creates a predicate to determine whether two geometries are topologically equal.
  42264. <para/>
  42265. The <c>Equals</c> predicate has the following equivalent definitions:
  42266. <list type="bullet">
  42267. <item><description> The two geometries have at least one point in common,
  42268. and no point of either geometry lies in the exterior of the other geometry.</description></item>
  42269. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42270. the pattern <c>T*F**FFF*</c></description></item></list>
  42271. </summary>
  42272. <returns>The predicate instance</returns>
  42273. </member>
  42274. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Overlaps">
  42275. <summary>
  42276. Creates a predicate to determine whether a geometry overlaps another geometry.
  42277. <para/>
  42278. The <c>Overlaps</c> predicate has the following equivalent definitions:
  42279. <list type="bullet">
  42280. <item><description>The geometries have at least one point each not shared by the other
  42281. (or equivalently neither covers the other),
  42282. they have the same dimension,
  42283. and the intersection of the interiors of the two geometries has
  42284. the same dimension as the geometries themselves.</description></item>
  42285. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42286. <c>[T*T***T**]</c> (for P/P and A/A cases)
  42287. or <c>[1*T***T**]</c> (for L/L cases)</description></item>
  42288. </list>
  42289. If the geometries are of different dimension this predicate returns <c>false</c>.
  42290. This predicate is symmetric.
  42291. </summary>
  42292. <returns>The predicate instance</returns>
  42293. </member>
  42294. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Touches">
  42295. <summary>
  42296. Creates a predicate to determine whether a geometry touches another geometry.
  42297. <para/>
  42298. The <c>Touches</c> predicate has the following equivalent definitions:
  42299. <list type="bullet">
  42300. <item><description>The geometries have at least one point in common,
  42301. but their interiors do not intersect.</description></item>
  42302. <item><description>The DE-9IM Intersection Matrix for the two geometries matches
  42303. at least one of the following patterns
  42304. <list type="bullet">
  42305. <item><description><c>[FT*******]</c></description></item>
  42306. <item><description><c>[F**T*****]</c></description></item>
  42307. <item><description><c>[F***T****]</c></description></item>
  42308. </list></description></item>
  42309. </list>
  42310. If both geometries have dimension 0, the predicate returns <c>false</c>,
  42311. since points have only interiors.
  42312. This predicate is symmetric.
  42313. </summary>
  42314. <returns>The predicate instance</returns>
  42315. </member>
  42316. <member name="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Matches(System.String)">
  42317. <summary>
  42318. Creates a predicate that matches a DE-9IM matrix pattern.
  42319. </summary>
  42320. <param name="imPattern">The pattern to match</param>
  42321. <returns>A predicate that matches the pattern</returns>
  42322. <seealso cref="T:NetTopologySuite.Operation.RelateNG.IntersectionMatrixPattern"/>
  42323. </member>
  42324. <member name="T:NetTopologySuite.Operation.RelateNG.RelateSegmentString">
  42325. <summary>
  42326. Models a linear edge of a <see cref="T:NetTopologySuite.Operation.RelateNG.RelateGeometry"/>.
  42327. </summary>
  42328. <author>Martin Davis</author>
  42329. </member>
  42330. <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.PrevVertex(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  42331. <returns>The previous vertex, or null if none exists</returns>
  42332. </member>
  42333. <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.NextVertex(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  42334. <returns>The previous vertex, or null if none exists</returns>
  42335. </member>
  42336. <member name="M:NetTopologySuite.Operation.RelateNG.RelateSegmentString.IsContainingSegment(System.Int32,NetTopologySuite.Geometries.Coordinate)">
  42337. <summary>
  42338. Tests if a segment intersection point has that segment as its
  42339. canonical containing segment.
  42340. Segments are half-closed, and contain their start point but not the endpoint,
  42341. except for the final segment in a non-closed segment string, which contains
  42342. its endpoint as well.
  42343. This test ensures that vertices are assigned to a unique segment in a segment string.
  42344. In particular, this avoids double-counting intersections which lie exactly
  42345. at segment endpoints.
  42346. </summary>
  42347. <param name="segIndex">The segment the point may lie on</param>
  42348. <param name="pt">The point</param>
  42349. <returns><c>true</c> if the segment contains the point</returns>
  42350. </member>
  42351. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.InitExteriorDims">
  42352. <summary>
  42353. Determine a priori partial EXTERIOR topology based on dimensions.
  42354. </summary>
  42355. </member>
  42356. <member name="P:NetTopologySuite.Operation.RelateNG.TopologyComputer.IsSelfNodingRequired">
  42357. <summary>
  42358. Indicates whether the input geometries require self-noding
  42359. for correct evaluation of specific spatial predicates.
  42360. Self-noding is required for geometries which may self-cross
  42361. - i.e.lines, and overlapping polygons in GeometryCollections.
  42362. Self-noding is required for geometries which may
  42363. have self-crossing linework.
  42364. This causes the coordinates of nodes created by
  42365. crossing segments to be computed explicitly.
  42366. This ensures that node locations match in situations
  42367. where a self-crossing and mutual crossing occur at the same logical location.
  42368. The canonical example is a self-crossing line tested against a single segment
  42369. identical to one of the crossed segments.
  42370. </summary>
  42371. </member>
  42372. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.Finish">
  42373. <summary>
  42374. Finalize the evaluation
  42375. </summary>
  42376. </member>
  42377. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateIntersectionAB(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
  42378. <summary>
  42379. Update topology for an intersection between A and B.
  42380. </summary>
  42381. <param name="a">The section for geometry A</param>
  42382. <param name="b">The section for geometry B</param>
  42383. </member>
  42384. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateAreaAreaCross(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
  42385. <summary>
  42386. Updates topology for an AB Area-Area crossing node.
  42387. Sections cross at a node if (a) the intersection is proper
  42388. (i.e. in the interior of two segments)
  42389. or(b) if non-proper then whether the linework crosses
  42390. is determined by the geometry of the segments on either side of the node.
  42391. In these situations the area geometry interiors intersect(in dimension 2).
  42392. </summary>
  42393. <param name="a">The section for geometry A</param>
  42394. <param name="b">The section for geometry B</param>
  42395. </member>
  42396. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.UpdateNodeLocation(NetTopologySuite.Operation.RelateNG.NodeSection,NetTopologySuite.Operation.RelateNG.NodeSection)">
  42397. <summary>
  42398. Updates topology for a node at an AB edge intersection.
  42399. </summary>
  42400. <param name="a">The section for geometry A</param>
  42401. <param name="b">The section for geometry B</param>
  42402. </member>
  42403. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddLineEndOnGeometry(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Coordinate)">
  42404. <summary>
  42405. Add topology for a line end.
  42406. The line end point must be "significant";
  42407. i.e.not contained in an area if the source is a mixed-dimension GC.
  42408. </summary>
  42409. <param name="isLineA">the input containing the line end</param>
  42410. <param name="locLineEnd">the location of the line end (Interior or Boundary)</param>
  42411. <param name="locTarget">the location on the target geometry</param>
  42412. <param name="dimTarget">the dimension of the interacting target geometry element,
  42413. (if any), or the dimension of the target</param>
  42414. <param name="pt">the line end coordinate</param>
  42415. <exception cref="T:System.InvalidOperationException"></exception>
  42416. </member>
  42417. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddAreaVertex(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Coordinate)">
  42418. <summary>
  42419. Adds topology for an area vertex interaction with a target geometry element.
  42420. Assumes the target geometry element has highest dimension
  42421. (i.e. if the point lies on two elements of different dimension,
  42422. the location on the higher dimension element is provided.
  42423. This is the semantic provided by <see cref="T:NetTopologySuite.Operation.RelateNG.RelatePointLocator"/>.
  42424. <para/>
  42425. Note that in a GeometryCollection containing overlapping or adjacent polygons,
  42426. the area vertex location may be <see cref="F:NetTopologySuite.Geometries.Location.Interior"/> instead of <see cref="F:NetTopologySuite.Geometries.Location.Boundary"/>.
  42427. </summary>
  42428. <param name="isAreaA">The input that is the area</param>
  42429. <param name="locArea">The location on the area</param>
  42430. <param name="locTarget">The location on the target geometry element</param>
  42431. <param name="dimTarget">The dimension of the target geometry element</param>
  42432. <param name="pt">The point of interaction</param>
  42433. </member>
  42434. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyComputer.AddAreaVertexOnPoint(System.Boolean,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Coordinate)">
  42435. <summary>
  42436. Updates topology for an area vertex (in Interior or on Boundary)
  42437. intersecting a point.
  42438. Note that because the largest dimension of intersecting target is determined,
  42439. the intersecting point is not part of any other target geometry,
  42440. and hence its neighbourhood is in the Exterior of the target.
  42441. </summary>
  42442. <param name="isAreaA">A flag indicating whether the area is the A input</param>
  42443. <param name="locArea">The location of th evertex in the area</param>
  42444. <param name="pt">The point at whicht topology is being updated</param>
  42445. </member>
  42446. <member name="T:NetTopologySuite.Operation.RelateNG.TopologyPredicate">
  42447. <summary>
  42448. The API for strategy classes implementing
  42449. spatial predicates based on the DE-9IM topology model.
  42450. Predicate values for specific geometry pairs can be evaluated by <see cref="T:NetTopologySuite.Operation.RelateNG.RelateNG"/>.
  42451. </summary>
  42452. <author>Martin Davis</author>
  42453. </member>
  42454. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.#ctor(System.String)">
  42455. <summary>
  42456. Creates an instance of this class
  42457. </summary>
  42458. <param name="name">The name of the predicate</param>
  42459. </member>
  42460. <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Name">
  42461. <summary>
  42462. Gets the name of the predicate
  42463. </summary>
  42464. </member>
  42465. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireSelfNoding">
  42466. <summary>
  42467. Reports whether this predicate requires self-noding for
  42468. geometries which contain crossing edges
  42469. (for example, <see cref="T:NetTopologySuite.Geometries.LineString"/>s, or <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s
  42470. containing lines or polygons which may self-intersect).
  42471. Self-noding ensures that intersections are computed consistently
  42472. in cases which contain self-crossings and mutual crossings.
  42473. <para/>
  42474. Most predicates require this, but it can
  42475. be avoided for simple intersection detection
  42476. (such as in <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Intersects"/>
  42477. and <see cref="M:NetTopologySuite.Operation.RelateNG.RelatePredicate.Disjoint"/>.
  42478. Avoiding self-noding improves performance for polygonal inputs.
  42479. </summary>
  42480. </member>
  42481. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireInteraction">
  42482. <summary>
  42483. Reports whether this predicate requires interaction between
  42484. the input geometries.
  42485. This is the case if
  42486. <code>
  42487. IM[I, I] >= 0 or IM[I, B] >= 0 or IM[B, I] >= 0 or IM[B, B] >= 0
  42488. </code>
  42489. This allows a fast result if
  42490. the envelopes of the geometries are disjoint.
  42491. </summary>
  42492. <returns><c>true</c> if the geometries must interact</returns>
  42493. </member>
  42494. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireCovers(System.Boolean)">
  42495. <summary>
  42496. Reports whether this predicate requires that the source
  42497. cover the target.
  42498. This is the case if
  42499. <code>
  42500. IM[Ext(Src), Int(Tgt)] = F and IM[Ext(Src), Bdy(Tgt)] = F
  42501. </code>
  42502. If <c>true</c>, this allows a fast result if
  42503. the source envelope does not cover the target envelope.
  42504. </summary>
  42505. <param name="isSourceA">A flag indicating the source input geometry</param>
  42506. <returns><c>true</c> if the predicate requires checking whether the source covers the target</returns>
  42507. </member>
  42508. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.RequireExteriorCheck(System.Boolean)">
  42509. <summary>
  42510. Reports whether this predicate requires checking if the source input intersects
  42511. the Exterior of the target input.
  42512. This is the case if:
  42513. <code>
  42514. IM[Int(Src), Ext(Tgt)] >= 0 or IM[Bdy(Src), Ext(Tgt)] >= 0
  42515. </code>
  42516. If <c>false</c>, this may permit a faster result in some geometric situations.
  42517. </summary>
  42518. <param name="isSourceA">A flag indicating the source input geometry</param>
  42519. <returns><c>true</c> if the predicate requires checking whether the source intersects the target exterior</returns>
  42520. </member>
  42521. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Init(NetTopologySuite.Geometries.Dimension,NetTopologySuite.Geometries.Dimension)">
  42522. <summary>
  42523. Initializes the predicate for a specific geometric case.
  42524. This may allow the predicate result to become known
  42525. if it can be inferred from the dimensions.
  42526. </summary>
  42527. <param name="dimA">The dimension of geometry A</param>
  42528. <param name="dimB">The dimension of geometry B</param>
  42529. <seealso cref="T:NetTopologySuite.Geometries.Dimension"/>
  42530. </member>
  42531. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Init(NetTopologySuite.Geometries.Envelope,NetTopologySuite.Geometries.Envelope)">
  42532. <summary>
  42533. Initializes the predicate for a specific geometric case.
  42534. This may allow the predicate result to become known
  42535. if it can be inferred from the envelopes.
  42536. </summary>
  42537. <param name="envA">The envelope of geometry A</param>
  42538. <param name="envB">The envelope of geometry B</param>
  42539. </member>
  42540. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.UpdateDimension(NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Location,NetTopologySuite.Geometries.Dimension)">
  42541. <summary>
  42542. Updates the entry in the DE-9IM intersection matrix
  42543. for given {@link Location}s in the input geometries.
  42544. <para/>
  42545. If this method is called with a {@link Dimension} value
  42546. which is less than the current value for the matrix entry,
  42547. the implementing class should avoid changing the entry
  42548. if this would cause information loss.
  42549. </summary>
  42550. <param name="locA">The location on the A axis of the matrix</param>
  42551. <param name="locB">The location on the B axis of the matrix</param>
  42552. <param name="dimension">The dimension value for the entry</param>
  42553. <seealso cref="T:NetTopologySuite.Geometries.Location"/>
  42554. <seealso cref="T:NetTopologySuite.Geometries.Dimension"/>
  42555. </member>
  42556. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Finish">
  42557. <summary>
  42558. Indicates that the value of the predicate can be finalized
  42559. based on its current state.
  42560. </summary>
  42561. </member>
  42562. <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.IsKnown">
  42563. <summary>
  42564. Tests if the predicate value is known.
  42565. </summary>
  42566. </member>
  42567. <member name="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.Value">
  42568. <summary>
  42569. Gets the current value of the predicate result.
  42570. The value is only valid if <see cref="P:NetTopologySuite.Operation.RelateNG.TopologyPredicate.IsKnown"/> is <c>true</c>.
  42571. </summary>
  42572. </member>
  42573. <member name="T:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer">
  42574. <summary>
  42575. Traces the evaluation of a <see cref="T:NetTopologySuite.Operation.RelateNG.TopologyPredicate"/>.
  42576. </summary>
  42577. <author>Martin Davis</author>
  42578. </member>
  42579. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer.Trace(NetTopologySuite.Operation.RelateNG.TopologyPredicate)">
  42580. <summary>
  42581. Creates a new predicate tracing the evaluation of a given predicate.
  42582. </summary>
  42583. <param name="pred">The predicate to trace</param>
  42584. <returns>the traceable predicate</returns>
  42585. </member>
  42586. <member name="M:NetTopologySuite.Operation.RelateNG.TopologyPredicateTracer.Trace(NetTopologySuite.Operation.RelateNG.TopologyPredicate,System.IO.TextWriter)">
  42587. <summary>
  42588. Creates a new predicate tracing the evaluation of a given predicate.
  42589. </summary>
  42590. <param name="pred">The predicate to trace</param>
  42591. <param name="tw">A text writer</param>
  42592. <returns>the traceable predicate</returns>
  42593. </member>
  42594. <member name="T:NetTopologySuite.Operation.Union.CascadedPolygonUnion">
  42595. <summary>
  42596. Provides an efficient method of unioning a collection of
  42597. <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometries.
  42598. The geometries are indexed using a spatial index,
  42599. and unioned recursively in index order.
  42600. For geometries with a high degree of overlap,
  42601. this has the effect of reducing the number of vertices
  42602. early in the process, which increases speed
  42603. and robustness.
  42604. <para/>
  42605. This algorithm is faster and more robust than
  42606. the simple iterated approach of
  42607. repeatedly unioning each polygon to a result geometry.
  42608. </summary>
  42609. <author>Martin Davis</author>
  42610. <seealso href="http://code.google.com/p/nettopologysuite/issues/detail?id=44"/>
  42611. </member>
  42612. <member name="F:NetTopologySuite.Operation.Union.CascadedPolygonUnion.ClassicUnion">
  42613. <summary>
  42614. A union strategy that uses the classic NTS <see cref="T:NetTopologySuite.Operation.Overlay.Snap.SnapIfNeededOverlayOp"/>,
  42615. with a robustness fallback to OverlayNG.
  42616. </summary>
  42617. </member>
  42618. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  42619. <summary>
  42620. Computes the union of
  42621. a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  42622. </summary>
  42623. <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.</param>
  42624. <returns>The union of the <paramref name="polys"/></returns>
  42625. </member>
  42626. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Union.UnionStrategy)">
  42627. <summary>
  42628. Computes the union of
  42629. a collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  42630. </summary>
  42631. <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.</param>
  42632. <param name="unionStrategy">A strategy to perform the unioning.</param>
  42633. <returns>The union of the <paramref name="polys"/></returns>
  42634. </member>
  42635. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  42636. <summary>
  42637. Creates a new instance to union
  42638. the given collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  42639. </summary>
  42640. <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</param>
  42641. </member>
  42642. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.#ctor(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Operation.Union.UnionStrategy)">
  42643. <summary>
  42644. Creates a new instance to union
  42645. the given collection of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  42646. </summary>
  42647. <param name="polys">A collection of <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> <see cref="T:NetTopologySuite.Geometries.Geometry"/>s</param>
  42648. <param name="unionStrategy"></param>
  42649. </member>
  42650. <member name="F:NetTopologySuite.Operation.Union.CascadedPolygonUnion.STRtreeNodeCapacity">
  42651. <summary>
  42652. The effectiveness of the index is somewhat sensitive
  42653. to the node capacity.
  42654. Testing indicates that a smaller capacity is better.
  42655. For an STRtree, 4 is probably a good number (since
  42656. this produces 2x2 "squares").
  42657. </summary>
  42658. </member>
  42659. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.Union">
  42660. <summary>
  42661. Computes the union of the input geometries.
  42662. </summary>
  42663. <returns>
  42664. <remarks>
  42665. This method discards the input geometries as they are processed.
  42666. In many input cases this reduces the memory retained
  42667. as the operation proceeds.
  42668. Optimal memory usage is achieved
  42669. by disposing of the original input collection
  42670. before calling this method.
  42671. </remarks>
  42672. The union of the input geometries,
  42673. or <c>null</c> if no input geometries were provided
  42674. </returns>
  42675. <exception cref="T:System.InvalidOperationException">if this method is called more than once</exception>
  42676. </member>
  42677. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.BinaryUnion(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry})">
  42678. <summary>
  42679. Unions a list of geometries
  42680. by treating the list as a flattened binary tree,
  42681. and performing a cascaded union on the tree.
  42682. </summary>
  42683. <param name="geoms">The list of geometries to union</param>
  42684. <returns>The union of the list</returns>
  42685. </member>
  42686. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.BinaryUnion(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},System.Int32,System.Int32)">
  42687. <summary>
  42688. Unions a section of a list using a recursive binary union on each half
  42689. of the section.
  42690. </summary>
  42691. <param name="geoms">The list of geometries containing the section to union</param>
  42692. <param name="start">The start index of the section</param>
  42693. <param name="end">The index after the end of the section</param>
  42694. <returns>The union of the list section</returns>
  42695. </member>
  42696. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.GetGeometry(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},System.Int32)">
  42697. <summary>
  42698. Gets the element at a given list index, or
  42699. null if the index is out of range.
  42700. </summary>
  42701. <param name="list">The list of geometries</param>
  42702. <param name="index">The index</param>
  42703. <returns>The geometry at the given index or
  42704. <c>null</c> if the index is out of range</returns>
  42705. </member>
  42706. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.ReduceToGeometries(System.Collections.Generic.IList{System.Object})">
  42707. <summary>
  42708. Reduces a tree of geometries to a list of geometries
  42709. by recursively unioning the subtrees in the list.
  42710. </summary>
  42711. <param name="geomTree">A tree-structured list of geometries</param>
  42712. <returns>A list of Geometrys</returns>
  42713. </member>
  42714. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.UnionSafe(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  42715. <summary>
  42716. Computes the union of two geometries,
  42717. either or both of which may be null.
  42718. </summary>
  42719. <param name="g0">A Geometry</param>
  42720. <param name="g1">A Geometry</param>
  42721. <returns>The union of the input(s) or
  42722. <c>null</c> if both inputs are null</returns>
  42723. </member>
  42724. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.UnionActual(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
  42725. <summary>
  42726. Encapsulates the actual unioning of two polygonal geometries.
  42727. </summary>
  42728. <param name="g0">A geometry to union</param>
  42729. <param name="g1">A geometry to union</param>
  42730. <param name="unionStrategy">A </param>
  42731. <returns>The union of the inputs</returns>
  42732. </member>
  42733. <member name="M:NetTopologySuite.Operation.Union.CascadedPolygonUnion.RestrictToPolygons(NetTopologySuite.Geometries.Geometry)">
  42734. <summary> Computes a <see cref="T:NetTopologySuite.Geometries.Geometry"/> containing only <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> components.
  42735. Extracts the <see cref="T:NetTopologySuite.Geometries.Polygon"/>s from the input
  42736. and returns them as an appropriate <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry.
  42737. <para/>
  42738. If the input is already <tt>Polygonal</tt>, it is returned unchanged.
  42739. <para/>
  42740. A particular use case is to filter out non-polygonal components
  42741. returned from an overlay operation.
  42742. </summary>
  42743. <param name="g">The geometry to filter</param>
  42744. <returns>A polygonal geometry</returns>
  42745. </member>
  42746. <member name="T:NetTopologySuite.Operation.Union.InputExtracter">
  42747. <summary>
  42748. Extracts atomic elements from
  42749. input geometries or collections,
  42750. recording the dimension found.
  42751. Empty geometries are discarded since they
  42752. do not contribute to the result of <see cref="T:NetTopologySuite.Operation.Union.UnaryUnionOp"/>.
  42753. </summary>
  42754. <author>Martin Davis</author>
  42755. </member>
  42756. <member name="M:NetTopologySuite.Operation.Union.InputExtracter.Extract(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  42757. <summary>
  42758. Extracts elements from an enumeration of geometries.
  42759. </summary>
  42760. <param name="geoms">An enumeration of geometries</param>
  42761. <returns>An extracter over the geometries.</returns>
  42762. </member>
  42763. <member name="M:NetTopologySuite.Operation.Union.InputExtracter.Extract(NetTopologySuite.Geometries.Geometry)">
  42764. <summary>
  42765. Extracts elements from a geometry.
  42766. </summary>
  42767. <param name="geom">An geometry to extract from</param>
  42768. <returns>An extracter over the geometry.</returns>
  42769. </member>
  42770. <member name="F:NetTopologySuite.Operation.Union.InputExtracter._dimension">
  42771. <summary>The default dimension for an empty GeometryCollection</summary>
  42772. </member>
  42773. <member name="P:NetTopologySuite.Operation.Union.InputExtracter.IsEmpty">
  42774. <summary>
  42775. Gets a value indicating if there were any non-empty geometries extracted
  42776. </summary>
  42777. </member>
  42778. <member name="P:NetTopologySuite.Operation.Union.InputExtracter.Dimension">
  42779. <summary>
  42780. Gets a value indicating the maximum <see cref="T:NetTopologySuite.Geometries.Dimension"/> extracted.
  42781. </summary>
  42782. </member>
  42783. <member name="P:NetTopologySuite.Operation.Union.InputExtracter.Factory">
  42784. <summary>
  42785. Gets a value indicating the geometry factory from the extracted geometry,
  42786. if there is one. <para/>
  42787. If an empty collection was extracted, will return <c>null</c>.
  42788. </summary>
  42789. </member>
  42790. <member name="M:NetTopologySuite.Operation.Union.InputExtracter.GetExtract(NetTopologySuite.Geometries.Dimension)">
  42791. <summary>
  42792. Gets the extracted atomic geometries of the given dimension <c>dim</c>.
  42793. </summary>
  42794. <param name="dim">The dimension of geometry to return</param>
  42795. <returns>A list of the extracted geometries of dimension dim.</returns>
  42796. </member>
  42797. <member name="T:NetTopologySuite.Operation.Union.OverlapUnion">
  42798. <summary>
  42799. Unions MultiPolygons efficiently by
  42800. using full topological union only for polygons which may overlap,
  42801. and combining with the remaining polygons.
  42802. Polygons which may overlap are those which intersect the common extent of the inputs.
  42803. Polygons wholly outside this extent must be disjoint to the computed union.
  42804. They can thus be simply combined with the union result,
  42805. which is much more performant.
  42806. (There is one caveat to this, which is discussed below).
  42807. <para/>
  42808. This situation is likely to occur during cascaded polygon union,
  42809. since the partitioning of polygons is done heuristically
  42810. and thus may group disjoint polygons which can lie far apart.
  42811. It may also occur in real world data which contains many disjoint polygons
  42812. (e.g. polygons representing parcels on different street blocks).
  42813. </summary>
  42814. <remarks>
  42815. <h2>Algorithm</h2>
  42816. The overlap region is determined as the common envelope of intersection.
  42817. The input polygons are partitioned into two sets:
  42818. <list type="bullet">
  42819. <item><term>Overlapping</term><description>Polygons which intersect the overlap region, and thus potentially overlap each other</description></item>
  42820. <item><term>Disjoint</term><description>Polygons which are disjoint from (lie wholly outside) the overlap region</description></item>
  42821. </list>
  42822. The Overlapping set is fully unioned, and then combined with the Disjoint set.
  42823. Performing a simple combine works because
  42824. the disjoint polygons do not interact with each
  42825. other(since the inputs are valid MultiPolygons).
  42826. They also do not interact with the Overlapping polygons,
  42827. since they are outside their envelope.
  42828. <h2>Discussion</h2>
  42829. In general the Overlapping set of polygons will
  42830. extend beyond the overlap envelope. This means that the union result
  42831. will extend beyond the overlap region.
  42832. There is a small chance that the topological
  42833. union of the overlap region will shift the result linework enough
  42834. that the result geometry intersects one of the Disjoint geometries.
  42835. This situation is detected and if it occurs
  42836. is remedied by falling back to performing a full union of the original inputs.
  42837. Detection is done by a fairly efficient comparison of edge segments which
  42838. extend beyond the overlap region. If any segments have changed
  42839. then there is a risk of introduced intersections, and full union is performed.
  42840. <para/>
  42841. This situation has not been observed in JTS using floating precision,
  42842. but it could happen due to snapping. It has been observed
  42843. in other APIs(e.g.GEOS) due to more aggressive snapping.
  42844. It is more likely to happen if a Snap - Rounding overlay is used.
  42845. <para/>
  42846. <b>NOTE: Test has shown that using this heuristic impairs performance.</b>
  42847. </remarks>
  42848. <author>Martin Davis</author>
  42849. </member>
  42850. <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  42851. <summary>
  42852. Union a pair of geometries,
  42853. using the more performant overlap union algorithm if possible.
  42854. </summary>
  42855. <param name="g0">A geometry to union</param>
  42856. <param name="g1">A geometry to union</param>
  42857. <returns>The union of the inputs</returns>
  42858. </member>
  42859. <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
  42860. <summary>
  42861. Union a pair of geometries,
  42862. using the more performant overlap union algorithm if possible.
  42863. </summary>
  42864. <param name="g0">A geometry to union</param>
  42865. <param name="g1">A geometry to union</param>
  42866. <param name="unionFun">Function to union two geometries</param>
  42867. <returns>The union of the inputs</returns>
  42868. </member>
  42869. <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  42870. <summary>
  42871. Creates a new instance for unioning the given geometries.
  42872. </summary>
  42873. <param name="g0">A geometry to union</param>
  42874. <param name="g1">A geometry to union</param>
  42875. </member>
  42876. <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry,NetTopologySuite.Operation.Union.UnionStrategy)">
  42877. <summary>
  42878. Creates a new instance for unioning the given geometries.
  42879. </summary>
  42880. <param name="g0">A geometry to union</param>
  42881. <param name="g1">A geometry to union</param>
  42882. <param name="unionFun">Function to union two geometries</param>
  42883. </member>
  42884. <member name="M:NetTopologySuite.Operation.Union.OverlapUnion.Union">
  42885. <summary>
  42886. Union a pair of geometries,
  42887. using the more performant overlap union algorithm if possible.
  42888. </summary>
  42889. <returns>The union of the inputs</returns>
  42890. </member>
  42891. <member name="P:NetTopologySuite.Operation.Union.OverlapUnion.IsUnionOptimized">
  42892. <summary>
  42893. Gets a value indicating whether the optimized
  42894. or full union was performed.
  42895. </summary>
  42896. <remarks>Used for unit testing.</remarks>>
  42897. <returns><c>true</c> if the optimized union was performed</returns>
  42898. </member>
  42899. <member name="M:NetTopologySuite.Operation.Union.PointGeometryUnion.Union(NetTopologySuite.Geometries.IPuntal,NetTopologySuite.Geometries.Geometry)">
  42900. <summary>
  42901. Computes the union of a <see cref="T:NetTopologySuite.Geometries.Point"/> geometry with
  42902. another arbitrary <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  42903. Does not copy any component geometries.
  42904. </summary>
  42905. <param name="pointGeom"></param>
  42906. <param name="otherGeom"></param>
  42907. <returns></returns>
  42908. </member>
  42909. <member name="T:NetTopologySuite.Operation.Union.UnaryUnionOp">
  42910. <summary>
  42911. Unions a <c>Collection</c> of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s or a single Geometry (which may be a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>) together.
  42912. </summary>
  42913. <remarks>
  42914. <para>
  42915. By using this special-purpose operation over a collection of geometries
  42916. it is possible to take advantage of various optimizations to improve performance.
  42917. </para>
  42918. <para>
  42919. Heterogeneous <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>s are fully supported.
  42920. </para>
  42921. <para>
  42922. The result obeys the following contract:
  42923. <list type="bullet">
  42924. <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.Polygon"/>s has the effect of merging the areas (i.e. the same effect as iteratively unioning all individual polygons together).</description></item>
  42925. <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.LineString"/>s has the effect of <b>fully noding</b>
  42926. and <b>dissolving</b> the input linework.
  42927. In this context "fully noded" means that there will be
  42928. an endpoint or node in the result
  42929. for every endpoint or line segment crossing in the input.
  42930. "Dissolved" means that any duplicate (e.g. coincident) line segments or portions
  42931. of line segments will be reduced to a single line segment in the output.
  42932. This is consistent with the semantics of the
  42933. <see cref="M:NetTopologySuite.Geometries.Geometry.Union(NetTopologySuite.Geometries.Geometry)"/> operation.
  42934. If <b>merged</b> linework is required, the <see cref="T:NetTopologySuite.Operation.Linemerge.LineMerger"/> class can be used.</description></item>
  42935. <item><description>Unioning a set of <see cref="T:NetTopologySuite.Geometries.Point"/>s has the effect of merging all identical points (producing a set with no duplicates).</description></item> </list>
  42936. </para>
  42937. <para>
  42938. <c>UnaryUnion</c> always operates on the individual components of MultiGeometries.
  42939. So it is possible to use it to "clean" invalid self-intersecting MultiPolygons
  42940. (although the polygon components must all still be individually valid.)
  42941. </para>
  42942. </remarks>
  42943. <author>
  42944. mbdavis
  42945. </author>
  42946. </member>
  42947. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  42948. <summary>
  42949. Computes the geometric union of a <see cref="T:System.Collections.Generic.IEnumerable`1"/>
  42950. </summary>
  42951. <param name="geoms">A collection of geometries</param>
  42952. <returns>The union of the geometries,
  42953. or <c>null</c> if the input is empty</returns>
  42954. </member>
  42955. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
  42956. <summary>
  42957. Computes the geometric union of a <see cref="T:System.Collections.Generic.IEnumerable`1"/><para/>
  42958. If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
  42959. an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> is returned.
  42960. </summary>
  42961. <param name="geoms">A collection of geometries</param>
  42962. <param name="geomFact">The geometry factory to use if the collection is empty</param>
  42963. <returns>The union of the geometries
  42964. or an empty GEOMETRYCOLLECTION</returns>
  42965. </member>
  42966. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union(NetTopologySuite.Geometries.Geometry)">
  42967. <summary>Constructs a unary union operation for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  42968. (which may be a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>).
  42969. </summary>
  42970. <param name="geom">A geometry to union</param>
  42971. <returns>The union of the elements of the geometry
  42972. or an empty GEOMETRYCOLLECTION</returns>
  42973. </member>
  42974. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  42975. <summary>
  42976. Constructs a unary union operation for an enumeration
  42977. of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s, using the <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  42978. of the input geometries.
  42979. </summary>
  42980. <param name="geoms">An enumeration of geometries</param>
  42981. </member>
  42982. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.GeometryFactory)">
  42983. <summary>
  42984. Constructs a unary union operation for an enumeration
  42985. of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s. <para/>
  42986. If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
  42987. </summary>
  42988. <param name="geoms">An enumeration of geometries</param>
  42989. <param name="geomFact">The geometry factory to use if the enumeration is empty</param>
  42990. </member>
  42991. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  42992. <summary>
  42993. Constructs a unary union operation for a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  42994. (which may be a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>).
  42995. </summary>
  42996. <param name="geom">A geometry to union</param>
  42997. </member>
  42998. <member name="P:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionStrategy">
  42999. <remarks>
  43000. Named setter named setUnionFun[ction] in JTS
  43001. </remarks>
  43002. </member>
  43003. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.Union">
  43004. <summary>
  43005. Gets the union of the input geometries.
  43006. <para/>
  43007. The result of empty input is determined as follows:
  43008. <list type="Bullet">
  43009. <item><description>If the input is empty and a dimension can be
  43010. determined (i.e. an empty geometry is present),
  43011. an empty atomic geometry of that dimension is returned.</description></item>
  43012. <item><description>If no input geometries were provided but a <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/> was provided,
  43013. an empty <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> is returned.</description></item>
  43014. <item><description>Otherwise, the return value is <c>null</c>.</description></item>
  43015. </list>
  43016. </summary>
  43017. <returns>
  43018. A Geometry containing the union,
  43019. or an empty atomic geometry, or an empty <c>GEOMETRYCOLLECTION</c>,
  43020. or<c>null</c> if no GeometryFactory was provided
  43021. </returns>
  43022. </member>
  43023. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionWithNull(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  43024. <summary>
  43025. Computes the union of two geometries, either of both of which may be null.
  43026. </summary>
  43027. <param name="g0"></param>
  43028. <param name="g1"></param>
  43029. <returns>
  43030. The union of the input(s)
  43031. or <c>null</c> if both inputs are <c>null</c>
  43032. </returns>
  43033. </member>
  43034. <member name="M:NetTopologySuite.Operation.Union.UnaryUnionOp.UnionNoOpt(NetTopologySuite.Geometries.Geometry)">
  43035. <summary>
  43036. Computes a unary union with no extra optimization, and no short-circuiting.
  43037. </summary>
  43038. <remarks>
  43039. Due to the way the overlay operations are implemented, this is still efficient in the case of linear and puntal geometries.
  43040. </remarks>
  43041. <param name="g0">A geometry</param>
  43042. <returns>The union of the input geometry</returns>
  43043. </member>
  43044. <member name="T:NetTopologySuite.Operation.Union.UnionInteracting">
  43045. <summary>
  43046. Experimental code to union MultiPolygons with processing limited to the elements which actually interact.
  43047. </summary>
  43048. <remarks>Not currently used, since it doesn't seem to offer much of a performance advantage.</remarks>
  43049. <author>mbdavis</author>
  43050. </member>
  43051. <member name="T:NetTopologySuite.Operation.Union.UnionStrategy">
  43052. <summary>
  43053. An strategy class that allows UnaryUnion to adapt to different
  43054. kinds of overlay algorithms.
  43055. </summary>
  43056. <author>Martin Davis</author>
  43057. </member>
  43058. <member name="M:NetTopologySuite.Operation.Union.UnionStrategy.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  43059. <summary>
  43060. Computes the union of two geometries.
  43061. This method may throw a <see cref="T:NetTopologySuite.Geometries.TopologyException"/>
  43062. if one is encountered.
  43063. </summary>
  43064. <param name="g0">A geometry</param>
  43065. <param name="g1">A geometry</param>
  43066. <returns>The union of the input</returns>
  43067. </member>
  43068. <member name="P:NetTopologySuite.Operation.Union.UnionStrategy.IsFloatingPrecision">
  43069. <summary>
  43070. Indicates whether the union function operates using
  43071. a floating(full) precision model.
  43072. If this is the case, then the unary union code
  43073. can make use of the { @link OverlapUnion}
  43074. performance optimization,
  43075. and perhaps other optimizations as well.
  43076. Otherwise, the union result extent may not be the same as the extent of the inputs,
  43077. which prevents using some optimizations.
  43078. </summary>
  43079. </member>
  43080. <member name="T:NetTopologySuite.Operation.Valid.ConnectedInteriorTester">
  43081. <summary>
  43082. This class tests that the interior of an area <see cref="T:NetTopologySuite.Geometries.Geometry" />
  43083. (<see cref="T:NetTopologySuite.Geometries.Polygon" /> or <see cref="T:NetTopologySuite.Geometries.MultiPolygon" />)
  43084. is connected. An area Geometry is invalid if the interior is disconnected.
  43085. This can happen if:
  43086. - a shell self-intersects,
  43087. - one or more holes form a connected chain touching a shell at two different points,
  43088. - one or more holes form a ring around a subset of the interior.
  43089. If a disconnected situation is found the location of the problem is recorded.
  43090. </summary>
  43091. </member>
  43092. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.FindDifferentPoint(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
  43093. <summary>
  43094. </summary>
  43095. <param name="coord"></param>
  43096. <param name="pt"></param>
  43097. <returns></returns>
  43098. </member>
  43099. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  43100. <summary>
  43101. </summary>
  43102. <param name="geomGraph"></param>
  43103. </member>
  43104. <member name="P:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.Coordinate">
  43105. <summary>
  43106. </summary>
  43107. </member>
  43108. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.IsInteriorsConnected">
  43109. <summary>
  43110. </summary>
  43111. <returns></returns>
  43112. </member>
  43113. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.SetInteriorEdgesInResult(NetTopologySuite.GeometriesGraph.PlanarGraph)">
  43114. <summary>
  43115. </summary>
  43116. <param name="graph"></param>
  43117. </member>
  43118. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.BuildEdgeRings(System.Collections.Generic.IEnumerable{NetTopologySuite.GeometriesGraph.EdgeEnd})">
  43119. <summary>
  43120. Form <see cref="T:NetTopologySuite.GeometriesGraph.DirectedEdge" />s in graph into Minimal EdgeRings.
  43121. (Minimal Edgerings must be used, because only they are guaranteed to provide
  43122. a correct isHole computation).
  43123. </summary>
  43124. <param name="dirEdges"></param>
  43125. <returns></returns>
  43126. </member>
  43127. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitShellInteriors(NetTopologySuite.Geometries.Geometry,NetTopologySuite.GeometriesGraph.PlanarGraph)">
  43128. <summary>
  43129. Mark all the edges for the edgeRings corresponding to the shells of the input polygons.
  43130. Only ONE ring gets marked for each shell - if there are others which remain unmarked
  43131. this indicates a disconnected interior.
  43132. </summary>
  43133. <param name="g"></param>
  43134. <param name="graph"></param>
  43135. </member>
  43136. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitInteriorRing(NetTopologySuite.Geometries.LineString,NetTopologySuite.GeometriesGraph.PlanarGraph)">
  43137. <summary>
  43138. </summary>
  43139. <param name="ring"></param>
  43140. <param name="graph"></param>
  43141. </member>
  43142. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.VisitLinkedDirectedEdges(NetTopologySuite.GeometriesGraph.DirectedEdge)">
  43143. <summary>
  43144. </summary>
  43145. <param name="start"></param>
  43146. </member>
  43147. <member name="M:NetTopologySuite.Operation.Valid.ConnectedInteriorTester.HasUnvisitedShellEdge(System.Collections.Generic.IList{NetTopologySuite.GeometriesGraph.EdgeRing})">
  43148. <summary>
  43149. Check if any shell ring has an unvisited edge.
  43150. A shell ring is a ring which is not a hole and which has the interior
  43151. of the parent area on the RHS.
  43152. (Note that there may be non-hole rings with the interior on the LHS,
  43153. since the interior of holes will also be polygonized into CW rings
  43154. by the <c>LinkAllDirectedEdges()</c> step).
  43155. </summary>
  43156. <param name="edgeRings"></param>
  43157. <returns><c>true</c> if there is an unvisited edge in a non-hole ring.</returns>
  43158. </member>
  43159. <member name="T:NetTopologySuite.Operation.Valid.ConsistentAreaTester">
  43160. <summary>
  43161. Checks that a <see cref="T:NetTopologySuite.GeometriesGraph.GeometryGraph"/> representing an area
  43162. (a <c>Polygon</c> or <c>MultiPolygon</c> )
  43163. is consistent with the SFS semantics for area geometries.
  43164. Checks include:
  43165. Testing for rings which self-intersect (both properly and at nodes).
  43166. Testing for duplicate rings.
  43167. If an inconsistency if found the location of the problem is recorded.
  43168. </summary>
  43169. </member>
  43170. <member name="M:NetTopologySuite.Operation.Valid.ConsistentAreaTester.#ctor(NetTopologySuite.GeometriesGraph.GeometryGraph)">
  43171. <summary>
  43172. </summary>
  43173. <param name="geomGraph"></param>
  43174. </member>
  43175. <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.InvalidPoint">
  43176. <summary>
  43177. Returns the intersection point, or <c>null</c> if none was found.
  43178. </summary>
  43179. </member>
  43180. <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.IsNodeConsistentArea">
  43181. <summary>
  43182. </summary>
  43183. </member>
  43184. <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.IsNodeEdgeAreaLabelsConsistent">
  43185. <summary>
  43186. Check all nodes to see if their labels are consistent.
  43187. If any are not, return false.
  43188. </summary>
  43189. </member>
  43190. <member name="P:NetTopologySuite.Operation.Valid.ConsistentAreaTester.HasDuplicateRings">
  43191. <summary>
  43192. Checks for two duplicate rings in an area.
  43193. Duplicate rings are rings that are topologically equal
  43194. (that is, which have the same sequence of points up to point order).
  43195. If the area is topologically consistent (determined by calling the
  43196. <c>isNodeConsistentArea</c>,
  43197. duplicate rings can be found by checking for EdgeBundles which contain more than one EdgeEnd.
  43198. (This is because topologically consistent areas cannot have two rings sharing
  43199. the same line segment, unless the rings are equal).
  43200. The start point of one of the equal rings will be placed in invalidPoint.
  43201. Returns <c>true</c> if this area Geometry is topologically consistent but has two duplicate rings.
  43202. </summary>
  43203. </member>
  43204. <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester">
  43205. <summary>
  43206. Tests whether any holes of a Polygon are
  43207. nested inside another hole, using a spatial
  43208. index to speed up the comparisons.
  43209. <para/>
  43210. The logic assumes that the holes do not overlap and have no collinear segments
  43211. (so they are properly nested, and there are no duplicate holes).
  43212. <para/>
  43213. The situation where every vertex of a hole touches another hole
  43214. is invalid because either the hole is nested,
  43215. or else it disconnects the polygon interior.
  43216. This class detects the nested situation.
  43217. The disconnected interior situation must be checked elsewhere.
  43218. </summary>
  43219. </member>
  43220. <member name="P:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.NestedPoint">
  43221. <summary>
  43222. Gets a value indicating a point on a nested hole, if one exists.
  43223. </summary>
  43224. <returns>A point on a nested hole, or <c>null</c> if none are nested</returns>
  43225. </member>
  43226. <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.IsNested">
  43227. <summary>
  43228. Tests if any hole is nested (contained) within another hole.
  43229. <b>This is invalid</b>.
  43230. The <see cref="P:NetTopologySuite.Operation.Valid.IndexedNestedHoleTester.NestedPoint"/> will be set to reflect this.
  43231. </summary>
  43232. <returns><c>true</c> if some hole is nested.</returns>
  43233. </member>
  43234. <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester">
  43235. <summary>
  43236. Tests whether a MultiPolygon has any element polygon
  43237. improperly nested inside another polygon, using a spatial
  43238. index to speed up the comparisons.
  43239. <para/>
  43240. The logic assumes that the polygons do not overlap and have no collinear segments.
  43241. So the polygon rings may touch at discrete points,
  43242. but they are properly nested, and there are no duplicate rings.
  43243. </summary>
  43244. </member>
  43245. <member name="P:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.NestedPoint">
  43246. <summary>
  43247. Gets a point on a nested polygon, if one exists.
  43248. </summary>
  43249. <returns>A point on a nested polygon, or null if none are nested</returns>
  43250. </member>
  43251. <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.IsNested">
  43252. <summary>
  43253. Tests if any polygon is improperly nested (contained) within another polygon.
  43254. <b>This is invalid.</b>
  43255. The nested point will be set to reflect this.
  43256. </summary>
  43257. <returns><c>true</c> if some polygon is nested</returns>
  43258. </member>
  43259. <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.FindNestedPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Polygon,NetTopologySuite.Algorithm.Locate.IndexedPointInAreaLocator)">
  43260. <summary>
  43261. Finds an improperly nested point, if one exists.
  43262. </summary>
  43263. <param name="shell">The test polygon shell</param>
  43264. <param name="possibleOuterPoly">A polygon which may contain it</param>
  43265. <param name="locator">The locator for the outer polygon</param>
  43266. <returns>A nested point, if one exists, or <c>null</c></returns>
  43267. </member>
  43268. <member name="M:NetTopologySuite.Operation.Valid.IndexedNestedPolygonTester.FindIncidentSegmentNestedPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.Polygon)">
  43269. <summary>
  43270. Finds a point of a shell segment which lies inside a polygon, if any.
  43271. The shell is assumed to touch the polygon only at shell vertices,
  43272. and does not cross the polygon.
  43273. </summary>
  43274. <param name="shell">The shell to test</param>
  43275. <param name="poly">The polygon to test against</param>
  43276. <returns>An interior segment point, or <c>null</c> if the shell is nested correctly</returns>
  43277. </member>
  43278. <member name="T:NetTopologySuite.Operation.Valid.IndexedNestedRingTester">
  43279. <summary>
  43280. Tests whether any of a set of <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s are
  43281. nested inside another ring in the set, using a spatial
  43282. index to speed up the comparisons.
  43283. </summary>
  43284. </member>
  43285. <member name="T:NetTopologySuite.Operation.Valid.IsSimpleOp">
  43286. <summary>
  43287. Tests whether a <c>Geometry</c> is simple as defined by the OGC SFS specification.
  43288. <para/>
  43289. Simplicity is defined for each <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  43290. type as follows:
  43291. <list type="bullet">
  43292. <item><term>Point</term><description>geometries are simple.</description></item>
  43293. <item><term>MultiPoint</term><description>geometries are simple if every point is unique</description></item>
  43294. <item><term>LineString</term><description>geometries are simple if they do not self-intersect at interior points
  43295. (i.e.points other than the endpoints).
  43296. Closed linestrings which intersect only at their endpoints are simple
  43297. (i.e. valid <b>LinearRings</b>s.
  43298. </description></item>
  43299. <item><term>MultiLineString</term><description>geometries are simple if
  43300. their elements are simple and they intersect only at points
  43301. which are boundary points of both elements.
  43302. (The notion of boundary points can be user-specified - see below).</description></item>
  43303. <item><term>Polygonal</term><description>geometries have no definition of simplicity.
  43304. The <c>IsSimple</c> code checks if all polygon rings are simple.
  43305. (Note: this means that<tt>IsSimple</tt> cannot be used to test
  43306. for <i>all</i> self-intersections in <tt>Polygon</tt> s.
  43307. In order to check if a <tt>IPolygonal</tt> geometry has self-intersections,
  43308. use <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/>.</description></item>
  43309. <item><term>GeometryCollection</term><description>geometries are simple if all their elements are simple.</description></item>
  43310. <item><description>Empty geometries are simple</description></item>
  43311. </list>
  43312. For <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometries the evaluation of simplicity
  43313. can be customized by supplying a <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  43314. to define how boundary points are determined.
  43315. The default is the SFS-standard <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.Mod2BoundaryRule"/>.
  43316. <para/>
  43317. Note that under the <tt>Mod-2</tt> rule, closed <tt>LineString</tt>s (rings)
  43318. have no boundary.
  43319. This means that an intersection at the endpoints of
  43320. two closed LineStrings makes the geometry non-simple.
  43321. This means that an intersection at their endpoints makes the geometry non-simple.
  43322. If it is required to test whether a set of <c>LineString</c>s touch
  43323. only at their endpoints, use <see cref="F:NetTopologySuite.Algorithm.BoundaryNodeRules.EndpointBoundaryRule"/>.
  43324. For example, this can be used to validate that a collection of lines
  43325. form a topologically valid linear network.
  43326. <para/>
  43327. By default this class finds a single non-simple location.
  43328. To find all non-simple locations, set <see cref="P:NetTopologySuite.Operation.Valid.IsSimpleOp.FindAllLocations"/>
  43329. before calling <see cref="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple"/>, and retrieve the locations
  43330. via <see cref="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocations"/>.
  43331. This can be used to find all intersection points in a linear network.
  43332. </summary>
  43333. <seealso cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  43334. <seealso cref="P:NetTopologySuite.Geometries.Geometry.IsEmpty"/>
  43335. </member>
  43336. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple(NetTopologySuite.Geometries.Geometry)">
  43337. <summary>
  43338. Tests whether a geometry is simple.
  43339. </summary>
  43340. <param name="geom">The input geometry</param>
  43341. <returns><c>true</c> if the geometry is simple</returns>
  43342. </member>
  43343. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.GetNonSimpleLocation(NetTopologySuite.Geometries.Geometry)">
  43344. <summary>
  43345. Gets a non-simple location in a geometry, if any.
  43346. </summary>
  43347. <param name="geom">The input geometry</param>
  43348. <returns>A non-simple location, or <c>null</c> if the geometry is simple</returns>
  43349. </member>
  43350. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  43351. <summary>
  43352. Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule
  43353. </summary>
  43354. <param name="geom">The geometry to test</param>
  43355. </member>
  43356. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Algorithm.IBoundaryNodeRule)">
  43357. <summary>
  43358. Creates a simplicity checker using a given <see cref="T:NetTopologySuite.Algorithm.IBoundaryNodeRule"/>
  43359. </summary>
  43360. <param name="geom">The geometry to test</param>
  43361. <param name="boundaryNodeRule">The boundary node rule to use</param>
  43362. </member>
  43363. <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.FindAllLocations">
  43364. <summary>Gets or sets a value indicating if all non-simple points should be reported.</summary>
  43365. </member>
  43366. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimple">
  43367. <summary>
  43368. Tests whether the geometry is simple.
  43369. </summary>
  43370. <returns><c>true</c> if the geometry is simple.</returns>
  43371. </member>
  43372. <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocation">
  43373. <summary>
  43374. Gets the coordinate for an location where the geometry
  43375. fails to be simple (i.e. where it has a non-boundary
  43376. self-intersection).
  43377. </summary>
  43378. <returns>A <c>Coordinate</c> for the location of the non-boundary self-intersection
  43379. or <c>null</c> if the geometry is simple</returns>
  43380. </member>
  43381. <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleLocations">
  43382. <summary>
  43383. Gets all non-simple intersection locations.
  43384. </summary>
  43385. <returns>A list of the <c>Coordinate</c>s of non-simple locations.</returns>
  43386. </member>
  43387. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimplePolygonal(NetTopologySuite.Geometries.Geometry)">
  43388. <summary>
  43389. Computes simplicity for polygonal geometries.
  43390. Polygonal geometries are simple if and only if
  43391. all of their component rings are simple.
  43392. </summary>
  43393. <param name="geom">A <see cref="T:NetTopologySuite.Geometries.IPolygonal"/> geometry</param>
  43394. <returns><c>true</c> if the geometry is simple</returns>
  43395. </member>
  43396. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.IsSimpleGeometryCollection(NetTopologySuite.Geometries.Geometry)">
  43397. <summary>
  43398. Semantics for GeometryCollection is
  43399. simple if all components are simple.
  43400. </summary>
  43401. <param name="geom">A geometry collection</param>
  43402. <returns><c>true</c> if the geometry is simple</returns>
  43403. </member>
  43404. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.#ctor(NetTopologySuite.Algorithm.ElevationModel,System.Boolean,System.Boolean,System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate})">
  43405. <summary>
  43406. Creates an instance of this class
  43407. </summary>
  43408. <param name="isClosedEndpointsInInterior">A flag indicating if closed endpoints belong to the interior</param>
  43409. <param name="isFindAll">A flag indicating that all non-simple intersection points should be found</param>
  43410. <param name="intersectionPts">A list to add the non-simple intersection points to.</param>
  43411. </member>
  43412. <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.HasIntersection">
  43413. <summary>
  43414. Tests whether an intersection was found.
  43415. </summary>
  43416. <returns><c>true</c> if an intersection was found.</returns>
  43417. </member>
  43418. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)">
  43419. <inheritdoc cref="M:NetTopologySuite.Noding.ISegmentIntersector.ProcessIntersections(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Noding.ISegmentString,System.Int32)"/>
  43420. </member>
  43421. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IsIntersectionEndpoint(NetTopologySuite.Noding.ISegmentString,System.Int32,NetTopologySuite.Algorithm.LineIntersector,System.Int32)">
  43422. <summary>
  43423. Tests whether an intersection vertex is an endpoint of a segment string.
  43424. </summary>
  43425. <param name="ss">The segment string</param>
  43426. <param name="ssIndex">The index of the segment in <paramref name="ss"/></param>
  43427. <param name="li">The line intersector</param>
  43428. <param name="liSegmentIndex">The index of the segment in intersector</param>
  43429. <returns><c>true</c> if the intersection vertex is an endpoint</returns>
  43430. </member>
  43431. <member name="M:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IntersectionVertexIndex(NetTopologySuite.Algorithm.LineIntersector,System.Int32)">
  43432. <summary>
  43433. Finds the vertex index in a segment of an intersection
  43434. which is known to be a vertex.
  43435. </summary>
  43436. <param name="li">The line intersector</param>
  43437. <param name="segmentIndex">The intersection segment index</param>
  43438. <returns>
  43439. The vertex index (0 or 1) in the segment vertex of the intersection point
  43440. </returns>
  43441. </member>
  43442. <member name="P:NetTopologySuite.Operation.Valid.IsSimpleOp.NonSimpleIntersectionFinder.IsDone">
  43443. <inheritdoc cref="P:NetTopologySuite.Noding.ISegmentIntersector.IsDone"/>
  43444. </member>
  43445. <member name="T:NetTopologySuite.Operation.Valid.IsValidOp">
  43446. <summary>
  43447. Implements the algorithms required to compute the <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid" />
  43448. method for <see cref="T:NetTopologySuite.Geometries.Geometry" />s.
  43449. See the documentation for the various geometry types for a specification of validity.
  43450. </summary>
  43451. </member>
  43452. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckValid(NetTopologySuite.Geometries.Geometry)">
  43453. <summary>
  43454. Tests whether a <see cref="T:NetTopologySuite.Geometries.Geometry"/> is valid.
  43455. </summary>
  43456. <param name="geom">The geometry to test</param>
  43457. <returns><c>true</c> if the geometry is valid</returns>
  43458. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43459. </member>
  43460. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidCoordinate(NetTopologySuite.Geometries.Coordinate)">
  43461. <summary>
  43462. Checks whether a coordinate is valid for processing.
  43463. Coordinates are valid if their x and y ordinates are in the
  43464. range of the floating point representation.
  43465. </summary>
  43466. <param name="coord">The coordinate to validate</param>
  43467. <returns><c>true</c> if the coordinate is valid</returns>
  43468. </member>
  43469. <member name="F:NetTopologySuite.Operation.Valid.IsValidOp._inputGeometry">
  43470. <summary>
  43471. The geometry being validated
  43472. </summary>
  43473. </member>
  43474. <member name="F:NetTopologySuite.Operation.Valid.IsValidOp._isInvertedRingValid">
  43475. <summary>
  43476. If the following condition is TRUE JTS will validate inverted shells and exverted holes
  43477. (the ESRI SDE model)
  43478. </summary>
  43479. </member>
  43480. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.#ctor(NetTopologySuite.Geometries.Geometry)">
  43481. <summary>
  43482. Creates a new validator for a geometry
  43483. </summary>
  43484. <param name="inputGeometry">The geometry to validate</param>
  43485. </member>
  43486. <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.SelfTouchingRingFormingHoleValid">
  43487. <summary>
  43488. Gets or sets a value indicating whether polygons using <b>Self-Touching Rings</b> to form
  43489. holes are reported as valid.
  43490. If this flag is set, the following Self-Touching conditions
  43491. are treated as being valid:
  43492. <list type="bullet">
  43493. <item><description>the shell ring self-touches to create a hole touching the shell</description></item>
  43494. <item><description>a hole ring self-touches to create two holes touching at a point</description></item>
  43495. </list>
  43496. <para/>
  43497. The default (following the OGC SFS standard)
  43498. is that this condition is <b>not</b> valid (<c>false</c>).
  43499. <para/>
  43500. Self-Touching Rings which disconnect the
  43501. the polygon interior are still considered to be invalid
  43502. (these are <b>invalid</b> under the SFS, and many other
  43503. spatial models as well).
  43504. This includes:
  43505. <list type="bullet">
  43506. <item><description>exverted ("bow-tie") shells which self-touch at a single point</description></item>
  43507. <item><description>inverted shells with the inversion touching the shell at another point</description></item>
  43508. <item><description>exverted holes with exversion touching the hole at another point</description></item>
  43509. <item><description>inverted ("C-shaped") holes which self-touch at a single point causing an island to be formed</description></item>
  43510. <item><description>inverted shells or exverted holes which form part of a chain of touching rings
  43511. (which disconnect the interior)</description></item>
  43512. </list>
  43513. </summary>
  43514. </member>
  43515. <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.IsSelfTouchingRingFormingHoleValid">
  43516. <summary>
  43517. <para>
  43518. Gets/Sets whether polygons using Self-Touching Rings to form
  43519. holes are reported as valid.
  43520. If this flag is set, the following Self-Touching conditions
  43521. are treated as being valid:<br/>
  43522. - The shell ring self-touches to create a hole touching the shell.<br/>
  43523. - A hole ring self-touches to create two holes touching at a point.<br/>
  43524. </para>
  43525. <para>
  43526. The default (following the OGC SFS standard)
  43527. is that this condition is not valid (<c>false</c>).
  43528. </para>
  43529. <para>
  43530. This does not affect whether Self-Touching Rings
  43531. disconnecting the polygon interior are considered valid
  43532. (these are considered to be invalid under the SFS, and many other
  43533. spatial models as well).
  43534. This includes "bow-tie" shells,
  43535. which self-touch at a single point causing the interior to be disconnected,
  43536. and "C-shaped" holes which self-touch at a single point causing an island to be formed.
  43537. </para>
  43538. </summary>
  43539. <value>States whether geometry with this condition is valid.</value>
  43540. </member>
  43541. <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.IsValid">
  43542. <summary>
  43543. Tests the validity of the input geometry.
  43544. </summary>
  43545. <returns><c>true</c> if the geometry is valid.</returns>
  43546. </member>
  43547. <member name="P:NetTopologySuite.Operation.Valid.IsValidOp.ValidationError">
  43548. <summary>
  43549. Gets a value indicating the validity of the geometry
  43550. If not valid, returns the validation error for the geometry,
  43551. or <c>null</c> if the geometry is valid.
  43552. </summary>
  43553. <returns>The validation error, if the geometry is invalid
  43554. or null if the geometry is valid</returns>
  43555. </member>
  43556. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.Point)">
  43557. <summary>
  43558. Tests validity of a <c>Point</c>.
  43559. </summary>
  43560. <param name="g">The <c>Point</c> to test</param>
  43561. <returns><c>true</c> if the <c>Point</c> is valid</returns>
  43562. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43563. </member>
  43564. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.MultiPoint)">
  43565. <summary>
  43566. Tests validity of a <c>MultiPoint</c>.
  43567. </summary>
  43568. <param name="g">The <c>MultiPoint</c> to test</param>
  43569. <returns><c>true</c> if the <c>MultiPoint</c> is valid</returns>
  43570. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43571. </member>
  43572. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.LineString)">
  43573. <summary>
  43574. Tests validity of a <c>LineString</c>.<br/>
  43575. Almost anything goes for <c>LineString</c>s!
  43576. </summary>
  43577. <param name="g">The <c>LineString</c> to test</param>
  43578. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43579. </member>
  43580. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.LinearRing)">
  43581. <summary>
  43582. Tests validity of a <c>LinearRing</c>.<br/>
  43583. </summary>
  43584. <param name="g">The <c>LinearRing</c> to test</param>
  43585. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43586. </member>
  43587. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.Polygon)">
  43588. <summary>
  43589. Tests validity of a <c>Polygon</c>.<br/>
  43590. </summary>
  43591. <param name="g">The <c>Polygon</c> to test</param>
  43592. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43593. </member>
  43594. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.MultiPolygon)">
  43595. <summary>
  43596. Tests validity of a <c>MultiPolygon</c>.<br/>
  43597. </summary>
  43598. <param name="g">The <c>MultiPolygon</c> to test</param>
  43599. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43600. </member>
  43601. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsValidGeometry(NetTopologySuite.Geometries.GeometryCollection)">
  43602. <summary>
  43603. Tests validity of a <c>GeometryCollection</c>.<br/>
  43604. </summary>
  43605. <param name="gc">The <c>GeometryCollection</c> to test</param>
  43606. <remarks>In JTS this function is called <c>IsValid</c></remarks>
  43607. </member>
  43608. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckPointSize(NetTopologySuite.Geometries.LineString,System.Int32)">
  43609. <summary>
  43610. Check the number of non-repeated points is at least a given size.
  43611. </summary>
  43612. <param name="line">The line to test</param>
  43613. <param name="minSize">The minimum number of points in <paramref name="line"/></param>
  43614. <returns><c>true</c> if the line has the required number of points</returns>
  43615. </member>
  43616. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.IsNonRepeatedSizeAtLeast(NetTopologySuite.Geometries.LineString,System.Int32)">
  43617. <summary>
  43618. Test if the number of non-repeated points in a line
  43619. is at least a given minimum size.
  43620. </summary>
  43621. <param name="line">The line to test</param>
  43622. <param name="minSize">The minimum number of points in <paramref name="line"/></param>
  43623. <returns><c>true</c> if the line has the required number of non-repeated points</returns>
  43624. </member>
  43625. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckRingSimple(NetTopologySuite.Geometries.LinearRing)">
  43626. <summary>
  43627. Check whether a ring self-intersects (except at its endpoints).
  43628. </summary>
  43629. <param name="ring">The linear ring to check</param>
  43630. </member>
  43631. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckHolesInShell(NetTopologySuite.Geometries.Polygon)">
  43632. <summary>
  43633. Tests that each hole is inside the polygon shell.
  43634. This routine assumes that the holes have previously been tested
  43635. to ensure that all vertices lie on the shell or on the same side of it
  43636. (i.e. that the hole rings do not cross the shell ring).
  43637. Given this, a simple point-in-polygon test of a single point in the hole can be used,
  43638. provided the point is chosen such that it does not lie on the shell.
  43639. </summary>
  43640. <param name="poly">The polygon to be tested for hole inclusion</param>
  43641. </member>
  43642. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.FindHoleOutsideShellPoint(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString)">
  43643. <summary>
  43644. Checks if a polygon hole lies inside its shell
  43645. and if not returns a point indicating this.
  43646. The hole is known to be wholly inside or outside the shell,
  43647. so it suffices to find a single point which is interior or exterior,
  43648. or check the edge topology at a point on the boundary of the shell.
  43649. </summary>
  43650. <param name="hole">The hole to test</param>
  43651. <param name="shell">The polygon shell to test against</param>
  43652. <returns>A hole point outside the shell, or <c>null</c> if it is inside.</returns>
  43653. </member>
  43654. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckHolesNotNested(NetTopologySuite.Geometries.Polygon)">
  43655. <summary>
  43656. Checks if any polygon hole is nested inside another.
  43657. Assumes that holes do not cross (overlap),
  43658. This is checked earlier.
  43659. </summary>
  43660. <param name="poly">The polygon with holes to test</param>
  43661. </member>
  43662. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.CheckShellsNotNested(NetTopologySuite.Geometries.MultiPolygon)">
  43663. <summary>
  43664. Checks that no element polygon is in the interior of another element polygon.
  43665. <para/>Preconditions:
  43666. <list type="bullet">
  43667. <item><description>shells do not partially overlap</description></item>
  43668. <item><description>shells do not touch along an edge</description></item>
  43669. <item><description>no duplicate rings exist</description></item></list>
  43670. These have been confirmed by the <see cref="T:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer"/>.
  43671. </summary>
  43672. </member>
  43673. <member name="M:NetTopologySuite.Operation.Valid.IsValidOp.FindPointNotNode(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.LinearRing,NetTopologySuite.GeometriesGraph.GeometryGraph)">
  43674. <summary>
  43675. Find a point from the list of testCoords
  43676. that is NOT a node in the edge for the list of searchCoords.
  43677. </summary>
  43678. <param name="testCoords"></param>
  43679. <param name="searchRing"></param>
  43680. <param name="graph"></param>
  43681. <returns>The point found, or <c>null</c> if none found.</returns>
  43682. </member>
  43683. <member name="T:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer">
  43684. <summary>Finds and analyzes intersections in and between polygons,
  43685. to determine if they are valid.
  43686. <para/>
  43687. The <see cref="T:NetTopologySuite.Noding.ISegmentString"/>s which are analyzed can have <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/>s
  43688. attached. If so they will be updated with intersection information
  43689. to support further validity analysis which must be done after
  43690. basic intersection validity has been confirmed.
  43691. </summary>
  43692. <author>Martin Davis</author>
  43693. </member>
  43694. <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.#ctor(System.Boolean)">
  43695. <summary>
  43696. Creates a new finder, allowing for the mode where inverted rings are valid.
  43697. </summary>
  43698. <param name="isInvertedRingValid"><c>true</c> if inverted rings are valid.</param>
  43699. </member>
  43700. <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.#ctor(System.Boolean,NetTopologySuite.Algorithm.ElevationModel)">
  43701. <summary>
  43702. Creates a new finder, allowing for the mode where inverted rings are valid.
  43703. </summary>
  43704. <param name="isInvertedRingValid"><c>true</c> if inverted rings are valid.</param>
  43705. <param name="em"></param>
  43706. </member>
  43707. <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.PrevCoordinateInRing(NetTopologySuite.Noding.ISegmentString,System.Int32)">
  43708. <summary>
  43709. For a segment string for a ring, gets the coordinate
  43710. previous to the given index (wrapping if the index is 0)
  43711. </summary>
  43712. <param name="ringSS">The ring segment string</param>
  43713. <param name="segIndex">The segment index</param>
  43714. <returns>The coordinate previous to the given segment</returns>
  43715. </member>
  43716. <member name="M:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer.IsAdjacentInRing(NetTopologySuite.Noding.ISegmentString,System.Int32,System.Int32)">
  43717. <summary>
  43718. Tests if two segments in a closed <see cref="T:NetTopologySuite.Noding.ISegmentString"/> are adjacent.
  43719. This handles determining adjacency across the start/end of the ring.
  43720. </summary>
  43721. <param name="ringSS">The segment string</param>
  43722. <param name="segIndex0">A segment index</param>
  43723. <param name="segIndex1">A segment index</param>
  43724. <returns><c>true</c> if the segments are adjacent</returns>
  43725. </member>
  43726. <member name="T:NetTopologySuite.Operation.Valid.PolygonNode">
  43727. <summary>
  43728. Functions to compute topological information
  43729. about nodes (ring intersections) in polygonal geometry.
  43730. </summary>
  43731. <author>Martin Davis</author>
  43732. </member>
  43733. <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsCrossing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43734. <summary>
  43735. Check if the edges at a node between two rings (or one ring) cross.
  43736. The node is topologically valid if the ring edges do not cross.
  43737. This function assumes that the edges are not collinear.
  43738. </summary>
  43739. <param name="nodePt">The node location</param>
  43740. <param name="a0">The previous edge endpoint in a ring</param>
  43741. <param name="a1">The next edge endpoint in a ring</param>
  43742. <param name="b0">The previous edge endpoint in the other ring</param>
  43743. <param name="b1">The next edge endpoint in the other ring</param>
  43744. <returns>
  43745. <c>true</c> if the edges cross at the node
  43746. </returns>
  43747. </member>
  43748. <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsInteriorSegment(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43749. <summary>
  43750. Tests whether an edge node-b lies in the interior or exterior
  43751. of a corner of a ring given by a0-node-a1.
  43752. The ring interior is assumed to be on the right of the corner (a CW ring).
  43753. The edge must not be collinear with the corner segments.
  43754. </summary>
  43755. <param name="nodePt">The node location</param>
  43756. <param name="a0">The first vertex of the corner</param>
  43757. <param name="a1">The second vertex of the corner</param>
  43758. <param name="b">The destination vertex of the edge</param>
  43759. <returns><c>true</c> if the edge is interior to the ring corner</returns>
  43760. </member>
  43761. <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsBetween(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43762. <summary>
  43763. Tests if an edge p is between edges e0 and e1,
  43764. where the edges all originate at a common origin.
  43765. The "inside" of e0 and e1 is the arc which does not include the origin.
  43766. The edges are assumed to be distinct (non-collinear).
  43767. </summary>
  43768. <param name="origin">the origin</param>
  43769. <param name="p">the destination point of edge p</param>
  43770. <param name="e0">the destination point of edge e0</param>
  43771. <param name="e1">the destination point of edge e1</param>
  43772. <returns><c>true</c> if p is between e0 and e1</returns>
  43773. </member>
  43774. <member name="M:NetTopologySuite.Operation.Valid.PolygonNode.IsAngleGreater(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43775. <summary>
  43776. Tests if the angle with the origin of a vector P is greater than that of the
  43777. vector Q.
  43778. </summary>
  43779. <param name="origin">The origin of the vectors</param>
  43780. <param name="p">The endpoint of the vector P</param>
  43781. <param name="q">The endpoint of the vector Q</param>
  43782. <returns><c>true</c> if vector P has angle greater than Q</returns>
  43783. </member>
  43784. <member name="T:NetTopologySuite.Operation.Valid.PolygonRing">
  43785. <summary>
  43786. A ring of a polygon being analyzed for topological validity.
  43787. The shell and hole rings of valid polygons touch only at discrete points.
  43788. The "touch" relationship induces a graph over the set of rings.
  43789. The interior of a valid polygon must be connected.
  43790. This is the case if there is no "chain" of touching rings
  43791. (which would partition off part of the interior).
  43792. This is equivalent to the touch graph having no cycles.
  43793. Thus the touch graph of a valid polygon is a forest - a set of disjoint trees.
  43794. <para/>
  43795. Also, in a valid polygon two rings can touch only at a single location,
  43796. since otherwise they disconnect a portion of the interior between them.
  43797. This is checked as the touches relation is built
  43798. (so the touch relation representation for a polygon ring does not need to support
  43799. more than one touch location for each adjacent ring).
  43800. <para/>
  43801. The cycle detection algorithm works for polygon rings which also contain self-touches
  43802. (inverted shells and exverted holes).
  43803. <para/>
  43804. Polygons with no holes do not need to be checked for
  43805. a connected interior, unless self-touches are allowed.
  43806. <para/>
  43807. The class also records the topology at self-touch nodes,
  43808. to support checking if an invalid self-touch disconnects the polygon.
  43809. </summary>
  43810. <author>Martin Davis</author>
  43811. </member>
  43812. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.IsShell(NetTopologySuite.Operation.Valid.PolygonRing)">
  43813. <summary>
  43814. Tests if a polygon ring represents a shell.
  43815. </summary>
  43816. <param name="polyRing">The ring to test (may be <c>null</c>)</param>
  43817. <returns><c>true</c> if the ring represents a shell</returns>
  43818. </member>
  43819. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
  43820. <summary>
  43821. Records a touch location between two rings,
  43822. and checks if the rings already touch in a different location.
  43823. </summary>
  43824. <param name="ring0">A polygon ring</param>
  43825. <param name="ring1">A polygon ring</param>
  43826. <param name="pt">The location where they touch</param>
  43827. <returns><c>true</c> if the polygons already touch</returns>
  43828. </member>
  43829. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindHoleCycleLocation(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Valid.PolygonRing})">
  43830. <summary>
  43831. Finds a location (if any) where a chain of holes forms a cycle
  43832. in the ring touch graph.
  43833. The shell may form part of the chain as well.
  43834. This indicates that a set of holes disconnects the interior of a polygon.
  43835. </summary>
  43836. <param name="polyRings">The list of rings to check</param>
  43837. <returns>A vertex contained in a ring cycle or <c>null</c> if none is found.</returns>
  43838. </member>
  43839. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindInteriorSelfNode(System.Collections.Generic.IEnumerable{NetTopologySuite.Operation.Valid.PolygonRing})">
  43840. <summary>
  43841. Finds a location of an interior self-touch in a list of rings,
  43842. if one exists.
  43843. This indicates that a self-touch disconnects the interior of a polygon,
  43844. which is invalid.
  43845. </summary>
  43846. <param name="polyRings">The list of rings to check</param>
  43847. <returns>The location of an interior self-touch node, or <c>null</c> if there are none</returns>
  43848. </member>
  43849. <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._touchSetRoot">
  43850. <summary>
  43851. The root of the touch graph tree containing this ring.
  43852. Serves as the id for the graph partition induced by the touch relation.
  43853. </summary>
  43854. </member>
  43855. <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._touches">
  43856. <summary>
  43857. The set of <see cref="T:NetTopologySuite.Operation.Valid.PolygonRingTouch"/> links
  43858. for this ring.
  43859. The set of all touches in the rings of a polygon
  43860. forms the polygon touch graph.
  43861. This supports detecting touch cycles, which
  43862. reveal the condition of a disconnected interior.
  43863. <para/>
  43864. Only a single touch is recorded between any two rings,
  43865. since more than one touch between two rings
  43866. indicates interior disconnection as well.
  43867. </summary>
  43868. </member>
  43869. <member name="F:NetTopologySuite.Operation.Valid.PolygonRing._selfNodes">
  43870. <summary>
  43871. The set of self-nodes in this ring.
  43872. This supports checking valid ring self-touch topology.
  43873. </summary>
  43874. </member>
  43875. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.#ctor(NetTopologySuite.Geometries.LinearRing)">
  43876. <summary>
  43877. Creates a ring for a polygon shell.
  43878. </summary>
  43879. <param name="ring">The polygon shell</param>
  43880. </member>
  43881. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.#ctor(NetTopologySuite.Geometries.LinearRing,System.Int32,NetTopologySuite.Operation.Valid.PolygonRing)">
  43882. <summary>
  43883. Creates a ring for a polygon hole.
  43884. </summary>
  43885. <param name="ring">The ring geometry</param>
  43886. <param name="index">The index of the hole</param>
  43887. <param name="shell">The parent polygon shell</param>
  43888. </member>
  43889. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
  43890. <summary>
  43891. Adds a point where a <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/> touches another one.
  43892. </summary>
  43893. <param name="ring">The other <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/></param>
  43894. <param name="pt">The touch location</param>
  43895. </member>
  43896. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.AddSelfTouch(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43897. <summary>
  43898. Adds the node (intersection point)
  43899. and the endpoints of the four adjacent segments.
  43900. </summary>
  43901. <param name="origin">The node</param>
  43902. <param name="e00">The 1st position of the 1st edge</param>
  43903. <param name="e01">The 2nd position of the 1st edge</param>
  43904. <param name="e10">The 1st position of the 2nd edge</param>
  43905. <param name="e11">The 2nd position of the 2nd edge</param>
  43906. </member>
  43907. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.IsOnlyTouch(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
  43908. <summary>
  43909. Tests if this ring touches a given ring at
  43910. the single point specified.
  43911. </summary>
  43912. <param name="ring">The other polygon ring</param>
  43913. <param name="pt">The touch point</param>
  43914. <returns><c>true</c> if the rings touch only at the given point.</returns>
  43915. </member>
  43916. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindHoleCycleLocation">
  43917. <summary>
  43918. Detects whether the subgraph of holes linked by touch to this ring
  43919. contains a hole cycle.
  43920. If no cycles are detected, the set of touching rings is a tree.
  43921. The set is marked using this ring as the root.
  43922. </summary>
  43923. <returns>A vertex om a hole cycle or <c>null</c> if no cycle found</returns>
  43924. </member>
  43925. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.ScanForHoleCycle(NetTopologySuite.Operation.Valid.PolygonRingTouch,NetTopologySuite.Operation.Valid.PolygonRing,System.Collections.Generic.Queue{NetTopologySuite.Operation.Valid.PolygonRingTouch})">
  43926. <summary>
  43927. Scans for a hole cycle starting at a given touch.
  43928. </summary>
  43929. <param name="currentTouch">The touch to investigate</param>
  43930. <param name="root">The root of the touch subgraph</param>
  43931. <param name="touchQueue">The queue of rings to scan</param>
  43932. </member>
  43933. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.FindInteriorSelfNode">
  43934. <summary>
  43935. Finds the location of an invalid interior self-touch in this ring,
  43936. if one exists.
  43937. </summary>
  43938. <returns>The location of an interior self-touch node, or <c>null</c> if there are none
  43939. </returns>
  43940. </member>
  43941. <member name="M:NetTopologySuite.Operation.Valid.PolygonRing.ToString">
  43942. <inheritdoc cref="M:System.Object.ToString"/>
  43943. </member>
  43944. <member name="T:NetTopologySuite.Operation.Valid.PolygonRingTouch">
  43945. <summary>
  43946. Records a point where a <see cref="T:NetTopologySuite.Operation.Valid.PolygonRing"/> touches another one.
  43947. This forms an edge in the induced ring touch graph.
  43948. </summary>
  43949. <author>Martin Davis</author>
  43950. </member>
  43951. <member name="M:NetTopologySuite.Operation.Valid.PolygonRingTouch.#ctor(NetTopologySuite.Operation.Valid.PolygonRing,NetTopologySuite.Geometries.Coordinate)">
  43952. <summary>
  43953. Creates an instance of this item
  43954. </summary>
  43955. <param name="ring">The polygon ring</param>
  43956. <param name="pt">The touch position</param>
  43957. </member>
  43958. <member name="T:NetTopologySuite.Operation.Valid.PolygonRingSelfNode">
  43959. <summary>
  43960. Represents a ring self-touch node, recording the node (intersection point)
  43961. and the endpoints of the four adjacent segments.
  43962. <para/>
  43963. This is used to evaluate validity of self-touching nodes,
  43964. when they are allowed.
  43965. </summary>
  43966. <author>Martin Davis</author>
  43967. </member>
  43968. <member name="M:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  43969. <summary>
  43970. Creates an instance of this point
  43971. </summary>
  43972. <param name="nodePt">The self touch position</param>
  43973. <param name="e00">The 1st position of the 1st edge</param>
  43974. <param name="e01">The 2nd position of the 1st edge</param>
  43975. <param name="e10">The 1st position of the 2nd edge</param>
  43976. <param name="e11">The 2nd position of the 2nd edge</param>
  43977. </member>
  43978. <member name="P:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.Coordinate">
  43979. <summary>
  43980. Gets a value indicating the node point
  43981. </summary>
  43982. </member>
  43983. <member name="M:NetTopologySuite.Operation.Valid.PolygonRingSelfNode.IsExterior(System.Boolean)">
  43984. <summary>
  43985. Tests if a self-touch has the segments of each half of the touch
  43986. lying in the exterior of a polygon.
  43987. This is a valid self-touch.
  43988. It applies to both shells and holes.
  43989. Only one of the four possible cases needs to be tested,
  43990. since the situation has full symmetry.
  43991. </summary>
  43992. <param name="isInteriorOnRight">A flag indicating if the interior is to the right of the parent ring</param>
  43993. <returns><c>true</c> if the self-touch is on the exterior.</returns>
  43994. </member>
  43995. <member name="T:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer">
  43996. <summary>
  43997. Analyzes the topology of polygonal geometry
  43998. to determine whether it is valid.
  43999. </summary>
  44000. <author>Martin Davis</author>
  44001. </member>
  44002. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsRingNested(NetTopologySuite.Geometries.LineString,NetTopologySuite.Geometries.LineString)">
  44003. <summary>
  44004. Tests whether a ring is nested inside another ring
  44005. <para/>
  44006. Preconditions:
  44007. <list type="bullet">
  44008. <item><description>The rings do not cross (i.e. the test is wholly inside or outside the target)</description></item>
  44009. <item><description>The rings may touch at discrete points only</description></item>
  44010. <item><description>The <paramref name="target"/> ring does not self-cross, but it may self-touch</description></item>
  44011. </list>
  44012. If the test ring start point is properly inside or outside, that provides the result.
  44013. Otherwise the start point is on the target ring,
  44014. and the incident start segment(accounting for repeated points) is
  44015. tested for its topology relative to the target ring.
  44016. </summary>
  44017. <param name="test">The ring to test</param>
  44018. <param name="target">The ring to test against</param>
  44019. <returns><c>true</c> if the <paramref name="test"/> ring lies inside the <paramref name="target"/> ring</returns>
  44020. </member>
  44021. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsIncidentSegmentInRing(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate[])">
  44022. <summary>
  44023. Tests whether a touching segment is interior to a ring.
  44024. <para/>
  44025. Preconditions:
  44026. <list type="bullet">
  44027. <item><description>The segment does not intersect the ring other than at the endpoints</description></item>
  44028. <item><description>The segment vertex p0 lies on the ring</description></item>
  44029. <item><description>The ring does not self-cross, but it may self-touch</description></item>
  44030. </list>
  44031. This works for both shells and holes, but the caller must know
  44032. the ring role.
  44033. </summary>
  44034. <param name="p0">The touching vertex of the segment</param>
  44035. <param name="p1">The second vertex of the segment</param>
  44036. <param name="ringPts">The points of the ring</param>
  44037. <returns><c>true</c> if the segment is inside the ring.</returns>
  44038. </member>
  44039. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindRingVertexPrev(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
  44040. <summary>
  44041. Finds the ring vertex previous to a node point on a ring
  44042. (which is contained in the index'th segment,
  44043. as either the start vertex or an interior point).
  44044. Repeated points are skipped over.
  44045. </summary>
  44046. <param name="ringPts">The ring</param>
  44047. <param name="index">The index of the segment containing the node</param>
  44048. <param name="node">The node point</param>
  44049. <returns>The previous ring vertex</returns>
  44050. </member>
  44051. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindRingVertexNext(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
  44052. <summary>
  44053. Finds the ring vertex next from a node point on a ring
  44054. (which is contained in the index'th segment,
  44055. as either the start vertex or an interior point).
  44056. </summary>
  44057. <param name="ringPts">The ring</param>
  44058. <param name="index">The index of the segment containing the node</param>
  44059. <param name="node">The node point</param>
  44060. <returns>The next ring vertex</returns>
  44061. </member>
  44062. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IntersectingSegIndex(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate)">
  44063. <summary>
  44064. Computes the index of the segment which intersects a given point.
  44065. </summary>
  44066. <param name="ringPts">The ring points</param>
  44067. <param name="pt">The intersection point</param>
  44068. <returns>The intersection segment index, or <c>-1</c> if not intersection is found.</returns>
  44069. </member>
  44070. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.FindSelfIntersection(NetTopologySuite.Geometries.LinearRing)">
  44071. <summary>
  44072. Finds a self-intersection (if any) in a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>.
  44073. </summary>
  44074. <param name="ring">The ring to analyze</param>
  44075. <returns>A self-intersection point if one exists, or <c>null</c></returns>
  44076. </member>
  44077. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsInteriorDisconnected">
  44078. <summary>
  44079. Tests whether the interior of the polygonal geometry is
  44080. disconnected.<br/>
  44081. If true, the disconnection location is available from
  44082. <see cref="P:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.DisconnectionLocation"/>.
  44083. </summary>
  44084. <returns><c>true</c> if the interior is disconnected</returns>
  44085. </member>
  44086. <member name="P:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.DisconnectionLocation">
  44087. <summary>
  44088. Gets a location where the polyonal interior is disconnected.<br/>
  44089. <see cref="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.IsInteriorDisconnected"/> must be called first.
  44090. </summary>
  44091. <returns>The location of an interior disconnection, or <c>null</c></returns>
  44092. </member>
  44093. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.CheckInteriorDisconnectedByHoleCycle">
  44094. <summary>
  44095. Tests whether any polygon with holes has a disconnected interior
  44096. by virtue of the holes (and possibly shell) forming a touch cycle.
  44097. <para/>
  44098. This is a global check, which relies on determining
  44099. the touching graph of all holes in a polygon.
  44100. <para/>
  44101. If inverted rings disconnect the interior
  44102. via a self-touch, this is checked by the <see cref="T:NetTopologySuite.Operation.Valid.PolygonIntersectionAnalyzer"/>.
  44103. If inverted rings are part of a disconnected ring chain
  44104. this is detected here.
  44105. </summary>
  44106. <returns><c>true</c> if a polygon has a disconnected interior.</returns>
  44107. </member>
  44108. <member name="M:NetTopologySuite.Operation.Valid.PolygonTopologyAnalyzer.CheckInteriorDisconnectedBySelfTouch">
  44109. <summary>
  44110. Tests if an area interior is disconnected by a self-touching ring.
  44111. This must be evaluated after other self-intersections have been analyzed
  44112. and determined to not exist, since the logic relies on
  44113. the rings not self-crossing (winding).
  44114. </summary>
  44115. <returns><c>true</c> if an area interior is disconnected by a self-touch</returns>
  44116. </member>
  44117. <member name="T:NetTopologySuite.Operation.Valid.RepeatedPointTester">
  44118. <summary>
  44119. Implements the appropriate checks for repeated points
  44120. (consecutive identical coordinates) as defined in the
  44121. NTS spec.
  44122. </summary>
  44123. </member>
  44124. <member name="P:NetTopologySuite.Operation.Valid.RepeatedPointTester.Coordinate">
  44125. <summary>
  44126. Gets a value indicating the location of the repeated point
  44127. </summary>
  44128. </member>
  44129. <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.Geometry)">
  44130. <summary>
  44131. Checks if a geometry has a repeated point
  44132. </summary>
  44133. <param name="g">The geometry to test</param>
  44134. <returns><c>true</c> if the geometry has a repeated point, otherwise <c>false</c></returns>
  44135. </member>
  44136. <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.Coordinate[])">
  44137. <summary>
  44138. Checks if an array of <c>Coordinate</c>s has a repeated point
  44139. </summary>
  44140. <param name="coord">An array of coordinates</param>
  44141. <returns><c>true</c> if <paramref name="coord"/> has a repeated point, otherwise <c>false</c></returns>
  44142. </member>
  44143. <member name="M:NetTopologySuite.Operation.Valid.RepeatedPointTester.HasRepeatedPoint(NetTopologySuite.Geometries.CoordinateSequence)">
  44144. <summary>
  44145. Checks if an array of <c>Coordinate</c>s has a repeated point
  44146. </summary>
  44147. <param name="sequence">A coordinate sequence</param>
  44148. <returns><c>true</c> if <paramref name="sequence"/> has a repeated point, otherwise <c>false</c></returns>
  44149. </member>
  44150. <member name="T:NetTopologySuite.Operation.Valid.TopologyValidationErrors">
  44151. <summary>
  44152. Contains information about the nature and location of
  44153. a <see cref="T:NetTopologySuite.Geometries.Geometry" /> validation error.
  44154. </summary>
  44155. </member>
  44156. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NoInvalidIntersection">
  44157. <summary>
  44158. </summary>
  44159. </member>
  44160. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.HoleOutsideShell">
  44161. <summary>
  44162. Indicates that a hole of a polygon lies partially
  44163. or completely in the exterior of the shell.
  44164. </summary>
  44165. </member>
  44166. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NestedHoles">
  44167. <summary>
  44168. Indicates that a hole lies
  44169. in the interior of another hole in the same polygon.
  44170. </summary>
  44171. </member>
  44172. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.DisconnectedInteriors">
  44173. <summary>
  44174. Indicates that the interior of a polygon is disjoint
  44175. (often caused by set of contiguous holes splitting
  44176. the polygon into two parts).
  44177. </summary>
  44178. </member>
  44179. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.SelfIntersection">
  44180. <summary>
  44181. Indicates that two rings of a polygonal geometry intersect.
  44182. </summary>
  44183. </member>
  44184. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.RingSelfIntersection">
  44185. <summary>
  44186. Indicates that a ring self-intersects.
  44187. </summary>
  44188. </member>
  44189. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.NestedShells">
  44190. <summary>
  44191. Indicates that a polygon component of a
  44192. <see cref="T:NetTopologySuite.Geometries.MultiPolygon" /> lies inside another polygonal component.
  44193. </summary>
  44194. </member>
  44195. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.DuplicateRings">
  44196. <summary>
  44197. Indicates that a polygonal geometry
  44198. contains two rings which are identical.
  44199. </summary>
  44200. </member>
  44201. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.TooFewPoints">
  44202. <summary>
  44203. Indicates that either:
  44204. - A <see cref="T:NetTopologySuite.Geometries.LineString" /> contains a single point.
  44205. - A <see cref="T:NetTopologySuite.Geometries.LinearRing" /> contains 2 or 3 points.
  44206. </summary>
  44207. </member>
  44208. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.InvalidCoordinate">
  44209. <summary>
  44210. Indicates that the <c>X</c> or <c>Y</c> ordinate of
  44211. a <see cref="T:NetTopologySuite.Geometries.Coordinate" /> is not a valid
  44212. numeric value (e.g. <see cref="F:System.Double.NaN" />).
  44213. </summary>
  44214. </member>
  44215. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationErrors.RingNotClosed">
  44216. <summary>
  44217. Indicates that a ring is not correctly closed
  44218. (the first and the last coordinate are different).
  44219. </summary>
  44220. </member>
  44221. <member name="T:NetTopologySuite.Operation.Valid.TopologyValidationError">
  44222. <summary>
  44223. Contains information about the nature and location of a <c>Geometry</c>
  44224. validation error.
  44225. </summary>
  44226. </member>
  44227. <member name="F:NetTopologySuite.Operation.Valid.TopologyValidationError.errMsg">
  44228. <summary>
  44229. These messages must synch up with the indexes above
  44230. </summary>
  44231. </member>
  44232. <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.#ctor(NetTopologySuite.Operation.Valid.TopologyValidationErrors,NetTopologySuite.Geometries.Coordinate)">
  44233. <summary>
  44234. </summary>
  44235. <param name="errorType"></param>
  44236. <param name="pt"></param>
  44237. </member>
  44238. <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.#ctor(NetTopologySuite.Operation.Valid.TopologyValidationErrors)">
  44239. <summary>
  44240. </summary>
  44241. <param name="errorType"></param>
  44242. </member>
  44243. <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.Coordinate">
  44244. <summary>
  44245. </summary>
  44246. </member>
  44247. <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.ErrorType">
  44248. <summary>
  44249. </summary>
  44250. </member>
  44251. <member name="P:NetTopologySuite.Operation.Valid.TopologyValidationError.Message">
  44252. <summary>
  44253. </summary>
  44254. </member>
  44255. <member name="M:NetTopologySuite.Operation.Valid.TopologyValidationError.ToString">
  44256. <summary>
  44257. </summary>
  44258. <returns></returns>
  44259. </member>
  44260. <member name="T:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder">
  44261. <summary>
  44262. Finds all connected <see cref="T:NetTopologySuite.Planargraph.Subgraph" />s of a <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
  44263. </summary>
  44264. </member>
  44265. <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.#ctor(NetTopologySuite.Planargraph.PlanarGraph)">
  44266. <summary>
  44267. Initializes a new instance of the <see cref="T:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder"/> class.
  44268. </summary>
  44269. <param name="graph">The <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.</param>
  44270. </member>
  44271. <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.AddReachable(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Subgraph)">
  44272. <summary>
  44273. Adds all nodes and edges reachable from this node to the subgraph.
  44274. Uses an explicit stack to avoid a large depth of recursion.
  44275. </summary>
  44276. <param name="startNode"></param>
  44277. <param name="subgraph"></param>
  44278. </member>
  44279. <member name="M:NetTopologySuite.Planargraph.Algorithm.ConnectedSubgraphFinder.AddEdges(NetTopologySuite.Planargraph.Node,System.Collections.Generic.Stack{NetTopologySuite.Planargraph.Node},NetTopologySuite.Planargraph.Subgraph)">
  44280. <summary>
  44281. Adds the argument node and all its out edges to the subgraph.
  44282. </summary>
  44283. <param name="node"></param>
  44284. <param name="nodeStack"></param>
  44285. <param name="subgraph"></param>
  44286. </member>
  44287. <member name="T:NetTopologySuite.Planargraph.DirectedEdge">
  44288. <summary>
  44289. Represents a directed edge in a <c>PlanarGraph</c>. A DirectedEdge may or
  44290. may not have a reference to a parent Edge (some applications of
  44291. planar graphs may not require explicit Edge objects to be created). Usually
  44292. a client using a <c>PlanarGraph</c> will subclass <c>DirectedEdge</c>
  44293. to add its own application-specific data and methods.
  44294. </summary>
  44295. </member>
  44296. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.ToEdges(System.Collections.Generic.IList{NetTopologySuite.Planargraph.DirectedEdge})">
  44297. <summary>
  44298. Returns a List containing the parent Edge (possibly null) for each of the given
  44299. DirectedEdges.
  44300. </summary>
  44301. <param name="dirEdges"></param>
  44302. <returns></returns>
  44303. </member>
  44304. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.#ctor(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node,NetTopologySuite.Geometries.Coordinate,System.Boolean)">
  44305. <summary>
  44306. Constructs a DirectedEdge connecting the <c>from</c> node to the
  44307. <c>to</c> node.
  44308. </summary>
  44309. <param name="from"></param>
  44310. <param name="to"></param>
  44311. <param name="directionPt">
  44312. Specifies this DirectedEdge's direction (given by an imaginary
  44313. line from the <c>from</c> node to <c>directionPt</c>).
  44314. </param>
  44315. <param name="edgeDirection">
  44316. Whether this DirectedEdge's direction is the same as or
  44317. opposite to that of the parent Edge (if any).
  44318. </param>
  44319. </member>
  44320. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Edge">
  44321. <summary>
  44322. Returns this DirectedEdge's parent Edge, or null if it has none.
  44323. Associates this DirectedEdge with an Edge (possibly null, indicating no associated
  44324. Edge).
  44325. </summary>
  44326. </member>
  44327. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Quadrant">
  44328. <summary>
  44329. Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
  44330. orientation lies.
  44331. </summary>
  44332. </member>
  44333. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.QuadrantEx">
  44334. <summary>
  44335. Returns 0, 1, 2, or 3, indicating the quadrant in which this DirectedEdge's
  44336. orientation lies.
  44337. </summary>
  44338. </member>
  44339. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.DirectionPt">
  44340. <summary>
  44341. Returns a point to which an imaginary line is drawn from the from-node to
  44342. specify this DirectedEdge's orientation.
  44343. </summary>
  44344. </member>
  44345. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.EdgeDirection">
  44346. <summary>
  44347. Returns whether the direction of the parent Edge (if any) is the same as that
  44348. of this Directed Edge.
  44349. </summary>
  44350. </member>
  44351. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.FromNode">
  44352. <summary>
  44353. Returns the node from which this DirectedEdge leaves.
  44354. </summary>
  44355. </member>
  44356. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.ToNode">
  44357. <summary>
  44358. Returns the node to which this DirectedEdge goes.
  44359. </summary>
  44360. </member>
  44361. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Coordinate">
  44362. <summary>
  44363. Returns the coordinate of the from-node.
  44364. </summary>
  44365. </member>
  44366. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Angle">
  44367. <summary>
  44368. Returns the angle that the start of this DirectedEdge makes with the
  44369. positive x-axis, in radians.
  44370. </summary>
  44371. </member>
  44372. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.Sym">
  44373. <summary>
  44374. Returns the symmetric DirectedEdge -- the other DirectedEdge associated with
  44375. this DirectedEdge's parent Edge.
  44376. Sets this DirectedEdge's symmetric DirectedEdge, which runs in the opposite
  44377. direction.
  44378. </summary>
  44379. </member>
  44380. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.CompareTo(System.Object)">
  44381. <summary>
  44382. Returns 1 if this DirectedEdge has a greater angle with the
  44383. positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
  44384. Using the obvious algorithm of simply computing the angle is not robust,
  44385. since the angle calculation is susceptible to round off. A robust algorithm
  44386. is:
  44387. first compare the quadrants. If the quadrants are different, it it
  44388. trivial to determine which vector is "greater".
  44389. if the vectors lie in the same quadrant, the robust
  44390. <c>RobustCGAlgorithms.ComputeOrientation(Coordinate, Coordinate, Coordinate)</c>
  44391. function can be used to decide the relative orientation of the vectors.
  44392. </summary>
  44393. <param name="obj"></param>
  44394. <returns></returns>
  44395. </member>
  44396. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.CompareDirection(NetTopologySuite.Planargraph.DirectedEdge)">
  44397. <summary>
  44398. Returns 1 if this DirectedEdge has a greater angle with the
  44399. positive x-axis than b", 0 if the DirectedEdges are collinear, and -1 otherwise.
  44400. Using the obvious algorithm of simply computing the angle is not robust,
  44401. since the angle calculation is susceptible to round off. A robust algorithm
  44402. is:
  44403. first compare the quadrants. If the quadrants are different, it it
  44404. trivial to determine which vector is "greater".
  44405. if the vectors lie in the same quadrant, the robust
  44406. <c>RobustCGAlgorithms.ComputeOrientation(Coordinate, Coordinate, Coordinate)</c>
  44407. function can be used to decide the relative orientation of the vectors.
  44408. </summary>
  44409. <param name="e"></param>
  44410. <returns></returns>
  44411. </member>
  44412. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.Write(System.IO.StreamWriter)">
  44413. <summary>
  44414. Writes a detailed string representation of this DirectedEdge to the given PrintStream.
  44415. </summary>
  44416. <param name="outstream"></param>
  44417. </member>
  44418. <member name="P:NetTopologySuite.Planargraph.DirectedEdge.IsRemoved">
  44419. <summary>
  44420. Tests whether this component has been removed from its containing graph.
  44421. </summary>
  44422. <value></value>
  44423. </member>
  44424. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.Remove">
  44425. <summary>
  44426. Removes this directed edge from its containing graph.
  44427. </summary>
  44428. </member>
  44429. <member name="M:NetTopologySuite.Planargraph.DirectedEdge.ToString">
  44430. <inheritdoc cref="M:System.Object.ToString"/>
  44431. </member>
  44432. <member name="T:NetTopologySuite.Planargraph.DirectedEdgeStar">
  44433. <summary>
  44434. A sorted collection of <c>DirectedEdge</c>s which leave a <c>Node</c>
  44435. in a <c>PlanarGraph</c>.
  44436. </summary>
  44437. </member>
  44438. <member name="F:NetTopologySuite.Planargraph.DirectedEdgeStar._outEdges">
  44439. <summary>
  44440. The underlying list of outgoing DirectedEdges.
  44441. </summary>
  44442. </member>
  44443. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.Add(NetTopologySuite.Planargraph.DirectedEdge)">
  44444. <summary>
  44445. Adds a new member to this DirectedEdgeStar.
  44446. </summary>
  44447. <param name="de"></param>
  44448. </member>
  44449. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
  44450. <summary>
  44451. Drops a member of this DirectedEdgeStar.
  44452. </summary>
  44453. <param name="de"></param>
  44454. </member>
  44455. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetEnumerator">
  44456. <summary>
  44457. Returns an Iterator over the DirectedEdges, in ascending order by angle with the positive x-axis.
  44458. </summary>
  44459. </member>
  44460. <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Degree">
  44461. <summary>
  44462. Returns the number of edges around the Node associated with this DirectedEdgeStar.
  44463. </summary>
  44464. </member>
  44465. <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Coordinate">
  44466. <summary>
  44467. Returns the coordinate for the node at which this star is based.
  44468. </summary>
  44469. </member>
  44470. <member name="P:NetTopologySuite.Planargraph.DirectedEdgeStar.Edges">
  44471. <summary>
  44472. Returns the DirectedEdges, in ascending order by angle with the positive x-axis.
  44473. </summary>
  44474. </member>
  44475. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.SortEdges">
  44476. <summary>
  44477. </summary>
  44478. </member>
  44479. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(NetTopologySuite.Planargraph.Edge)">
  44480. <summary>
  44481. Returns the zero-based index of the given Edge, after sorting in ascending order
  44482. by angle with the positive x-axis.
  44483. </summary>
  44484. <param name="edge"></param>
  44485. <returns></returns>
  44486. </member>
  44487. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(NetTopologySuite.Planargraph.DirectedEdge)">
  44488. <summary>
  44489. Returns the zero-based index of the given DirectedEdge, after sorting in ascending order
  44490. by angle with the positive x-axis.
  44491. </summary>
  44492. <param name="dirEdge"></param>
  44493. <returns></returns>
  44494. </member>
  44495. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetIndex(System.Int32)">
  44496. <summary>
  44497. Returns the remainder when i is divided by the number of edges in this
  44498. DirectedEdgeStar.
  44499. </summary>
  44500. <param name="i"></param>
  44501. <returns></returns>
  44502. </member>
  44503. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetNextEdge(NetTopologySuite.Planargraph.DirectedEdge)">
  44504. <summary>
  44505. Returns the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> on the left-hand
  44506. side of the given <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/>
  44507. (which must be a member of this DirectedEdgeStar).
  44508. </summary>
  44509. <param name="dirEdge"></param>
  44510. <returns></returns>
  44511. </member>
  44512. <member name="M:NetTopologySuite.Planargraph.DirectedEdgeStar.GetNextCWEdge(NetTopologySuite.Planargraph.DirectedEdge)">
  44513. <summary>
  44514. Returns the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> on the right-hand (CW)
  44515. side of the given <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/>
  44516. (which must be a member of this DirectedEdgeStar).
  44517. </summary>
  44518. </member>
  44519. <member name="T:NetTopologySuite.Planargraph.Edge">
  44520. <summary>
  44521. Represents an undirected edge of a {PlanarGraph}. An undirected edge
  44522. in fact simply acts as a central point of reference for two opposite
  44523. <c>DirectedEdge</c>s.
  44524. Usually a client using a <c>PlanarGraph</c> will subclass <c>Edge</c>
  44525. to add its own application-specific data and methods.
  44526. </summary>
  44527. </member>
  44528. <member name="F:NetTopologySuite.Planargraph.Edge.dirEdge">
  44529. <summary>
  44530. The two DirectedEdges associated with this Edge.
  44531. </summary>
  44532. </member>
  44533. <member name="M:NetTopologySuite.Planargraph.Edge.#ctor">
  44534. <summary>
  44535. Constructs an Edge whose DirectedEdges are not yet set. Be sure to call
  44536. <c>SetDirectedEdges(DirectedEdge, DirectedEdge)</c>.
  44537. </summary>
  44538. </member>
  44539. <member name="M:NetTopologySuite.Planargraph.Edge.#ctor(NetTopologySuite.Planargraph.DirectedEdge,NetTopologySuite.Planargraph.DirectedEdge)">
  44540. <summary>
  44541. Constructs an Edge initialized with the given DirectedEdges, and for each
  44542. DirectedEdge: sets the Edge, sets the symmetric DirectedEdge, and adds
  44543. this Edge to its from-Node.
  44544. </summary>
  44545. <param name="de0"></param>
  44546. <param name="de1"></param>
  44547. </member>
  44548. <member name="M:NetTopologySuite.Planargraph.Edge.SetDirectedEdges(NetTopologySuite.Planargraph.DirectedEdge,NetTopologySuite.Planargraph.DirectedEdge)">
  44549. <summary>
  44550. Initializes this Edge's two DirectedEdges, and for each DirectedEdge: sets the
  44551. Edge, sets the symmetric DirectedEdge, and adds this Edge to its from-Node.
  44552. </summary>
  44553. <param name="de0"></param>
  44554. <param name="de1"></param>
  44555. </member>
  44556. <member name="M:NetTopologySuite.Planargraph.Edge.GetDirEdge(System.Int32)">
  44557. <summary>
  44558. Returns one of the DirectedEdges associated with this Edge.
  44559. </summary>
  44560. <param name="i">0 or 1.</param>
  44561. <returns></returns>
  44562. </member>
  44563. <member name="M:NetTopologySuite.Planargraph.Edge.GetDirEdge(NetTopologySuite.Planargraph.Node)">
  44564. <summary>
  44565. Returns the DirectedEdge that starts from the given node, or null if the
  44566. node is not one of the two nodes associated with this Edge.
  44567. </summary>
  44568. <param name="fromNode"></param>
  44569. <returns></returns>
  44570. </member>
  44571. <member name="M:NetTopologySuite.Planargraph.Edge.GetOppositeNode(NetTopologySuite.Planargraph.Node)">
  44572. <summary>
  44573. If <c>node</c> is one of the two nodes associated with this Edge,
  44574. returns the other node; otherwise returns null.
  44575. </summary>
  44576. <param name="node"></param>
  44577. <returns></returns>
  44578. </member>
  44579. <member name="M:NetTopologySuite.Planargraph.Edge.Remove">
  44580. <summary>
  44581. Removes this edge from its containing graph.
  44582. </summary>
  44583. </member>
  44584. <member name="P:NetTopologySuite.Planargraph.Edge.IsRemoved">
  44585. <summary>
  44586. Tests whether this component has been removed from its containing graph.
  44587. </summary>
  44588. <value></value>
  44589. </member>
  44590. <member name="T:NetTopologySuite.Planargraph.GraphComponent">
  44591. <summary>
  44592. The base class for all graph component classes.
  44593. Maintains flags of use in generic graph algorithms.
  44594. Provides two flags:
  44595. marked - typically this is used to indicate a state that persists
  44596. for the course of the graph's lifetime. For instance, it can be
  44597. used to indicate that a component has been logically deleted from the graph.
  44598. visited - this is used to indicate that a component has been processed
  44599. or visited by an single graph algorithm. For instance, a breadth-first traversal of the
  44600. graph might use this to indicate that a node has already been traversed.
  44601. The visited flag may be set and cleared many times during the lifetime of a graph.
  44602. </summary>
  44603. </member>
  44604. <member name="M:NetTopologySuite.Planargraph.GraphComponent.SetVisited(System.Collections.IEnumerator,System.Boolean)">
  44605. <summary>
  44606. Sets the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state
  44607. for all <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />s in an <see cref="T:System.Collections.IEnumerator" />.
  44608. </summary>
  44609. <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
  44610. <param name="visited">The state to set the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> flag to.</param>
  44611. </member>
  44612. <member name="M:NetTopologySuite.Planargraph.GraphComponent.SetMarked(System.Collections.IEnumerator,System.Boolean)">
  44613. <summary>
  44614. Sets the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Marked" /> state
  44615. for all <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />s in an <see cref="T:System.Collections.IEnumerator" />.
  44616. </summary>
  44617. <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
  44618. <param name="marked">The state to set the <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Marked" /> flag to.</param>
  44619. </member>
  44620. <member name="M:NetTopologySuite.Planargraph.GraphComponent.GetComponentWithVisitedState(System.Collections.IEnumerator,System.Boolean)">
  44621. <summary>
  44622. Finds the first <see cref="T:NetTopologySuite.Planargraph.GraphComponent" />
  44623. in a <see cref="T:System.Collections.IEnumerator" /> set
  44624. which has the specified <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state.
  44625. </summary>
  44626. <param name="i">A <see cref="T:System.Collections.IEnumerator" /> to scan.</param>
  44627. <param name="visitedState">The <see cref="P:NetTopologySuite.Planargraph.GraphComponent.Visited" /> state to test.</param>
  44628. <returns>The first <see cref="T:NetTopologySuite.Planargraph.GraphComponent" /> found, or <c>null</c> if none found.</returns>
  44629. </member>
  44630. <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsVisited">
  44631. <summary>
  44632. Tests if a component has been visited during the course of a graph algorithm.
  44633. </summary>
  44634. </member>
  44635. <member name="P:NetTopologySuite.Planargraph.GraphComponent.Visited">
  44636. <summary>
  44637. Gets/Sets the visited flag for this component.
  44638. </summary>
  44639. </member>
  44640. <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsMarked">
  44641. <summary>
  44642. Tests if a component has been marked at some point during the processing
  44643. involving this graph.
  44644. </summary>
  44645. </member>
  44646. <member name="P:NetTopologySuite.Planargraph.GraphComponent.Marked">
  44647. <summary>
  44648. Gets/Sets the marked flag for this component.
  44649. </summary>
  44650. </member>
  44651. <member name="P:NetTopologySuite.Planargraph.GraphComponent.IsRemoved">
  44652. <summary>
  44653. Tests whether this component has been removed from its containing graph.
  44654. </summary>
  44655. </member>
  44656. <member name="P:NetTopologySuite.Planargraph.GraphComponent.Data">
  44657. <summary>
  44658. Gets or sets user defined data for this component
  44659. </summary>
  44660. </member>
  44661. <member name="T:NetTopologySuite.Planargraph.Node">
  44662. <summary>
  44663. A node in a <c>PlanarGraph</c> is a location where 0 or more <c>Edge</c>s
  44664. meet. A node is connected to each of its incident Edges via an outgoing
  44665. DirectedEdge. Some clients using a <c>PlanarGraph</c> may want to
  44666. subclass <c>Node</c> to add their own application-specific
  44667. data and methods.
  44668. </summary>
  44669. </member>
  44670. <member name="M:NetTopologySuite.Planargraph.Node.GetEdgesBetween(NetTopologySuite.Planargraph.Node,NetTopologySuite.Planargraph.Node)">
  44671. <summary>
  44672. Returns all Edges that connect the two nodes (which are assumed to be different).
  44673. </summary>
  44674. <param name="node0"></param>
  44675. <param name="node1"></param>
  44676. <returns></returns>
  44677. </member>
  44678. <member name="F:NetTopologySuite.Planargraph.Node.pt">
  44679. <summary>
  44680. The location of this Node.
  44681. </summary>
  44682. </member>
  44683. <member name="F:NetTopologySuite.Planargraph.Node.deStar">
  44684. <summary>
  44685. The collection of DirectedEdges that leave this Node.
  44686. </summary>
  44687. </member>
  44688. <member name="M:NetTopologySuite.Planargraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate)">
  44689. <summary>
  44690. Constructs a Node with the given location.
  44691. </summary>
  44692. <param name="pt"></param>
  44693. </member>
  44694. <member name="M:NetTopologySuite.Planargraph.Node.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Planargraph.DirectedEdgeStar)">
  44695. <summary>
  44696. Constructs a Node with the given location and collection of outgoing DirectedEdges.
  44697. </summary>
  44698. <param name="pt"></param>
  44699. <param name="deStar"></param>
  44700. </member>
  44701. <member name="P:NetTopologySuite.Planargraph.Node.Coordinate">
  44702. <summary>
  44703. Returns the location of this Node.
  44704. </summary>
  44705. </member>
  44706. <member name="M:NetTopologySuite.Planargraph.Node.AddOutEdge(NetTopologySuite.Planargraph.DirectedEdge)">
  44707. <summary>
  44708. Adds an outgoing DirectedEdge to this Node.
  44709. </summary>
  44710. <param name="de"></param>
  44711. </member>
  44712. <member name="P:NetTopologySuite.Planargraph.Node.OutEdges">
  44713. <summary>
  44714. Returns the collection of DirectedEdges that leave this Node.
  44715. </summary>
  44716. </member>
  44717. <member name="P:NetTopologySuite.Planargraph.Node.Degree">
  44718. <summary>
  44719. Returns the number of edges around this Node.
  44720. </summary>
  44721. </member>
  44722. <member name="M:NetTopologySuite.Planargraph.Node.GetIndex(NetTopologySuite.Planargraph.Edge)">
  44723. <summary>
  44724. Returns the zero-based index of the given Edge, after sorting in ascending order
  44725. by angle with the positive x-axis.
  44726. </summary>
  44727. <param name="edge"></param>
  44728. <returns></returns>
  44729. </member>
  44730. <member name="M:NetTopologySuite.Planargraph.Node.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
  44731. <summary>
  44732. Removes a <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> incident on this node. Does not change the state of the directed edge.
  44733. </summary>
  44734. </member>
  44735. <member name="M:NetTopologySuite.Planargraph.Node.Remove">
  44736. <summary>
  44737. Removes this node from its containing graph.
  44738. </summary>
  44739. </member>
  44740. <member name="P:NetTopologySuite.Planargraph.Node.IsRemoved">
  44741. <summary>
  44742. Tests whether this component has been removed from its containing graph.
  44743. </summary>
  44744. <value></value>
  44745. </member>
  44746. <member name="M:NetTopologySuite.Planargraph.Node.ToString">
  44747. <summary>
  44748. </summary>
  44749. <returns></returns>
  44750. </member>
  44751. <member name="T:NetTopologySuite.Planargraph.NodeMap">
  44752. <summary>
  44753. A map of <see cref="T:NetTopologySuite.Planargraph.Node">nodes</see>, indexed by the coordinate of the node.
  44754. </summary>
  44755. </member>
  44756. <member name="M:NetTopologySuite.Planargraph.NodeMap.Add(NetTopologySuite.Planargraph.Node)">
  44757. <summary>
  44758. Adds a node to the map, replacing any that is already at that location.
  44759. </summary>
  44760. <param name="n"></param>
  44761. <returns>The added node.</returns>
  44762. </member>
  44763. <member name="M:NetTopologySuite.Planargraph.NodeMap.Remove(NetTopologySuite.Geometries.Coordinate)">
  44764. <summary>
  44765. Removes the Node at the given location, and returns it (or null if no Node was there).
  44766. </summary>
  44767. <param name="pt"></param>
  44768. <returns></returns>
  44769. </member>
  44770. <member name="M:NetTopologySuite.Planargraph.NodeMap.Find(NetTopologySuite.Geometries.Coordinate)">
  44771. <summary>
  44772. Returns the Node at the given location, or null if no Node was there.
  44773. </summary>
  44774. <param name="coord"></param>
  44775. <returns></returns>
  44776. </member>
  44777. <member name="M:NetTopologySuite.Planargraph.NodeMap.GetEnumerator">
  44778. <summary>
  44779. Returns an Iterator over the Nodes in this NodeMap, sorted in ascending order
  44780. by angle with the positive x-axis.
  44781. </summary>
  44782. </member>
  44783. <member name="P:NetTopologySuite.Planargraph.NodeMap.Values">
  44784. <summary>
  44785. Returns the Nodes in this NodeMap, sorted in ascending order
  44786. by angle with the positive x-axis.
  44787. </summary>
  44788. </member>
  44789. <member name="P:NetTopologySuite.Planargraph.NodeMap.Count">
  44790. <summary>
  44791. Returns the number of Nodes in this NodeMap.
  44792. </summary>
  44793. </member>
  44794. <member name="T:NetTopologySuite.Planargraph.PlanarGraph">
  44795. <summary>
  44796. Represents a directed graph which is embeddable in a planar surface.
  44797. This class and the other classes in this package serve as a framework for
  44798. building planar graphs for specific algorithms. This class must be
  44799. subclassed to expose appropriate methods to construct the graph. This allows
  44800. controlling the types of graph components ({DirectedEdge}s,
  44801. <c>Edge</c>s and <c>Node</c>s) which can be added to the graph. An
  44802. application which uses the graph framework will almost always provide
  44803. subclasses for one or more graph components, which hold application-specific
  44804. data and graph algorithms.
  44805. </summary>
  44806. </member>
  44807. <member name="F:NetTopologySuite.Planargraph.PlanarGraph._edges">
  44808. <summary>
  44809. </summary>
  44810. </member>
  44811. <member name="F:NetTopologySuite.Planargraph.PlanarGraph.dirEdges">
  44812. <summary>
  44813. </summary>
  44814. </member>
  44815. <member name="F:NetTopologySuite.Planargraph.PlanarGraph.nodeMap">
  44816. <summary>
  44817. </summary>
  44818. </member>
  44819. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.FindNode(NetTopologySuite.Geometries.Coordinate)">
  44820. <summary>
  44821. Returns the <see cref="T:NetTopologySuite.Planargraph.Node"/> at the given <paramref name="pt">location</paramref>, or <c>null</c> if no <see cref="T:NetTopologySuite.Planargraph.Node"/> was there.
  44822. </summary>
  44823. <param name="pt">The location</param>
  44824. <returns>The node found<br/>
  44825. or <c>null</c> if this graph contains no node at the location
  44826. </returns>
  44827. </member>
  44828. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.Node)">
  44829. <summary>
  44830. Adds a node to the map, replacing any that is already at that location.
  44831. Only subclasses can add Nodes, to ensure Nodes are of the right type.
  44832. </summary>
  44833. <param name="node"></param>
  44834. <returns>The added node.</returns>
  44835. </member>
  44836. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.Edge)">
  44837. <summary>
  44838. Adds the Edge and its DirectedEdges with this PlanarGraph.
  44839. Assumes that the Edge has already been created with its associated DirectEdges.
  44840. Only subclasses can add Edges, to ensure the edges added are of the right class.
  44841. </summary>
  44842. <param name="edge"></param>
  44843. </member>
  44844. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Add(NetTopologySuite.Planargraph.DirectedEdge)">
  44845. <summary>
  44846. Adds the Edge to this PlanarGraph; only subclasses can add DirectedEdges,
  44847. to ensure the edges added are of the right class.
  44848. </summary>
  44849. <param name="dirEdge"></param>
  44850. </member>
  44851. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetNodeEnumerator">
  44852. <summary>
  44853. Returns an IEnumerator over the Nodes in this PlanarGraph.
  44854. </summary>
  44855. <returns></returns>
  44856. </member>
  44857. <member name="P:NetTopologySuite.Planargraph.PlanarGraph.Nodes">
  44858. <summary>
  44859. Returns the Nodes in this PlanarGraph.
  44860. </summary>
  44861. </member>
  44862. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetDirEdgeEnumerator">
  44863. <summary>
  44864. Returns an Iterator over the DirectedEdges in this PlanarGraph, in the order in which they
  44865. were added.
  44866. </summary>
  44867. <returns></returns>
  44868. </member>
  44869. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.GetEdgeEnumerator">
  44870. <summary>
  44871. Returns an Iterator over the Edges in this PlanarGraph, in the order in which they
  44872. were added.
  44873. </summary>
  44874. <returns></returns>
  44875. </member>
  44876. <member name="P:NetTopologySuite.Planargraph.PlanarGraph.Edges">
  44877. <summary>
  44878. Returns the Edges that have been added to this PlanarGraph.
  44879. </summary>
  44880. </member>
  44881. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.Edge)">
  44882. <summary>
  44883. Removes an Edge and its associated DirectedEdges from their from-Nodes and
  44884. from this PlanarGraph. Note: This method does not remove the Nodes associated
  44885. with the Edge, even if the removal of the Edge reduces the degree of a
  44886. Node to zero.
  44887. </summary>
  44888. <param name="edge"></param>
  44889. </member>
  44890. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.DirectedEdge)">
  44891. <summary>
  44892. Removes a <see cref="T:NetTopologySuite.Planargraph.DirectedEdge"/> from its from-<see cref="T:NetTopologySuite.Planargraph.Node"/> and from this PlanarGraph.
  44893. </summary>
  44894. <remarks>
  44895. This method does not remove the <see cref="T:NetTopologySuite.Planargraph.Node"/>s associated with the DirectedEdge,
  44896. even if the removal of the DirectedEdge reduces the degree of a Node to zero.
  44897. </remarks>
  44898. <param name="de"></param>
  44899. </member>
  44900. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.Remove(NetTopologySuite.Planargraph.Node)">
  44901. <summary>
  44902. Removes a node from the graph, along with any associated DirectedEdges and
  44903. Edges.
  44904. </summary>
  44905. <param name="node"></param>
  44906. </member>
  44907. <member name="M:NetTopologySuite.Planargraph.PlanarGraph.FindNodesOfDegree(System.Int32)">
  44908. <summary>
  44909. Returns all Nodes with the given number of Edges around it.
  44910. </summary>
  44911. <param name="degree"></param>
  44912. <returns></returns>
  44913. </member>
  44914. <member name="T:NetTopologySuite.Planargraph.Subgraph">
  44915. <summary>
  44916. A subgraph of a <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
  44917. A subgraph may contain any subset of <see cref="T:NetTopologySuite.Planargraph.Edge" />s
  44918. from the parent graph.
  44919. It will also automatically contain all <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s
  44920. and <see cref="T:NetTopologySuite.Planargraph.Node" />s associated with those edges.
  44921. No new objects are created when edges are added -
  44922. all associated components must already exist in the parent graph.
  44923. </summary>
  44924. </member>
  44925. <member name="F:NetTopologySuite.Planargraph.Subgraph.parentGraph">
  44926. <summary>
  44927. </summary>
  44928. </member>
  44929. <member name="F:NetTopologySuite.Planargraph.Subgraph.edges">
  44930. <summary>
  44931. </summary>
  44932. </member>
  44933. <member name="F:NetTopologySuite.Planargraph.Subgraph.dirEdges">
  44934. <summary>
  44935. </summary>
  44936. </member>
  44937. <member name="F:NetTopologySuite.Planargraph.Subgraph.nodeMap">
  44938. <summary>
  44939. </summary>
  44940. </member>
  44941. <member name="M:NetTopologySuite.Planargraph.Subgraph.#ctor(NetTopologySuite.Planargraph.PlanarGraph)">
  44942. <summary>
  44943. Creates a new subgraph of the given <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" />.
  44944. </summary>
  44945. <param name="parentGraph"></param>
  44946. </member>
  44947. <member name="M:NetTopologySuite.Planargraph.Subgraph.GetParent">
  44948. <summary>
  44949. Gets the <see cref="T:NetTopologySuite.Planargraph.PlanarGraph" /> which this subgraph is part of.
  44950. </summary>
  44951. <returns></returns>
  44952. </member>
  44953. <member name="M:NetTopologySuite.Planargraph.Subgraph.Add(NetTopologySuite.Planargraph.Edge)">
  44954. <summary>
  44955. Adds an <see cref="T:NetTopologySuite.Planargraph.Edge" /> to the subgraph.
  44956. The associated <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s and <see cref="T:NetTopologySuite.Planargraph.Node" />s are also added.
  44957. </summary>
  44958. <param name="e">The <see cref="T:NetTopologySuite.Planargraph.Edge" /> to add.</param>
  44959. </member>
  44960. <member name="M:NetTopologySuite.Planargraph.Subgraph.GetDirEdgeEnumerator">
  44961. <summary>
  44962. Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.DirectedEdge" />s in this graph,
  44963. in the order in which they were added.
  44964. </summary>
  44965. <returns></returns>
  44966. </member>
  44967. <member name="M:NetTopologySuite.Planargraph.Subgraph.GetEdgeEnumerator">
  44968. <summary>
  44969. Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.Edge" />s in this graph,
  44970. in the order in which they were added.
  44971. </summary>
  44972. <returns></returns>
  44973. </member>
  44974. <member name="M:NetTopologySuite.Planargraph.Subgraph.GetNodeEnumerator">
  44975. <summary>
  44976. Returns an <see cref="T:System.Collections.Generic.IEnumerator`1" /> over the <see cref="T:NetTopologySuite.Planargraph.Node" />s in this graph.
  44977. </summary>
  44978. <returns></returns>
  44979. </member>
  44980. <member name="M:NetTopologySuite.Planargraph.Subgraph.Contains(NetTopologySuite.Planargraph.Edge)">
  44981. <summary>
  44982. Tests whether an <see cref="T:NetTopologySuite.Planargraph.Edge" /> is contained in this subgraph.
  44983. </summary>
  44984. <param name="e">The <see cref="T:NetTopologySuite.Planargraph.Edge" /> to test.</param>
  44985. <returns><c>true</c> if the <see cref="T:NetTopologySuite.Planargraph.Edge" /> is contained in this subgraph.</returns>
  44986. </member>
  44987. <member name="T:NetTopologySuite.Precision.CommonBits">
  44988. <summary>
  44989. Determines the maximum number of common most-significant
  44990. bits in the mantissa of one or numbers.
  44991. Can be used to compute the double-precision number which
  44992. is represented by the common bits.
  44993. If there are no common bits, the number computed is 0.0.
  44994. </summary>
  44995. </member>
  44996. <member name="M:NetTopologySuite.Precision.CommonBits.SignExpBits(System.Int64)">
  44997. <summary>
  44998. Computes the bit pattern for the sign and exponent of a
  44999. double-precision number.
  45000. </summary>
  45001. <param name="num"></param>
  45002. <returns>The bit pattern for the sign and exponent.</returns>
  45003. </member>
  45004. <member name="M:NetTopologySuite.Precision.CommonBits.NumCommonMostSigMantissaBits(System.Int64,System.Int64)">
  45005. <summary>
  45006. This computes the number of common most-significant bits in the mantissas
  45007. of two double-precision numbers.
  45008. It does not count the hidden bit, which is always 1.
  45009. It does not determine whether the numbers have the same exponent - if they do
  45010. not, the value computed by this function is meaningless.
  45011. </summary>
  45012. <param name="num1"></param>
  45013. /// <param name="num2"></param>
  45014. <returns>The number of common most-significant mantissa bits.</returns>
  45015. </member>
  45016. <member name="M:NetTopologySuite.Precision.CommonBits.ZeroLowerBits(System.Int64,System.Int32)">
  45017. <summary>
  45018. Zeroes the lower n bits of a bitstring.
  45019. </summary>
  45020. <param name="bits">The bitstring to alter.</param>
  45021. <param name="nBits">the number of bits to zero.</param>
  45022. <returns>The zeroed bitstring.</returns>
  45023. </member>
  45024. <member name="M:NetTopologySuite.Precision.CommonBits.GetBit(System.Int64,System.Int32)">
  45025. <summary>
  45026. Extracts the i'th bit of a bitstring.
  45027. </summary>
  45028. <param name="bits">The bitstring to extract from.</param>
  45029. <param name="i">The bit to extract.</param>
  45030. <returns>The value of the extracted bit.</returns>
  45031. </member>
  45032. <member name="M:NetTopologySuite.Precision.CommonBits.Add(System.Double)">
  45033. <summary>
  45034. </summary>
  45035. <param name="num"></param>
  45036. </member>
  45037. <member name="P:NetTopologySuite.Precision.CommonBits.Common">
  45038. <summary>
  45039. </summary>
  45040. </member>
  45041. <member name="M:NetTopologySuite.Precision.CommonBits.ToString(System.Int64)">
  45042. <summary>
  45043. A representation of the Double bits formatted for easy readability
  45044. </summary>
  45045. <param name="bits"></param>
  45046. <returns></returns>
  45047. </member>
  45048. <member name="T:NetTopologySuite.Precision.CommonBitsOp">
  45049. <summary>
  45050. Provides versions of Geometry spatial functions which use
  45051. common bit removal to reduce the likelihood of robustness problems.
  45052. In the current implementation no rounding is performed on the
  45053. reshifted result point, which means that it is possible
  45054. that the returned Geometry is invalid.
  45055. Client classes should check the validity of the returned result themselves.
  45056. </summary>
  45057. </member>
  45058. <member name="M:NetTopologySuite.Precision.CommonBitsOp.#ctor">
  45059. <summary>
  45060. Creates a new instance of class, which reshifts result <c>Geometry</c>s.
  45061. </summary>
  45062. </member>
  45063. <member name="M:NetTopologySuite.Precision.CommonBitsOp.#ctor(System.Boolean)">
  45064. <summary>
  45065. Creates a new instance of class, specifying whether
  45066. the result <c>Geometry</c>s should be reshifted.
  45067. </summary>
  45068. <param name="returnToOriginalPrecision"></param>
  45069. </member>
  45070. <member name="M:NetTopologySuite.Precision.CommonBitsOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45071. <summary>
  45072. Computes the set-theoretic intersection of two <c>Geometry</c>s, using enhanced precision.
  45073. </summary>
  45074. <param name="geom0">The first Geometry.</param>
  45075. <param name="geom1">The second Geometry.</param>
  45076. <returns>The Geometry representing the set-theoretic intersection of the input Geometries.</returns>
  45077. </member>
  45078. <member name="M:NetTopologySuite.Precision.CommonBitsOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45079. <summary>
  45080. Computes the set-theoretic union of two <c>Geometry</c>s, using enhanced precision.
  45081. </summary>
  45082. <param name="geom0">The first Geometry.</param>
  45083. <param name="geom1">The second Geometry.</param>
  45084. <returns>The Geometry representing the set-theoretic union of the input Geometries.</returns>
  45085. </member>
  45086. <member name="M:NetTopologySuite.Precision.CommonBitsOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45087. <summary>
  45088. Computes the set-theoretic difference of two <c>Geometry</c>s, using enhanced precision.
  45089. </summary>
  45090. <param name="geom0">The first Geometry.</param>
  45091. <param name="geom1">The second Geometry, to be subtracted from the first.</param>
  45092. <returns>The Geometry representing the set-theoretic difference of the input Geometries.</returns>
  45093. </member>
  45094. <member name="M:NetTopologySuite.Precision.CommonBitsOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45095. <summary
  45096. > Computes the set-theoretic symmetric difference of two geometries,
  45097. using enhanced precision.
  45098. </summary>
  45099. <param name="geom0">The first Geometry.</param>
  45100. <param name="geom1">The second Geometry.</param>
  45101. <returns>The Geometry representing the set-theoretic symmetric difference of the input Geometries.</returns>
  45102. </member>
  45103. <member name="M:NetTopologySuite.Precision.CommonBitsOp.Buffer(NetTopologySuite.Geometries.Geometry,System.Double)">
  45104. <summary>
  45105. Computes the buffer a point, using enhanced precision.
  45106. </summary>
  45107. <param name="geom0">The Geometry to buffer.</param>
  45108. <param name="distance">The buffer distance.</param>
  45109. <returns>The Geometry representing the buffer of the input Geometry.</returns>
  45110. </member>
  45111. <member name="M:NetTopologySuite.Precision.CommonBitsOp.ComputeResultPrecision(NetTopologySuite.Geometries.Geometry)">
  45112. <summary>
  45113. If required, returning the result to the original precision if required.
  45114. In this current implementation, no rounding is performed on the
  45115. reshifted result point, which means that it is possible
  45116. that the returned Geometry is invalid.
  45117. </summary>
  45118. <param name="result">The result Geometry to modify.</param>
  45119. <returns>The result Geometry with the required precision.</returns>
  45120. </member>
  45121. <member name="M:NetTopologySuite.Precision.CommonBitsOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry)">
  45122. <summary>
  45123. Computes a copy of the input <c>Geometry</c> with the calculated common bits
  45124. removed from each coordinate.
  45125. </summary>
  45126. <param name="geom0">The Geometry to remove common bits from.</param>
  45127. <returns>A copy of the input Geometry with common bits removed.</returns>
  45128. </member>
  45129. <member name="M:NetTopologySuite.Precision.CommonBitsOp.RemoveCommonBits(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45130. <summary>
  45131. Computes a copy of each input <c>Geometry</c>s with the calculated common bits
  45132. removed from each coordinate.
  45133. </summary>
  45134. <param name="geom0">A Geometry to remove common bits from.</param>
  45135. <param name="geom1">A Geometry to remove common bits from.</param>
  45136. <returns>
  45137. An array containing copies
  45138. of the input Geometry's with common bits removed.
  45139. </returns>
  45140. </member>
  45141. <member name="T:NetTopologySuite.Precision.CommonBitsRemover">
  45142. <summary>
  45143. Removes common most-significant mantissa bits
  45144. from one or more <see cref="T:NetTopologySuite.Geometries.Geometry"/>s.
  45145. <para/>
  45146. The CommonBitsRemover "scavenges" precision
  45147. which is "wasted" by a large displacement of the geometry
  45148. from the origin.
  45149. For example, if a small geometry is displaced from the origin
  45150. by a large distance,
  45151. the displacement increases the significant figures in the coordinates,
  45152. but does not affect the <i>relative</i> topology of the geometry.
  45153. Thus the geometry can be translated back to the origin
  45154. without affecting its topology.
  45155. In order to compute the translation without affecting
  45156. the full precision of the coordinate values,
  45157. the translation is performed at the bit level by
  45158. removing the common leading mantissa bits.
  45159. <para/>
  45160. If the geometry envelope already contains the origin,
  45161. the translation procedure cannot be applied.
  45162. In this case, the common bits value is computed as zero.
  45163. <para/>
  45164. If the geometry crosses the Y axis but not the X axis
  45165. (and <i>mutatis mutandum</i>),
  45166. the common bits for Y are zero,
  45167. but the common bits for X are non-zero.
  45168. </summary>
  45169. </member>
  45170. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Add(NetTopologySuite.Geometries.Geometry)">
  45171. <summary>
  45172. Add a point to the set of geometries whose common bits are
  45173. being computed. After this method has executed the
  45174. common coordinate reflects the common bits of all added
  45175. geometries.
  45176. </summary>
  45177. <param name="geom">A Geometry to test for common bits.</param>
  45178. </member>
  45179. <member name="P:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinate">
  45180. <summary>
  45181. The common bits of the Coordinates in the supplied Geometries.
  45182. </summary>
  45183. </member>
  45184. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.RemoveCommonBits(NetTopologySuite.Geometries.Geometry)">
  45185. <summary>
  45186. Removes the common coordinate bits from a Geometry.
  45187. The coordinates of the Geometry are changed.
  45188. </summary>
  45189. <param name="geom">The Geometry from which to remove the common coordinate bits.</param>
  45190. <returns>The shifted Geometry.</returns>
  45191. </member>
  45192. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.AddCommonBits(NetTopologySuite.Geometries.Geometry)">
  45193. <summary>
  45194. Adds the common coordinate bits back into a Geometry.
  45195. The coordinates of the Geometry are changed.
  45196. </summary>
  45197. <param name="geom">The Geometry to which to add the common coordinate bits.</param>
  45198. </member>
  45199. <member name="T:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter">
  45200. <summary>
  45201. </summary>
  45202. </member>
  45203. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  45204. <summary>
  45205. </summary>
  45206. <param name="coord"></param>
  45207. </member>
  45208. <member name="P:NetTopologySuite.Precision.CommonBitsRemover.CommonCoordinateFilter.CommonCoordinate">
  45209. <summary>
  45210. </summary>
  45211. </member>
  45212. <member name="T:NetTopologySuite.Precision.CommonBitsRemover.Translater">
  45213. <summary>
  45214. </summary>
  45215. </member>
  45216. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Translater.#ctor(NetTopologySuite.Geometries.Coordinate)">
  45217. <summary>
  45218. </summary>
  45219. <param name="trans"></param>
  45220. </member>
  45221. <member name="M:NetTopologySuite.Precision.CommonBitsRemover.Translater.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  45222. <summary>
  45223. </summary>
  45224. <param name="seq">The coordinate sequence</param>
  45225. </member>
  45226. <member name="T:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter">
  45227. <summary>
  45228. Reduces the precision of the <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in a
  45229. <see cref="T:NetTopologySuite.Geometries.CoordinateSequence"/> to match the supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>.
  45230. </summary>
  45231. <remarks>
  45232. Uses <see cref="M:NetTopologySuite.Geometries.PrecisionModel.MakePrecise(System.Double)"/>.
  45233. The input is modified in-place, so
  45234. it should be cloned beforehand if the
  45235. original should not be modified.
  45236. </remarks>
  45237. <author>mbdavis</author>
  45238. </member>
  45239. <member name="M:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.#ctor(NetTopologySuite.Geometries.PrecisionModel)">
  45240. <summary>
  45241. Creates a new precision reducer filter.
  45242. </summary>
  45243. <param name="precModel">The PrecisionModel to use</param>
  45244. </member>
  45245. <member name="M:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.Filter(NetTopologySuite.Geometries.CoordinateSequence,System.Int32)">
  45246. <summary>
  45247. Rounds the Coordinates in the sequence to match the PrecisionModel
  45248. </summary>
  45249. </member>
  45250. <member name="P:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.Done">
  45251. <summary>
  45252. Always runs over all geometry components.
  45253. </summary>
  45254. </member>
  45255. <member name="P:NetTopologySuite.Precision.CoordinatePrecisionReducerFilter.GeometryChanged">
  45256. <summary>
  45257. Always reports that the geometry has changed
  45258. </summary>
  45259. </member>
  45260. <member name="T:NetTopologySuite.Precision.EnhancedPrecisionOp">
  45261. <summary>
  45262. Provides versions of Geometry spatial functions which use
  45263. enhanced precision techniques to reduce the likelihood of robustness problems.
  45264. </summary>
  45265. </member>
  45266. <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.#ctor">
  45267. <summary>
  45268. Only static methods!
  45269. </summary>
  45270. </member>
  45271. <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Intersection(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45272. <summary>
  45273. Computes the set-theoretic intersection of two <c>Geometry</c>s, using enhanced precision.
  45274. </summary>
  45275. <param name="geom0">The first Geometry.</param>
  45276. <param name="geom1">The second Geometry.</param>
  45277. <returns>The Geometry representing the set-theoretic intersection of the input Geometries.</returns>
  45278. </member>
  45279. <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Union(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45280. <summary>
  45281. Computes the set-theoretic union of two <c>Geometry</c>s, using enhanced precision.
  45282. </summary>
  45283. <param name="geom0">The first Geometry.</param>
  45284. <param name="geom1">The second Geometry.</param>
  45285. <returns>The Geometry representing the set-theoretic union of the input Geometries.</returns>
  45286. </member>
  45287. <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.Difference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45288. <summary>
  45289. Computes the set-theoretic difference of two <c>Geometry</c>s, using enhanced precision.
  45290. </summary>
  45291. <param name="geom0">The first Geometry.</param>
  45292. <param name="geom1">The second Geometry.</param>
  45293. <returns>The Geometry representing the set-theoretic difference of the input Geometries.</returns>
  45294. </member>
  45295. <member name="M:NetTopologySuite.Precision.EnhancedPrecisionOp.SymDifference(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45296. <summary>
  45297. Computes the set-theoretic symmetric difference of two <c>Geometry</c>s, using enhanced precision.
  45298. </summary>
  45299. <param name="geom0">The first Geometry.</param>
  45300. <param name="geom1">The second Geometry.</param>
  45301. <returns>The Geometry representing the set-theoretic symmetric difference of the input Geometries.</returns>
  45302. </member>
  45303. <member name="T:NetTopologySuite.Precision.GeometryPrecisionReducer">
  45304. <summary>
  45305. Reduces the precision of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>
  45306. according to the supplied <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/>,
  45307. ensuring that the result is valid (unless specified otherwise).
  45308. <para/>
  45309. By default the geometry precision model is not changed.
  45310. This can be overridden by using <see cref="P:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePrecisionModel"/>.
  45311. <h4>Topological Precision Reduction</h4>
  45312. The default mode of operation ensures the reduced result is topologically valid
  45313. (i.e. <see cref="P:NetTopologySuite.Geometries.Geometry.IsValid"/> is true).
  45314. To ensure this polygonal geometry is reduced in a topologically valid fashion
  45315. (technically, by using snap-rounding).
  45316. Note that this may change polygonal geometry structure
  45317. (e.g.two polygons separated by a distance below the specified precision
  45318. will be merged into a single polygon).
  45319. Duplicate vertices are removed.
  45320. This mode is invoked by the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
  45321. <para/>
  45322. Normally, collapsed linear components(e.g.lines collapsing to a point)
  45323. are not included in the result.
  45324. This behavior can be changed
  45325. by setting <see cref="P:NetTopologySuite.Precision.GeometryPrecisionReducer.RemoveCollapsedComponents"/> to <c>false</c>,
  45326. or by using the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReduceKeepCollapsed(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
  45327. <para/>
  45328. In general input must be valid geometry, or an <see cref="T:System.ArgumentException"/>
  45329. will be thrown. However if the invalidity is "mild" or very small then it
  45330. may be eliminated by precision reduction.
  45331. <h4> Pointwise Precision Reduction</h4>
  45332. Alternatively, geometry can be reduced pointwise by using {@link #setPointwise(boolean)}.
  45333. Linear and point geometry are always reduced pointwise(i.e.without further change to
  45334. topology or structure), since this does not change validity.
  45335. Invalid inputs are allowed.
  45336. Duplicate vertices are preserved.
  45337. Collapsed components are always included in the result.
  45338. The result geometry may be invalid.
  45339. <para/>
  45340. This mode is invoked by the static method <see cref="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReducePointwise(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)"/>.
  45341. </summary>
  45342. </member>
  45343. <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  45344. <summary>
  45345. Reduces precision of a geometry, ensuring output geometry is valid.
  45346. Collapsed linear and polygonal components are removed.
  45347. The geometry precision model is not changed.
  45348. Invalid input geometry may cause an error,
  45349. unless the invalidity is below the scale of the precision reduction.
  45350. </summary>
  45351. <param name="g">The geometry to reduce</param>
  45352. <param name="precModel">The precision model to use</param>
  45353. <returns>The reduced geometry</returns>
  45354. <exception cref="T:System.ArgumentException">Thrwon if the reduction fails due to invalid input geometry</exception>
  45355. </member>
  45356. <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReduceKeepCollapsed(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  45357. <summary>
  45358. Reduces precision of a geometry, ensuring output polygonal geometry is valid,
  45359. and preserving collapsed linear elements.
  45360. The geometry precision model is not changed.
  45361. Invalid input geometry may cause an error,
  45362. unless the invalidity is below the scale of the precision reduction.
  45363. </summary>
  45364. <param name="g">The geometry to reduce</param>
  45365. <param name="precModel">The precision model to use</param>
  45366. <returns>The reduced geometry</returns>
  45367. <exception cref="T:System.ArgumentException">Thrwon if the reduction fails due to invalid input geometry</exception>
  45368. </member>
  45369. <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ReducePointwise(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  45370. <summary>
  45371. Reduce precision of a geometry in a pointwise way.
  45372. All input geometry elements are preserved in the output,
  45373. including invalid polygons and collapsed polygons and linestrings.
  45374. The output may not be valid, due to collapse or self-intersection.
  45375. The geometry precision model is not changed.
  45376. Invalid input geometry is allowed.
  45377. </summary>
  45378. <param name="g">The geometry to reduce</param>
  45379. <param name="precModel">The precision model to use</param>
  45380. <returns>The reduced geometry</returns>
  45381. </member>
  45382. <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.RemoveCollapsedComponents">
  45383. <summary>Gets or sets whether the reduction will result in collapsed components
  45384. being removed completely, or simply being collapsed to an (invalid)
  45385. Geometry of the same type.
  45386. The default is to remove collapsed components.
  45387. </summary>
  45388. </member>
  45389. <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePrecisionModel">
  45390. <summary>
  45391. Gets or sets whether the <see cref = "T:NetTopologySuite.Geometries.PrecisionModel"/> of the new reduced Geometry
  45392. will be changed to be the <see cref="T:NetTopologySuite.Geometries.PrecisionModel"/> supplied to
  45393. specify the precision reduction.
  45394. <para/>
  45395. The default is to <b>not</b> change the precision model
  45396. </summary>
  45397. </member>
  45398. <member name="P:NetTopologySuite.Precision.GeometryPrecisionReducer.Pointwise">
  45399. <summary>
  45400. Gets or sets whether the precision reduction will be done
  45401. in pointwise fashion only.
  45402. Pointwise precision reduction reduces the precision
  45403. of the individual coordinates only, but does
  45404. not attempt to recreate valid topology.
  45405. This is only relevant for geometries containing polygonal components.
  45406. </summary>
  45407. </member>
  45408. <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.Reduce(NetTopologySuite.Geometries.Geometry)">
  45409. <summary>
  45410. Reduces the precision of a geometry,
  45411. according to the specified strategy of this reducer.
  45412. </summary>
  45413. <param name="geom">The geometry to reduce</param>
  45414. <returns>The precision-reduced geometry</returns>
  45415. <exception cref="T:System.ArgumentException">if the reduction fails
  45416. due to input geometry is invalid.</exception>
  45417. </member>
  45418. <member name="M:NetTopologySuite.Precision.GeometryPrecisionReducer.ChangePM(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.PrecisionModel)">
  45419. <summary>
  45420. Duplicates a geometry to one that uses a different PrecisionModel,
  45421. without changing any coordinate values.
  45422. </summary>
  45423. <param name="geom">The geometry to duplicate</param>
  45424. <param name="pm">The precision model to use</param>
  45425. <returns>The geometry value with a new precision model</returns>
  45426. </member>
  45427. <member name="T:NetTopologySuite.Precision.MinimumClearance">
  45428. <summary>
  45429. Computes the Minimum Clearance of a <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  45430. <para/>
  45431. The <b>Minimum Clearance</b> is a measure of
  45432. what magnitude of perturbation of
  45433. the vertices of a geometry can be tolerated
  45434. before the geometry becomes topologically invalid.
  45435. The smaller the Minimum Clearance distance,
  45436. the less vertex perturbation the geometry can tolerate
  45437. before becoming invalid.
  45438. </summary>
  45439. <remarks>
  45440. The concept was introduced by Thompson and Van Oosterom
  45441. [TV06], based on earlier work by Milenkovic [Mi88].
  45442. <para/>
  45443. The Minimum Clearance of a geometry G
  45444. is defined to be the value <i>r</i>
  45445. such that "the movement of all points by a distance
  45446. of <i>r</i> in any direction will
  45447. guarantee to leave the geometry valid" [TV06].
  45448. An equivalent constructive definition [Mi88] is that
  45449. <i>r</i> is the largest value such:
  45450. <list type="bullet">
  45451. <item><description>No two distinct vertices of G are closer than <i>r</i>.</description></item>
  45452. <item><description>No vertex of G is closer than <i>r</i> to an edge of G of which the vertex is not an endpoint</description></item>
  45453. </list>
  45454. The following image shows an example of the Minimum Clearance
  45455. of a simple polygon.
  45456. <para/>
  45457. <center><img src="/images/minClearance.png" alt="minimum clearance"/></center>
  45458. <para/>
  45459. If G has only a single vertex (i.e. is a
  45460. <see cref="T:NetTopologySuite.Geometries.Point"/>), the value of the minimum clearance
  45461. is <see cref="F:System.Double.MaxValue"/>.
  45462. <para/>
  45463. If G is a <see cref="T:NetTopologySuite.Geometries.IPuntal"/> or <see cref="T:NetTopologySuite.Geometries.ILineal"/> geometry,
  45464. then in fact no amount of perturbation
  45465. will render the geometry invalid.
  45466. In this case a Minimum Clearance is still computed
  45467. based on the vertex and segment distances
  45468. according to the constructive definition.
  45469. <para/>
  45470. It is possible for no Minimum Clearance to exist.
  45471. For instance, a <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> with all members identical
  45472. has no Minimum Clearance
  45473. (i.e. no amount of perturbation will cause
  45474. the member points to become non-identical).
  45475. Empty geometries also have no such distance.
  45476. The lack of a meaningful MinimumClearance distance is detected
  45477. and suitable values are returned by
  45478. <see cref="M:NetTopologySuite.Precision.MinimumClearance.GetDistance"/> and <see cref="M:NetTopologySuite.Precision.MinimumClearance.GetLine"/>.
  45479. <para/>
  45480. The computation of Minimum Clearance utilizes
  45481. the <see cref="M:NetTopologySuite.Index.Strtree.STRtree`1.NearestNeighbour(NetTopologySuite.Index.Strtree.IItemDistance{NetTopologySuite.Geometries.Envelope,`0})"/>
  45482. method to provide good performance even for
  45483. large inputs.
  45484. <para/>
  45485. An interesting note is that for the case of <see cref="T:NetTopologySuite.Geometries.MultiPoint"/>s,
  45486. the computed Minimum Clearance line
  45487. effectively determines the Nearest Neighbours in the collection.
  45488. <h3>References</h3>
  45489. <list type="bullet">
  45490. <item><description>[Mi88] Milenkovic, V. J.,
  45491. <i>Verifiable implementations of geometric algorithms
  45492. using finite precision arithmetic</i>.
  45493. in Artificial Intelligence, 377-401. 1988</description></item>
  45494. <item><description>[TV06] Thompson, Rod and van Oosterom, Peter,
  45495. <i>Interchange of Spatial Data-Inhibiting Factors</i>,
  45496. Agile 2006, Visegrad, Hungary. 2006</description></item>
  45497. </list>
  45498. </remarks>
  45499. /// <author>Martin Davis</author>
  45500. </member>
  45501. <member name="M:NetTopologySuite.Precision.MinimumClearance.GetDistance(NetTopologySuite.Geometries.Geometry)">
  45502. <summary>
  45503. Computes the Minimum Clearance distance for
  45504. the given Geometry.
  45505. </summary>
  45506. <param name="g">The input geometry</param>
  45507. <returns>The minimum clearance</returns>
  45508. </member>
  45509. <member name="M:NetTopologySuite.Precision.MinimumClearance.GetLine(NetTopologySuite.Geometries.Geometry)">
  45510. <summary>
  45511. Gets a LineString containing two points
  45512. which are at the Minimum Clearance distance
  45513. for the given Geometry.
  45514. </summary>
  45515. <param name="g">The input geometry</param>
  45516. <returns>The value of the minimum clearance distance<br/>
  45517. or <c>LINESTRING EMPTY</c> if no minimum clearance distance exists.</returns>
  45518. </member>
  45519. <member name="M:NetTopologySuite.Precision.MinimumClearance.#ctor(NetTopologySuite.Geometries.Geometry)">
  45520. <summary>
  45521. Creates an object to compute the Minimum Clearance for the given Geometry
  45522. </summary>
  45523. <param name="geom">The input geometry</param>
  45524. </member>
  45525. <member name="M:NetTopologySuite.Precision.MinimumClearance.GetDistance">
  45526. <summary>
  45527. Gets the Minimum Clearance distance.
  45528. <para>If no distance exists
  45529. (e.g. in the case of two identical points)
  45530. <see cref="F:System.Double.MaxValue"/> is returned.</para>
  45531. </summary>
  45532. <returns>
  45533. The value of the minimum clearance distance<br/>
  45534. or <see cref="F:System.Double.MaxValue"/> if no Minimum Clearance distance exists
  45535. </returns>
  45536. </member>
  45537. <member name="M:NetTopologySuite.Precision.MinimumClearance.GetLine">
  45538. <summary>
  45539. Gets a LineString containing two points
  45540. which are at the Minimum Clearance distance.<para/>
  45541. If no distance could be found
  45542. (e.g. in the case of two identical points)
  45543. <c>LINESTRING EMPTY</c> is returned.
  45544. </summary>
  45545. <returns>The value of the minimum clearance distance, <br/>
  45546. or <c>LINESTRING EMPTY</c> if no minimum clearance distance exists.</returns>
  45547. </member>
  45548. <member name="T:NetTopologySuite.Precision.MinimumClearance.MinClearanceDistance">
  45549. <summary>
  45550. Implements the MinimumClearance distance function:
  45551. <code>
  45552. dist(p1, p2) =
  45553. p1 != p2 : p1.distance(p2)
  45554. p1 == p2 : Double.MAX
  45555. dist(p, seg) =
  45556. p != seq.p1 &amp;&amp; p != seg.p2
  45557. ? seg.distance(p)
  45558. : Double.MaxValue
  45559. </code>
  45560. Also computes the values of the nearest points, if any.
  45561. </summary>
  45562. <author>Martin Davis</author>
  45563. </member>
  45564. <member name="T:NetTopologySuite.Precision.PointwisePrecisionReducerTransformer">
  45565. <summary>
  45566. A transformer to reduce the precision of a geometry pointwise.
  45567. </summary>
  45568. <author>Martin Davis</author>
  45569. </member>
  45570. <member name="T:NetTopologySuite.Precision.PrecisionReducerTransformer">
  45571. <summary>
  45572. A transformer to reduce the precision of geometry in a
  45573. topologically valid way.<br/>
  45574. Repeated points are removed.
  45575. If geometry elements collapse below their valid length,
  45576. they may be removed
  45577. by specifying <c>isRemoveCollapsed</c> as <c>true</c>.
  45578. </summary>
  45579. <author>Martin Davis</author>
  45580. </member>
  45581. <member name="M:NetTopologySuite.Precision.PrecisionReducerTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  45582. <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)"/>
  45583. </member>
  45584. <member name="M:NetTopologySuite.Precision.PrecisionReducerTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
  45585. <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
  45586. </member>
  45587. <member name="T:NetTopologySuite.Precision.SimpleMinimumClearance">
  45588. <summary>
  45589. Computes the minimum clearance of a geometry or
  45590. set of geometries.<para/>
  45591. The <b>Minimum Clearance</b> is a measure of
  45592. what magnitude of perturbation of its vertices can be tolerated
  45593. by a geometry before it becomes topologically invalid.
  45594. <para/>
  45595. This class uses an inefficient O(N^2) scan.
  45596. It is primarily for testing purposes.
  45597. </summary>
  45598. <seealso cref="T:NetTopologySuite.Precision.MinimumClearance"/>
  45599. <author>Martin Davis</author>
  45600. </member>
  45601. <member name="T:NetTopologySuite.Shape.CubicBezierCurve">
  45602. <summary>
  45603. Creates a curved geometry by replacing the segments
  45604. of the input with Cubic Bezier Curves.
  45605. </summary>
  45606. <remarks>
  45607. The Bezier control points are determined from the segments of the geometry
  45608. and the alpha control parameter controlling curvedness, and
  45609. the optional skew parameter controlling the shape of the curve at vertices.
  45610. The Bezier Curves are created to be C2-continuous (smooth)
  45611. at each input vertex.
  45612. <para/>
  45613. Alternatively, the Bezier control points can be supplied explicitly.
  45614. <para/>
  45615. The result is not guaranteed to be valid, since large alpha values
  45616. may cause self-intersections.
  45617. </remarks>
  45618. </member>
  45619. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,System.Double)">
  45620. <summary>
  45621. Creates a geometry of linearized Cubic Bezier Curves
  45622. defined by the segments of the input and a parameter
  45623. controlling how curved the result should be.
  45624. </summary>
  45625. <param name="geom">The geometry defining the curve</param>
  45626. <param name="alpha">A curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
  45627. <returns>The linearized curved geometry</returns>
  45628. </member>
  45629. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
  45630. <summary>
  45631. Creates a geometry of linearized Cubic Bezier Curves
  45632. defined by the segments of the inputand a parameter
  45633. controlling how curved the result should be, with a skew factor
  45634. affecting the curve shape at each vertex.
  45635. </summary>
  45636. <param name="geom">The geometry defining the curve</param>
  45637. <param name="alpha">The curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
  45638. <param name="skew">The skew parameter (0 is none, positive skews towards longer side, negative towards shorter</param>
  45639. <returns>The linearized curved geometry</returns>
  45640. </member>
  45641. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.Create(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45642. <summary>
  45643. Creates a geometry of linearized Cubic Bezier Curves
  45644. defined by the segments of the input
  45645. and a list (or lists) of control points.
  45646. </summary>
  45647. <remarks>
  45648. Typically the control point geometry
  45649. is a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
  45650. containing an element for each line or ring in the input geometry.
  45651. The list of control points for each linear element must contain two
  45652. vertices for each segment (and thus <code>2 * npts - 2</code>).
  45653. </remarks>
  45654. <param name="geom">The geometry defining the curve</param>
  45655. <param name="controlPoints">A geometry containing the control point elements.</param>
  45656. <returns>The linearized curved geometry</returns>
  45657. </member>
  45658. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double)">
  45659. <summary>
  45660. Creates a new instance producing a Bezier curve defined by a geometry
  45661. and an alpha curvedness value.
  45662. </summary>
  45663. <param name="geom">The geometry defining curve</param>
  45664. <param name="alpha">A curvedness parameter (0 = linear, 1 = round, 2 = distorted)</param>
  45665. </member>
  45666. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,System.Double,System.Double)">
  45667. <summary>
  45668. Creates a new instance producing a Bezier curve defined by a geometry,
  45669. an alpha curvedness value, and a skew factor.
  45670. </summary>
  45671. <param name="geom">The geometry defining curve</param>
  45672. <param name="alpha">curvedness parameter (0 is linear, 1 is round, >1 is increasingly curved)</param>
  45673. <param name="skew">The skew parameter (0 is none, positive skews towards longer side, negative towards shorter</param>
  45674. </member>
  45675. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.#ctor(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  45676. <summary>
  45677. Creates a new instance producing a Bezier curve defined by a geometry,
  45678. and a list (or lists) of control points.
  45679. </summary><remarks>
  45680. <para/>
  45681. Typically the control point geometry
  45682. is a <see cref="T:NetTopologySuite.Geometries.LineString"/> or <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
  45683. containing an element for each line or ring in the input geometry.
  45684. The list of control points for each linear element must contain two
  45685. vertices for each segment (and thus <code>2 * npts - 2</code>).
  45686. </remarks>
  45687. </member>
  45688. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.GetResult">
  45689. <summary>
  45690. Gets the computed Bezier curve geometry
  45691. </summary>
  45692. <returns>The curved geometry</returns>
  45693. </member>
  45694. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.ControlPoints(NetTopologySuite.Geometries.Coordinate[],System.Boolean,System.Double,System.Double)">
  45695. <summary>
  45696. Creates control points for each vertex of curve.
  45697. The control points are collinear with each vertex,
  45698. thus providing C1-continuity.
  45699. By default the control vectors are the same length,
  45700. which provides C2-continuity(same curvature on each
  45701. side of vertex.
  45702. The alpha parameter controls the length of the control vectors.
  45703. Alpha = 0 makes the vectors zero-length, and hence flattens the curves.
  45704. Alpha = 1 makes the curve at right angles roughly circular.
  45705. Alpha > 1 starts to distort the curve and may introduce self-intersections.
  45706. <para/>
  45707. The control point array contains a pair of coordinates for each input segment.
  45708. </summary>
  45709. </member>
  45710. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.SetLineEndControlPoints(NetTopologySuite.Geometries.Coordinate[],NetTopologySuite.Geometries.Coordinate[])">
  45711. <summary>
  45712. Sets the end control points for a line.
  45713. Produce a symmetric curve for the first and last segments
  45714. by using mirrored control points for start and end vertex.
  45715. </summary>
  45716. <param name="coords">The coordinates</param>
  45717. <param name="ctrl">The control points</param>
  45718. </member>
  45719. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.AimedControlPoint(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  45720. <summary>
  45721. Creates a control point aimed at the control point at the opposite end of the segment.
  45722. </summary>
  45723. </member>
  45724. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.CubicBezier(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Double[][],NetTopologySuite.Geometries.Coordinate[])">
  45725. <summary>
  45726. Calculates vertices along a cubic Bezier curve.
  45727. </summary>
  45728. <param name="p0">The start point</param>
  45729. <param name="p1">The end point</param>
  45730. <param name="ctrl1">The first control point</param>
  45731. <param name="ctrl2">The second control point</param>
  45732. <param name="param">A set of interpolation parameters</param>
  45733. <param name="curve">An array to hold generated points.</param>
  45734. </member>
  45735. <member name="M:NetTopologySuite.Shape.CubicBezierCurve.ComputeIterpolationParameters(System.Int32)">
  45736. <summary>
  45737. Gets the interpolation parameters for a Bezier curve approximated by a
  45738. given number of vertices.
  45739. </summary>
  45740. <param name="n">The number of vertices</param>
  45741. <returns>An array of double[4] holding the parameter values</returns>
  45742. </member>
  45743. <member name="T:NetTopologySuite.Shape.Fractal.HilbertCode">
  45744. <summary>
  45745. Encodes points as the index along finite planar Hilbert curves.
  45746. <para>
  45747. The planar Hilbert Curve is a continuous space-filling curve.
  45748. In the limit the Hilbert curve has infinitely many vertices and fills
  45749. the space of the unit square.
  45750. A sequence of finite approximations to the infinite Hilbert curve
  45751. is defined by the level number.
  45752. The finite Hilbert curve at level n Hₙ contains 2ⁿ⁺¹ points.
  45753. Each finite Hilbert curve defines an ordering of the
  45754. points in the 2-dimensional range square containing the curve.
  45755. Curves fills the range square of side 2ˡᵉᵛᵉˡ.
  45756. Curve points have ordinates in the range [0, 2ˡᵉᵛᵉˡ - 1].
  45757. The index of a point along a Hilbert curve is called the Hilbert code.
  45758. The code for a given point is specific to the level chosen.
  45759. </para>
  45760. <para>
  45761. This implementation represents codes using 32-bit integers.
  45762. This allows levels 0 to 16 to be handled.
  45763. The class supports encoding points in the range of a given level curve
  45764. and decoding the point for a given code value.
  45765. </para>
  45766. <para>
  45767. The Hilbert order has the property that it tends to preserve locality.
  45768. This means that codes which are near in value will have spatially proximate
  45769. points. The converse is not always true - the delta between
  45770. codes for nearby points is not always small. But the average delta
  45771. is small enough that the Hilbert order is an effective way of linearizing space
  45772. to support range queries.
  45773. </para>
  45774. </summary>
  45775. <author>
  45776. Martin Davis
  45777. </author>
  45778. <seealso cref="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder"/>
  45779. <seealso cref="T:NetTopologySuite.Shape.Fractal.MortonCode"/>
  45780. </member>
  45781. <member name="F:NetTopologySuite.Shape.Fractal.HilbertCode.MaxLevel">
  45782. <summary>
  45783. The maximum curve level that can be represented.
  45784. </summary>
  45785. </member>
  45786. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Size(System.Int32)">
  45787. <summary>
  45788. The number of points in the curve for the given level.
  45789. The number of points is 2²ˡᵉᵛᵉˡ.
  45790. </summary>
  45791. <param name="level">The level of the curve</param>
  45792. <returns>The number of points.</returns>
  45793. </member>
  45794. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.MaxOrdinate(System.Int32)">
  45795. <summary>
  45796. The maximum ordinate value for points
  45797. in the curve for the given level.
  45798. The maximum ordinate is 2ˡᵉᵛᵉˡ - 1.
  45799. </summary>
  45800. <param name="level">The level of the curve.</param>
  45801. <returns>The maximum ordinate value.</returns>
  45802. </member>
  45803. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Level(System.Int32)">
  45804. <summary>
  45805. The level of the finite Hilbert curve which contains at least
  45806. the given number of points.
  45807. </summary>
  45808. <param name="numPoints">The number of points required.</param>
  45809. <returns>The level of the curve.</returns>
  45810. </member>
  45811. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Encode(System.Int32,System.Int32,System.Int32)">
  45812. <summary>
  45813. Encodes a point (x,y)
  45814. in the range of the the Hilbert curve at a given level
  45815. as the index of the point along the curve.
  45816. The index will lie in the range [0, 2ˡᵉᵛᵉˡ⁺¹].
  45817. </summary>
  45818. <param name="level">The level of the Hilbert curve.</param>
  45819. <param name="x">The x ordinate of the point.</param>
  45820. <param name="y">The y ordinate of the point.</param>
  45821. <returns>The index of the point along the Hilbert curve.</returns>
  45822. </member>
  45823. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.LevelClamp(System.Int32)">
  45824. <summary>
  45825. Clamps a level to the range valid for
  45826. the index algorithm used.
  45827. </summary>
  45828. <param name="level">The level of a Hilbert curve.</param>
  45829. <returns>A valid level.</returns>
  45830. </member>
  45831. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCode.Decode(System.Int32,System.Int32)">
  45832. <summary>
  45833. Computes the point on a Hilbert curve
  45834. of given level for a given code index.
  45835. The point ordinates will lie in the range [0, 2ˡᵉᵛᵉˡ - 1].
  45836. </summary>
  45837. <param name="level">The Hilbert curve level.</param>
  45838. <param name="index">The index of the point on the curve.</param>
  45839. <returns>The point on the Hilbert curve.</returns>
  45840. </member>
  45841. <member name="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder">
  45842. <summary>
  45843. Generates a <see cref="T:NetTopologySuite.Geometries.LineString"/> representing the Hilbert Curve
  45844. at a given level.
  45845. </summary>
  45846. </member>
  45847. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  45848. <summary>
  45849. Initializes a new instance of the <see cref="T:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder"/> class
  45850. using the provided <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  45851. </summary>
  45852. <param name="geomFactory">The geometry factory to use.</param>
  45853. </member>
  45854. <member name="P:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.Level">
  45855. <summary>
  45856. Gets or sets the level of curve to generate.
  45857. The level must be in the range [0 - 16].
  45858. This determines the
  45859. number of points in the generated curve.
  45860. </summary>
  45861. </member>
  45862. <member name="M:NetTopologySuite.Shape.Fractal.HilbertCurveBuilder.GetGeometry">
  45863. <inheritdoc />
  45864. </member>
  45865. <member name="F:NetTopologySuite.Shape.Fractal.KochSnowflakeBuilder.HeightFactor">
  45866. <summary>
  45867. The height of an equilateral triangle of side one
  45868. </summary>
  45869. </member>
  45870. <member name="T:NetTopologySuite.Shape.Fractal.MortonCode">
  45871. <summary>
  45872. Encodes points as the index along the planar Morton (Z-order) curve.
  45873. <para>
  45874. The planar Morton (Z-order) curve is a continuous space-filling curve.
  45875. The Morton curve defines an ordering of the
  45876. points in the positive quadrant of the plane.
  45877. The index of a point along the Morton curve is called the Morton code.
  45878. </para>
  45879. <para>
  45880. A sequence of subsets of the Morton curve can be defined by a level number.
  45881. Each level subset occupies a square range.
  45882. The curve at level n Mₙ contains 2ⁿ⁺¹ points.
  45883. It fills the range square of side 2ˡᵉᵛᵉˡ.
  45884. Curve points have ordinates in the range [0, 2ˡᵉᵛᵉˡ - 1].
  45885. The code for a given point is identical at all levels.
  45886. The level simply determines the number of points in the curve subset
  45887. and the size of the range square.
  45888. </para>
  45889. <para>
  45890. This implementation represents codes using 32-bit integers.
  45891. This allows levels 0 to 16 to be handled.
  45892. The class supports encoding points
  45893. and decoding the point for a given code value.
  45894. </para>
  45895. <para>
  45896. The Morton order has the property that it tends to preserve locality.
  45897. This means that codes which are near in value will have spatially proximate
  45898. points. The converse is not always true - the delta between
  45899. codes for nearby points is not always small. But the average delta
  45900. is small enough that the Morton order is an effective way of linearizing space
  45901. to support range queries.
  45902. </para>
  45903. </summary>
  45904. <author>
  45905. Martin Davis
  45906. </author>
  45907. <seealso cref="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder"/>
  45908. <seealso cref="T:NetTopologySuite.Shape.Fractal.HilbertCode"/>
  45909. </member>
  45910. <member name="F:NetTopologySuite.Shape.Fractal.MortonCode.MaxLevel">
  45911. <summary>
  45912. The maximum curve level that can be represented.
  45913. </summary>
  45914. </member>
  45915. <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Size(System.Int32)">
  45916. <summary>
  45917. The number of points in the curve for the given level.
  45918. The number of points is 2²ˡᵉᵛᵉˡ.
  45919. </summary>
  45920. <param name="level">The level of the curve</param>
  45921. <returns>The number of points.</returns>
  45922. </member>
  45923. <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.MaxOrdinate(System.Int32)">
  45924. <summary>
  45925. The maximum ordinate value for points
  45926. in the curve for the given level.
  45927. The maximum ordinate is 2ˡᵉᵛᵉˡ - 1.
  45928. </summary>
  45929. <param name="level">The level of the curve.</param>
  45930. <returns>The maximum ordinate value.</returns>
  45931. </member>
  45932. <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Level(System.Int32)">
  45933. <summary>
  45934. The level of the finite Morton curve which contains at least
  45935. the given number of points.
  45936. </summary>
  45937. <param name="numPoints">The number of points required.</param>
  45938. <returns>The level of the curve.</returns>
  45939. </member>
  45940. <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Encode(System.Int32,System.Int32)">
  45941. <summary>
  45942. Computes the index of the point (x,y)
  45943. in the Morton curve ordering.
  45944. </summary>
  45945. <param name="x">The x ordinate of the point.</param>
  45946. <param name="y">The y ordinate of the point.</param>
  45947. <returns>The index of the point along the Morton curve.</returns>
  45948. </member>
  45949. <member name="M:NetTopologySuite.Shape.Fractal.MortonCode.Decode(System.Int32)">
  45950. <summary>
  45951. Computes the point on the Morton curve
  45952. for a given index.
  45953. </summary>
  45954. <param name="index">The index of the point on the curve.</param>
  45955. <returns>The point on the curve.</returns>
  45956. </member>
  45957. <member name="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder">
  45958. <summary>
  45959. Generates a <see cref="T:NetTopologySuite.Geometries.LineString"/> representing the Morton Curve
  45960. at a given level.
  45961. </summary>
  45962. </member>
  45963. <member name="M:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  45964. <summary>
  45965. Initializes a new instance of the <see cref="T:NetTopologySuite.Shape.Fractal.MortonCurveBuilder"/> class
  45966. using the provided <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  45967. </summary>
  45968. <param name="geomFactory">The geometry factory to use.</param>
  45969. </member>
  45970. <member name="P:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.Level">
  45971. <summary>
  45972. Gets or sets the level of curve to generate.
  45973. The level must be in the range [0 - 16].
  45974. </summary>
  45975. </member>
  45976. <member name="M:NetTopologySuite.Shape.Fractal.MortonCurveBuilder.GetGeometry">
  45977. <inheritdoc />
  45978. </member>
  45979. <member name="P:NetTopologySuite.Shape.GeometricShapeBuilder.NumPoints">
  45980. <summary>
  45981. Gets or sets the total number of points in the created <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  45982. The created geometry will have no more than this number of points,
  45983. unless more are needed to create a valid geometry.
  45984. </summary>
  45985. </member>
  45986. <member name="T:NetTopologySuite.Shape.Random.RandomPointsBuilder">
  45987. <summary>
  45988. Creates random point sets contained in a
  45989. region defined by either a rectangular or a polygonal extent.
  45990. </summary>
  45991. <author>mbdavis</author>
  45992. </member>
  45993. <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.#ctor">
  45994. <summary>
  45995. Create a shape factory which will create shapes using the default
  45996. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  45997. </summary>
  45998. </member>
  45999. <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  46000. <summary>
  46001. Create a shape factory which will create shapes using the given
  46002. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>
  46003. </summary>
  46004. <param name="geomFact">The factory to use</param>
  46005. </member>
  46006. <member name="M:NetTopologySuite.Shape.Random.RandomPointsBuilder.SetExtent(NetTopologySuite.Geometries.Geometry)">
  46007. <summary>
  46008. Sets a polygonal mask.
  46009. </summary>
  46010. <exception cref="T:System.ArgumentException">if the mask is not polygonal</exception>
  46011. </member>
  46012. <member name="T:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder">
  46013. <summary>
  46014. Creates random point sets where the points
  46015. are constrained to lie in the cells of a grid.
  46016. </summary>
  46017. <author>mbdavis</author>
  46018. </member>
  46019. <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.#ctor">
  46020. <summary>
  46021. Create a builder which will create shapes using the default
  46022. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  46023. </summary>
  46024. </member>
  46025. <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  46026. <summary>
  46027. Create a builder which will create shapes using the given
  46028. <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>.
  46029. </summary>
  46030. <param name="geomFact">The factory to use</param>
  46031. </member>
  46032. <member name="P:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.ConstrainedToCircle">
  46033. <summary>
  46034. Gets or sets whether generated points are constrained to lie
  46035. within a circle contained within each grid cell.
  46036. This provides greater separation between points
  46037. in adjacent cells.
  46038. <para/>
  46039. The default is to not be constrained to a circle.
  46040. </summary>
  46041. </member>
  46042. <member name="P:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.GutterFraction">
  46043. <summary>
  46044. Gets or sets the fraction of the grid cell side which will be treated as
  46045. a gutter, in which no points will be created.
  46046. <para/>
  46047. The provided value is clamped to the range [0.0, 1.0].
  46048. </summary>
  46049. </member>
  46050. <member name="M:NetTopologySuite.Shape.Random.RandomPointsInGridBuilder.GetGeometry">
  46051. <summary>
  46052. Gets the <see cref="T:NetTopologySuite.Geometries.MultiPoint"/> containing the generated point
  46053. </summary>
  46054. <returns>A MultiPoint</returns>
  46055. </member>
  46056. <member name="T:NetTopologySuite.Simplify.ComponentJumpChecker">
  46057. <summary>
  46058. Checks if simplifying (flattening) line sections or segments
  46059. would cause them to "jump" over other components in the geometry.
  46060. </summary>
  46061. <author>Martin Davis</author>
  46062. </member>
  46063. <member name="M:NetTopologySuite.Simplify.ComponentJumpChecker.HasJump(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Geometries.LineSegment)">
  46064. <summary>
  46065. Checks if a line section jumps a component if flattened.
  46066. </summary>
  46067. <remarks>Assumes <paramref name="start"/> &lt;= <paramref name="end"/></remarks>
  46068. <param name="line">The line containing the section being flattened</param>
  46069. <param name="start">Start index of the section</param>
  46070. <param name="end">End index of the section</param>
  46071. <param name="seg">The flattening segment</param>
  46072. <returns><c>true</c> if the flattened section jumps a component</returns>
  46073. </member>
  46074. <member name="M:NetTopologySuite.Simplify.ComponentJumpChecker.HasJump(NetTopologySuite.Simplify.TaggedLineString,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment,NetTopologySuite.Geometries.LineSegment)">
  46075. <summary>
  46076. Checks if two consecutive segments jumps a component if flattened.
  46077. The segments are assumed to be consecutive.
  46078. (so the seg1.P1 = seg2.P0).
  46079. The flattening segment must be the segment between seg1.P0 and seg2.P1.
  46080. </summary>
  46081. <param name="line">The line containing the section being flattened</param>
  46082. <param name="seg1">The first replaced segment</param>
  46083. <param name="seg2">The next replaced segment</param>
  46084. <param name="seg">The flattening segment</param>
  46085. <returns><c>true</c> if the flattened segment jumps a component</returns>
  46086. </member>
  46087. <member name="T:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier">
  46088. <summary>
  46089. Simplifies a line (sequence of points) using
  46090. the standard Douglas-Peucker algorithm.
  46091. </summary>
  46092. </member>
  46093. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double)">
  46094. <summary>
  46095. Simplifies a series of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s. The series' endpoints are preserved.
  46096. </summary>
  46097. <param name="pts">The series of <c>Coordinate</c>s to simplify</param>
  46098. <param name="distanceTolerance">A simplification tolerance distance</param>
  46099. <returns>The simplified series of <c>Coordinate</c>s</returns>
  46100. </member>
  46101. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify(NetTopologySuite.Geometries.Coordinate[],System.Double,System.Boolean)">
  46102. <summary>
  46103. Simplifies a series of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  46104. </summary>
  46105. <param name="pts">The series of <c>Coordinate</c>s to simplify</param>
  46106. <param name="distanceTolerance">A simplification tolerance distance</param>
  46107. <param name="isPreserveEndpoint">A flag indicating if the endpoint should be preserved</param>
  46108. <returns></returns>
  46109. </member>
  46110. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  46111. <summary>
  46112. Creates an instance of this class using the provided <paramref name="pts"/> array of coordinates
  46113. </summary>
  46114. <param name="pts">An array of coordinates</param>
  46115. </member>
  46116. <member name="P:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.DistanceTolerance">
  46117. <summary>
  46118. The distance tolerance for the simplification.
  46119. </summary>
  46120. </member>
  46121. <member name="P:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.PreserveEndpoint">
  46122. <summary>
  46123. Gets a flag indicating if the endpoint should be preserved
  46124. </summary>
  46125. </member>
  46126. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerLineSimplifier.Simplify">
  46127. <summary>
  46128. </summary>
  46129. <returns></returns>
  46130. </member>
  46131. <member name="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier">
  46132. <summary>
  46133. Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the Douglas-Peucker algorithm.
  46134. </summary>
  46135. <remarks>
  46136. Ensures that any polygonal geometries returned are valid.
  46137. Simple lines are not guaranteed to remain simple after simplification.
  46138. All geometry types are handled.
  46139. Empty and point geometries are returned unchanged.
  46140. Empty geometry components are deleted.
  46141. <para/>
  46142. Note that in general D-P does not preserve topology -
  46143. e.g. polygons can be split, collapse to lines or disappear
  46144. holes can be created or disappear,
  46145. and lines can cross.
  46146. To simplify point while preserving topology use TopologySafeSimplifier.
  46147. (However, using D-P is significantly faster).
  46148. <para/>
  46149. KNOWN BUGS:
  46150. In some cases the approach used to clean invalid simplified polygons
  46151. can distort the output geometry severely.
  46152. </remarks>
  46153. <seealso cref="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier"/>
  46154. </member>
  46155. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
  46156. <summary>
  46157. Simplifies a geometry using a given tolerance.
  46158. </summary>
  46159. <param name="geom">The geometry to simplify.</param>
  46160. <param name="distanceTolerance">The tolerance to use.</param>
  46161. <returns>A simplified version of the geometry.</returns>
  46162. </member>
  46163. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
  46164. <summary>
  46165. Creates a simplifier for a given geometry.
  46166. </summary>
  46167. <param name="inputGeom">The geometry to simplify.</param>
  46168. </member>
  46169. <member name="P:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DistanceTolerance">
  46170. <summary>
  46171. The distance tolerance for the simplification.
  46172. </summary>
  46173. <remarks>
  46174. All vertices in the simplified geometry will be within this
  46175. distance of the original geometry.
  46176. The tolerance value must be non-negative.
  46177. </remarks>
  46178. </member>
  46179. <member name="P:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.EnsureValidTopology">
  46180. <summary>
  46181. Controls whether simplified polygons will be "fixed"
  46182. to have valid topology.
  46183. </summary>
  46184. <remarks>
  46185. The caller may choose to disable this because:
  46186. <list type="bullet">
  46187. <item><description>valid topology is not required</description></item>
  46188. <item><description>fixing topology is a relative expensive operation</description></item>
  46189. <item><description>in some pathological cases the topology fixing operation may either fail or run for too long</description></item>
  46190. </list>
  46191. The default is to fix polygon topology.
  46192. </remarks>
  46193. </member>
  46194. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.GetResultGeometry">
  46195. <summary>
  46196. Gets the simplified geometry.
  46197. </summary>
  46198. <returns>The simplified geometry.</returns>
  46199. </member>
  46200. <member name="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer">
  46201. <summary>
  46202. The transformer class
  46203. </summary>
  46204. </member>
  46205. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
  46206. <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)"/>
  46207. </member>
  46208. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  46209. <summary>
  46210. Simplifies a polygon, fixing it if required.
  46211. </summary>
  46212. <param name="geom">The geometry to transform</param>
  46213. <param name="parent">The parent geometry</param>
  46214. <returns></returns>
  46215. </member>
  46216. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
  46217. <summary>
  46218. Simplifies a LinearRing. If the simplification results in a degenerate ring, remove the component.
  46219. </summary>
  46220. <returns>null if the simplification results in a degenerate ring</returns>
  46221. </member>
  46222. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
  46223. <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)"/>
  46224. </member>
  46225. <member name="M:NetTopologySuite.Simplify.DouglasPeuckerSimplifier.DPTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
  46226. <summary>
  46227. Creates a valid area point from one that possibly has
  46228. bad topology (i.e. self-intersections).
  46229. Since buffer can handle invalid topology, but always returns
  46230. valid point, constructing a 0-width buffer "corrects" the
  46231. topology.
  46232. Note this only works for area geometries, since buffer always returns
  46233. areas. This also may return empty geometries, if the input
  46234. has no actual area.<br/>
  46235. If the input is empty or is not polygonal,
  46236. this ensures that POLYGON EMPTY is returned.
  46237. </summary>
  46238. <param name="rawAreaGeom">An area point possibly containing self-intersections.</param>
  46239. <returns>A valid area point.</returns>
  46240. </member>
  46241. <member name="T:NetTopologySuite.Simplify.LineSegmentIndex">
  46242. <summary>
  46243. An index of LineSegments.
  46244. </summary>
  46245. </member>
  46246. <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Add(NetTopologySuite.Simplify.TaggedLineString)">
  46247. <summary>
  46248. </summary>
  46249. <param name="line"></param>
  46250. </member>
  46251. <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Add(NetTopologySuite.Geometries.LineSegment)">
  46252. <summary>
  46253. </summary>
  46254. <param name="seg"></param>
  46255. </member>
  46256. <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Remove(NetTopologySuite.Geometries.LineSegment)">
  46257. <summary>
  46258. </summary>
  46259. <param name="seg"></param>
  46260. </member>
  46261. <member name="M:NetTopologySuite.Simplify.LineSegmentIndex.Query(NetTopologySuite.Geometries.LineSegment)">
  46262. <summary>
  46263. </summary>
  46264. <param name="querySeg"></param>
  46265. <returns></returns>
  46266. </member>
  46267. <member name="T:NetTopologySuite.Simplify.LineSegmentVisitor">
  46268. <summary>
  46269. ItemVisitor subclass to reduce volume of query results.
  46270. </summary>
  46271. </member>
  46272. <member name="M:NetTopologySuite.Simplify.LineSegmentVisitor.#ctor(NetTopologySuite.Geometries.LineSegment)">
  46273. <summary>
  46274. </summary>
  46275. <param name="querySeg"></param>
  46276. </member>
  46277. <member name="M:NetTopologySuite.Simplify.LineSegmentVisitor.VisitItem(NetTopologySuite.Geometries.LineSegment)">
  46278. <summary>
  46279. </summary>
  46280. <param name="item"></param>
  46281. </member>
  46282. <member name="P:NetTopologySuite.Simplify.LineSegmentVisitor.Items">
  46283. <summary>
  46284. </summary>
  46285. </member>
  46286. <member name="T:NetTopologySuite.Simplify.OldVWLineSimplifier">
  46287. <summary>
  46288. Simplifies a linestring (sequence of points) using the
  46289. Visvalingam-Whyatt algorithm.
  46290. The Visvalingam-Whyatt algorithm simplifies geometry
  46291. by removing vertices while trying to minimize the area changed.
  46292. </summary>
  46293. <version>1.7</version>
  46294. </member>
  46295. <member name="T:NetTopologySuite.Simplify.PolygonHullSimplifier">
  46296. <summary>
  46297. Computes topology-preserving simplified hulls of polygonal geometry.
  46298. Both outer and inner hulls can be computed.
  46299. Outer hulls contain the input geometry and are larger in area.
  46300. Inner hulls are contained by the input geometry and are smaller in area.
  46301. In both the hull vertices are a subset of the input vertices.
  46302. The hull construction attempts to minimize the area difference
  46303. with the input geometry.
  46304. <para/>
  46305. Hulls are generally concave if the input is.
  46306. Computed hulls are topology-preserving:
  46307. they do not contain any self-intersections or overlaps,
  46308. so the result polygonal geometry is valid.
  46309. <para/>
  46310. Polygons with holes and MultiPolygons are supported.
  46311. The result has the same geometric type and structure as the input.
  46312. <para/>
  46313. The number of vertices in the computed hull is determined by a target parameter.
  46314. Two parameters are supported:
  46315. <list type="bullet">
  46316. <item><term>Vertex Number fraction</term><description>the fraction of the input vertices retained in the result.
  46317. Value 1 produces the original geometry.
  46318. Smaller values produce less concave results.
  46319. For outer hulls, value 0 produces the convex hull (with triangles for any holes).
  46320. For inner hulls, value 0 produces a triangle (if no holes are present).</description></item>
  46321. <item><term>Area Delta ratio</term><description>
  46322. the ratio of the change in area to the input area.Value 0 produces the original geometry.
  46323. Larger values produce less concave results.</description></item>
  46324. </list>
  46325. The algorithm ensures that the result does not cause the target parameter
  46326. to be exceeded. This allows computing outer or inner hulls
  46327. with a small area delta ratio as an effective way of removing
  46328. narrow gores and spikes.
  46329. </summary>
  46330. <author>Martin Davis</author>
  46331. </member>
  46332. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.Hull(NetTopologySuite.Geometries.Geometry,System.Boolean,System.Double)">
  46333. <summary>
  46334. Computes topology-preserving simplified hull of a polygonal geometry,
  46335. with hull shape determined by a target parameter
  46336. specifying the fraction of the input vertices retained in the result.
  46337. Larger values compute less concave results.
  46338. A value of 1 produces the convex hull; a value of 0 produces the original geometry.
  46339. Either outer or inner hulls can be computed.
  46340. </summary>
  46341. <param name="geom">The polygonal geometry to process</param>
  46342. <param name="isOuter">A flag indicating whether to compute an outer or inner hull</param>
  46343. <param name="vertexNumFraction">The target fraction of number of input vertices in result</param>
  46344. <returns>The hull geometry</returns>
  46345. </member>
  46346. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.HullByAreaDelta(NetTopologySuite.Geometries.Geometry,System.Boolean,System.Double)">
  46347. <summary>Computes a boundary-respecting hull of a polygonal geometry,
  46348. with hull shape determined by a target parameter
  46349. specifying the ratio of maximum difference in area to original area.
  46350. Larger values compute less concave results.
  46351. A value of 0 produces the original geometry.
  46352. Either outer or inner hulls can be computed.
  46353. </summary>
  46354. <param name="geom">The polygonal geometry to process</param>
  46355. <param name="isOuter">A flag indicating whether to compute an outer or inner hull</param>
  46356. <param name="areaDeltaRatio">The target ratio of area difference to original area</param>
  46357. <returns>The hull geometry</returns>
  46358. </member>
  46359. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.#ctor(NetTopologySuite.Geometries.Geometry,System.Boolean)">
  46360. <summary>
  46361. Creates a new instance
  46362. to compute a simplified hull of a polygonal geometry.
  46363. An outer or inner hull is computed
  46364. depending on the value of <paramref name="isOuter"/>.
  46365. </summary>
  46366. <param name="inputGeom">The polygonal geometry to process</param>
  46367. <param name="isOuter">Indicates whether to compute an outer or inner hull</param>
  46368. </member>
  46369. <member name="P:NetTopologySuite.Simplify.PolygonHullSimplifier.VertexNumFraction">
  46370. <summary>
  46371. Gets or sets a value indicating the target fraction of input vertices
  46372. which are retained in the result.
  46373. The value should be in the range [0,1].
  46374. </summary>
  46375. </member>
  46376. <member name="P:NetTopologySuite.Simplify.PolygonHullSimplifier.AreaDeltaRatio">
  46377. <summary>
  46378. Gets or sets a value indicating the target maximum ratio of the change in area of the result to the input area.
  46379. The value must be 0 or greater.
  46380. </summary>
  46381. </member>
  46382. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.GetResult">
  46383. <summary>
  46384. Gets the result polygonal hull geometry.
  46385. </summary>
  46386. <returns>The polygonal geometry for the hull</returns>
  46387. </member>
  46388. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.ComputeMultiPolygonAll(NetTopologySuite.Geometries.MultiPolygon)">
  46389. <summary>
  46390. Computes hulls for MultiPolygon elements for
  46391. the cases where hulls might overlap.
  46392. </summary>
  46393. <param name="multiPoly">The MultiPolygon to process</param>
  46394. <returns>The hull geometry</returns>
  46395. </member>
  46396. <member name="M:NetTopologySuite.Simplify.PolygonHullSimplifier.InitPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Simplify.RingHullIndex)">
  46397. <summary>
  46398. Create all ring hulls for the rings of a polygon,
  46399. so that all are in the hull index if required.
  46400. </summary>
  46401. <param name="poly" >The polygon being processed</param>
  46402. <param name="hullIndex">The hull index if present, or <c>null</c></param>
  46403. <returns>A list of ring hulls</returns>
  46404. </member>
  46405. <member name="T:NetTopologySuite.Simplify.RingHull">
  46406. <summary>
  46407. Computes the outer or inner hull of a ring
  46408. </summary>
  46409. <author>Martin Davis</author>
  46410. </member>
  46411. <member name="M:NetTopologySuite.Simplify.RingHull.#ctor(NetTopologySuite.Geometries.LinearRing,System.Boolean)">
  46412. <summary>
  46413. Creates a new instance.
  46414. </summary>
  46415. <param name="ring">The ring vertices to process</param>
  46416. <param name="isOuter">A flag whether the hull is outer or inner</param>
  46417. </member>
  46418. <member name="M:NetTopologySuite.Simplify.RingHull.RemoveCorner(NetTopologySuite.Simplify.RingHull.Corner,NetTopologySuite.Utilities.PriorityQueue{NetTopologySuite.Simplify.RingHull.Corner})">
  46419. <summary>
  46420. Removes a corner by removing the apex vertex from the ring.
  46421. Two new corners are created with apexes
  46422. at the other vertices of the corner
  46423. (if they are non-convex and thus removable).
  46424. </summary>
  46425. <param name="corner">The corner to remove</param>
  46426. <param name="cornerQueue">The corner queue</param>
  46427. </member>
  46428. <member name="M:NetTopologySuite.Simplify.RingHull.HasIntersectingVertex(NetTopologySuite.Simplify.RingHull.Corner,NetTopologySuite.Geometries.Envelope,NetTopologySuite.Simplify.RingHull)">
  46429. Tests if any vertices in a hull intersect the corner triangle.
  46430. Uses the vertex spatial index for efficiency.
  46431. @param corner the corner vertices
  46432. @param cornerEnv the envelope of the corner
  46433. @param hull the hull to test
  46434. @return true if there is an intersecting vertex
  46435. </member>
  46436. <member name="M:NetTopologySuite.Simplify.RingHull.Corner.CompareTo(NetTopologySuite.Simplify.RingHull.Corner)">
  46437. Orders corners by increasing area
  46438. </member>
  46439. <member name="T:NetTopologySuite.Simplify.TaggedLineSegment">
  46440. <summary>
  46441. A LineSegment which is tagged with its location in a <c>Geometry</c>.
  46442. Used to index the segments in a point and recover the segment locations
  46443. from the index.
  46444. </summary>
  46445. </member>
  46446. <member name="M:NetTopologySuite.Simplify.TaggedLineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Geometry,System.Int32)">
  46447. <summary>
  46448. </summary>
  46449. <param name="p0"></param>
  46450. <param name="p1"></param>
  46451. <param name="parent"></param>
  46452. <param name="index"></param>
  46453. </member>
  46454. <member name="M:NetTopologySuite.Simplify.TaggedLineSegment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  46455. <summary>
  46456. </summary>
  46457. <param name="p0"></param>
  46458. <param name="p1"></param>
  46459. </member>
  46460. <member name="P:NetTopologySuite.Simplify.TaggedLineSegment.Parent">
  46461. <summary>
  46462. </summary>
  46463. </member>
  46464. <member name="P:NetTopologySuite.Simplify.TaggedLineSegment.Index">
  46465. <summary>
  46466. </summary>
  46467. </member>
  46468. <member name="T:NetTopologySuite.Simplify.TaggedLinesSimplifier">
  46469. <summary>
  46470. Simplifies a collection of <c>TaggedLineString</c>s, preserving topology
  46471. (in the sense that no new intersections are introduced).
  46472. This class is essentially just a container for the common
  46473. indexes used by <see cref="T:NetTopologySuite.Simplify.TaggedLineStringSimplifier"/>.
  46474. </summary>
  46475. </member>
  46476. <member name="P:NetTopologySuite.Simplify.TaggedLinesSimplifier.DistanceTolerance">
  46477. <summary>
  46478. Gets or sets the distance tolerance for the simplification.<br/>
  46479. Points closer than this tolerance to a simplified segment may
  46480. be removed.
  46481. </summary>
  46482. </member>
  46483. <member name="M:NetTopologySuite.Simplify.TaggedLinesSimplifier.Simplify(System.Collections.Generic.ICollection{NetTopologySuite.Simplify.TaggedLineString})">
  46484. <summary>
  46485. Simplifies a collection of <c>TaggedLineString</c>s.
  46486. </summary>
  46487. <param name="taggedLines">The collection of lines to simplify.</param>
  46488. </member>
  46489. <member name="T:NetTopologySuite.Simplify.TaggedLineString">
  46490. <summary>
  46491. Represents a <see cref="T:NetTopologySuite.Geometries.LineString"/> which can be modified to a simplified shape.
  46492. This class provides an attribute which specifies the minimum allowable length
  46493. for the modified result.
  46494. </summary>
  46495. </member>
  46496. <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString)">
  46497. <summary>
  46498. Creates an instance of this class using the provided <paramref name="parentLine"/>.
  46499. The <see cref="P:NetTopologySuite.Simplify.TaggedLineString.MinimumSize"/> is set to <c>2</c> and <see cref="!:PreserveEndpoint"/> is <c>true</c>.
  46500. </summary>
  46501. <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
  46502. </member>
  46503. <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString,System.Int32)">
  46504. <summary>
  46505. Creates an instance of this class using the provided <paramref name="parentLine"/> and
  46506. <paramref name="minimumSize"/> values. The value for <see cref="P:NetTopologySuite.Simplify.TaggedLineString.IsRing"/> is <c>LineString.IsRing</c>
  46507. </summary>
  46508. <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
  46509. <param name="minimumSize">The number of vertices to must be kept.</param>
  46510. </member>
  46511. <member name="M:NetTopologySuite.Simplify.TaggedLineString.#ctor(NetTopologySuite.Geometries.LineString,System.Int32,System.Boolean)">
  46512. <summary>
  46513. Creates an instance of this class using the provided <paramref name="parentLine"/> and
  46514. <paramref name="minimumSize"/> values.
  46515. </summary>
  46516. <param name="parentLine">The <c>LineString</c> that is to be simplified.</param>
  46517. <param name="minimumSize">The number of vertices to must be kept.</param>
  46518. <param name="isRing">A flag indicating if the <paramref name="parentLine"/> forms a ring</param>
  46519. </member>
  46520. <member name="P:NetTopologySuite.Simplify.TaggedLineString.IsRing">
  46521. <summary>
  46522. Gets a value indicating if the endpoints are to be preserved.
  46523. </summary>
  46524. </member>
  46525. <member name="P:NetTopologySuite.Simplify.TaggedLineString.MinimumSize">
  46526. <summary>
  46527. </summary>
  46528. </member>
  46529. <member name="P:NetTopologySuite.Simplify.TaggedLineString.Parent">
  46530. <summary>
  46531. </summary>
  46532. </member>
  46533. <member name="P:NetTopologySuite.Simplify.TaggedLineString.ParentCoordinates">
  46534. <summary>
  46535. </summary>
  46536. </member>
  46537. <member name="P:NetTopologySuite.Simplify.TaggedLineString.ResultCoordinates">
  46538. <summary>
  46539. </summary>
  46540. </member>
  46541. <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetCoordinate(System.Int32)">
  46542. <summary>
  46543. Gets the <paramref name="i"/>'th <c>Coordinate</c> of <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
  46544. </summary>
  46545. <param name="i">The index of the coordinate to get</param>
  46546. <returns>The <paramref name="i"/>'th <c>Coordinate</c> of <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.</returns>
  46547. </member>
  46548. <member name="P:NetTopologySuite.Simplify.TaggedLineString.Count">
  46549. <summary>
  46550. Gets a value indicating the number of points of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
  46551. </summary>
  46552. </member>
  46553. <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetComponentPoint">
  46554. <summary>
  46555. Gets a <c>Coordinate</c> of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.
  46556. </summary>
  46557. <returns>A <c>Coordinate</c> of the <see cref="P:NetTopologySuite.Simplify.TaggedLineString.Parent"/> line.</returns>
  46558. </member>
  46559. <member name="P:NetTopologySuite.Simplify.TaggedLineString.ResultSize">
  46560. <summary>
  46561. </summary>
  46562. </member>
  46563. <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetSegment(System.Int32)">
  46564. <summary>
  46565. </summary>
  46566. <param name="i"></param>
  46567. <returns></returns>
  46568. </member>
  46569. <member name="M:NetTopologySuite.Simplify.TaggedLineString.GetResultSegment(System.Int32)">
  46570. <summary>
  46571. Gets a segment of the result list.
  46572. Negative indexes can be used to retrieve from the end of the list.
  46573. </summary>
  46574. <param name="i">The segment index to retrieve</param>
  46575. <returns>The result segment</returns>
  46576. </member>
  46577. <member name="M:NetTopologySuite.Simplify.TaggedLineString.Init">
  46578. <summary>
  46579. </summary>
  46580. </member>
  46581. <member name="P:NetTopologySuite.Simplify.TaggedLineString.Segments">
  46582. <summary>
  46583. </summary>
  46584. </member>
  46585. <member name="M:NetTopologySuite.Simplify.TaggedLineString.AddToResult(NetTopologySuite.Geometries.LineSegment)">
  46586. <summary>
  46587. Add a simplified segment to the result.
  46588. This assumes simplified segments are computed in the order
  46589. they occur in the line.
  46590. </summary>
  46591. <param name="seg">The result segment to add.</param>
  46592. </member>
  46593. <member name="M:NetTopologySuite.Simplify.TaggedLineString.AsLineString">
  46594. <summary>
  46595. </summary>
  46596. <returns></returns>
  46597. </member>
  46598. <member name="M:NetTopologySuite.Simplify.TaggedLineString.AsLinearRing">
  46599. <summary>
  46600. </summary>
  46601. <returns></returns>
  46602. </member>
  46603. <member name="M:NetTopologySuite.Simplify.TaggedLineString.ExtractCoordinates(System.Collections.Generic.IList{NetTopologySuite.Geometries.LineSegment})">
  46604. <summary>
  46605. </summary>
  46606. <param name="segs"></param>
  46607. <returns></returns>
  46608. </member>
  46609. <member name="T:NetTopologySuite.Simplify.TaggedLineStringSimplifier">
  46610. <summary>
  46611. Simplifies a TaggedLineString, preserving topology
  46612. (in the sense that no new intersections are introduced).
  46613. Uses the recursive Douglas-Peucker algorithm.
  46614. </summary>
  46615. </member>
  46616. <member name="P:NetTopologySuite.Simplify.TaggedLineStringSimplifier.DistanceTolerance">
  46617. <summary>
  46618. Sets the distance tolerance for the simplification.
  46619. All vertices in the simplified geometry will be within this
  46620. distance of the original geometry.
  46621. </summary>
  46622. </member>
  46623. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Simplify(NetTopologySuite.Simplify.TaggedLineString)">
  46624. <summary>
  46625. Simplifies the given <see cref="T:NetTopologySuite.Simplify.TaggedLineString"/>
  46626. using the distance tolerance specified.
  46627. </summary>
  46628. <param name="line">The linestring to simplify.</param>
  46629. </member>
  46630. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Simplify(NetTopologySuite.Simplify.TaggedLineString,System.Double)">
  46631. <summary>
  46632. Simplifies the given <see cref="T:NetTopologySuite.Simplify.TaggedLineString"/>
  46633. using the distance tolerance specified.
  46634. </summary>
  46635. <param name="line">The linestring to simplify.</param>
  46636. <param name="distanceTolerance">The simplification distance tolerance</param>
  46637. </member>
  46638. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.SimplifyRingEndpoint(System.Double)">
  46639. <summary>
  46640. Simplifies the result segments on either side of a ring endpoint
  46641. (which was not processed by the initial simplification).
  46642. This ensures that simplification removes flat(collinear) endpoints.
  46643. </summary>
  46644. <param name="distanceTolerance">The simplification distance tolerance</param>
  46645. </member>
  46646. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Flatten(System.Int32,System.Int32)">
  46647. <summary>
  46648. Flattens a section of the line between
  46649. indexes <paramref name="start"/> and <paramref name="end"/>,
  46650. replacing them with a line between the endpoints.
  46651. The input and output indexes are updated
  46652. to reflect this.
  46653. </summary>
  46654. <param name="start">The start index of the flattened section.</param>
  46655. <param name="end">The end index of the flattened section.</param>
  46656. <returns>The new segment created.</returns>
  46657. </member>
  46658. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.IsTopologyValid(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Geometries.LineSegment)">
  46659. <summary>
  46660. Tests if line topology remains valid after flattening a section of the line.
  46661. The flattened section is being replaced by the flattening segment,
  46662. so there is no need to test it
  46663. (and it may well intersect the segment).
  46664. </summary>
  46665. <returns><c>true</c> if the flattening leaves valid topology</returns>
  46666. </member>
  46667. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.IsInLineSection(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32,NetTopologySuite.Simplify.TaggedLineSegment)">
  46668. <summary>
  46669. Tests whether a segment is in a section of a TaggedLineString.
  46670. Sections may wrap around the endpoint of the line,
  46671. to support ring endpoint simplification.
  46672. This is indicated by excludedStart > excludedEnd
  46673. </summary>
  46674. <param name="line">The TaggedLineString containing the section segments</param>
  46675. <param name="excludeStart">The index of the first segment in the excluded section </param>
  46676. <param name="excludeEnd">The index of the last segment in the excluded section</param>
  46677. <param name="seg">The segment to test</param>
  46678. <returns><c>true</c> if the test segment intersects some segment in the line not in the excluded section</returns>
  46679. </member>
  46680. <member name="M:NetTopologySuite.Simplify.TaggedLineStringSimplifier.Remove(NetTopologySuite.Simplify.TaggedLineString,System.Int32,System.Int32)">
  46681. <summary>
  46682. Remove the segs in the section of the line.
  46683. </summary>
  46684. <param name="line"></param>
  46685. <param name="start"></param>
  46686. <param name="end"></param>
  46687. </member>
  46688. <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier">
  46689. <summary>
  46690. Simplifies a point and ensures that
  46691. the result is a valid point having the
  46692. same dimension and number of components as the input,
  46693. and with the components having the same topological relationship.
  46694. <para/>
  46695. If the input is a polygonal geometry
  46696. (<see cref="T:NetTopologySuite.Geometries.Polygon"/> or <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>):
  46697. <list type="bullet">
  46698. <item><description>The result has the same number of shells and holes as the input,
  46699. with the same topological structure</description></item>
  46700. <item><description>The result rings touch at no more than the number of touching points in the input
  46701. (although they may touch at fewer points).
  46702. The key implication of this statement is that if the
  46703. input is topologically valid, so is the simplified output.</description></item>
  46704. </list>
  46705. For linear geometries, if the input does not contain
  46706. any intersecting line segments, this property
  46707. will be preserved in the output.
  46708. <para/>
  46709. <para>
  46710. For polygonal geometries and LinearRings the endpoint will ring endpoint will be simplified.
  46711. For LineStrings the endpoints will be unchanged.
  46712. </para>
  46713. For all geometry types, the result will contain
  46714. enough vertices to ensure validity. For polygons
  46715. and closed linear geometries, the result will have at
  46716. least 4 vertices; for open LineStrings the result
  46717. will have at least 2 vertices.
  46718. <para/>
  46719. All geometry types are handled.
  46720. Empty and point geometries are returned unchanged.
  46721. Empty geometry components are deleted.
  46722. <para/>
  46723. The simplification uses a maximum-distance difference algorithm
  46724. similar to the Douglas-Peucker algorithm.
  46725. </summary>
  46726. <seealso cref="T:NetTopologySuite.Simplify.DouglasPeuckerSimplifier"/>
  46727. </member>
  46728. <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
  46729. <summary>
  46730. </summary>
  46731. <param name="geom"></param>
  46732. <param name="distanceTolerance"></param>
  46733. <returns></returns>
  46734. </member>
  46735. <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
  46736. <summary>
  46737. Creates an instance of this class for the provided <paramref name="inputGeom"/> geometry
  46738. </summary>
  46739. <param name="inputGeom">The geometry to simplify</param>
  46740. </member>
  46741. <member name="P:NetTopologySuite.Simplify.TopologyPreservingSimplifier.DistanceTolerance">
  46742. <summary>
  46743. Gets or sets the distance tolerance for the simplification.<br/>
  46744. Points closer than this tolerance to a simplified segment may
  46745. be removed.
  46746. </summary>
  46747. </member>
  46748. <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.GetResultGeometry">
  46749. <summary>
  46750. </summary>
  46751. <returns></returns>
  46752. </member>
  46753. <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringTransformer">
  46754. <summary>
  46755. A LineString transformer
  46756. </summary>
  46757. </member>
  46758. <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)">
  46759. <inheritdoc cref="M:NetTopologySuite.Geometries.Utilities.GeometryTransformer.TransformCoordinates(NetTopologySuite.Geometries.CoordinateSequence,NetTopologySuite.Geometries.Geometry)"/>>
  46760. </member>
  46761. <member name="T:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringMapBuilderFilter">
  46762. <summary>
  46763. A filter to add linear geometries to the LineString map
  46764. with the appropriate minimum size constraint.
  46765. Closed <see cref="T:NetTopologySuite.Geometries.LineString"/>s (including <see cref="T:NetTopologySuite.Geometries.LinearRing"/>s
  46766. have a minimum output size constraint of 4,
  46767. to ensure the output is valid.
  46768. For all other LineStrings, the minimum size is 2 points.
  46769. </summary>
  46770. <author>Martin Davis</author>
  46771. </member>
  46772. <member name="M:NetTopologySuite.Simplify.TopologyPreservingSimplifier.LineStringMapBuilderFilter.Filter(NetTopologySuite.Geometries.Geometry)">
  46773. <summary>
  46774. Filters linear geometries.
  46775. </summary>
  46776. <param name="geom">A geometry of any type</param>
  46777. </member>
  46778. <member name="T:NetTopologySuite.Simplify.VWLineSimplifier">
  46779. <summary>
  46780. Simplifies a linestring (sequence of points) using the
  46781. Visvalingam-Whyatt algorithm.
  46782. The Visvalingam-Whyatt algorithm simplifies geometry
  46783. by removing vertices while trying to minimize the area changed.
  46784. </summary>
  46785. <version>1.7</version>
  46786. </member>
  46787. <member name="T:NetTopologySuite.Simplify.VWSimplifier">
  46788. <summary>
  46789. Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using the Visvalingam-Whyatt area-based algorithm.
  46790. Ensures that any polygonal geometries returned are valid. Simple lines are not
  46791. guaranteed to remain simple after simplification. All geometry types are
  46792. handled. Empty and point geometries are returned unchanged. Empty geometry
  46793. components are deleted.
  46794. The simplification tolerance is specified as a distance.
  46795. This is converted to an area tolerance by squaring it.
  46796. <para>
  46797. <b>Known Bugs</b>
  46798. * Not yet optimized for performance.
  46799. * Does not simplify the endpoint of rings.
  46800. <b>To Do</b>
  46801. * Allow specifying desired number of vertices in the output.
  46802. </para>
  46803. </summary>
  46804. <remarks>
  46805. Note that in general this algorithm does not preserve topology - e.g. polygons can be split,
  46806. collapse to lines or disappear holes can be created or disappear, and lines
  46807. can cross.
  46808. </remarks>
  46809. <version>1.7</version>
  46810. </member>
  46811. <member name="M:NetTopologySuite.Simplify.VWSimplifier.Simplify(NetTopologySuite.Geometries.Geometry,System.Double)">
  46812. <summary>
  46813. Simplifies a <see cref="T:NetTopologySuite.Geometries.Geometry"/> using a given tolerance.
  46814. </summary>
  46815. <param name="geom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to simplify.</param>
  46816. <param name="distanceTolerance">The tolerance to use.</param>
  46817. <returns>A simplified version of the <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</returns>
  46818. </member>
  46819. <member name="M:NetTopologySuite.Simplify.VWSimplifier.#ctor(NetTopologySuite.Geometries.Geometry)">
  46820. <summary>
  46821. Creates a simplifier for a given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  46822. </summary>
  46823. <param name="inputGeom">The <see cref="T:NetTopologySuite.Geometries.Geometry"/> to simplify.</param>
  46824. </member>
  46825. <member name="P:NetTopologySuite.Simplify.VWSimplifier.DistanceTolerance">
  46826. <summary>
  46827. Sets the distance tolerance for the simplification. All vertices in the
  46828. simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/> will be within this distance of the original geometry.
  46829. The tolerance value must be non-negative.
  46830. </summary>
  46831. </member>
  46832. <member name="P:NetTopologySuite.Simplify.VWSimplifier.IsEnsureValidTopology">
  46833. <summary>
  46834. Controls whether simplified polygons will be "fixed" to have valid
  46835. topology. The caller may choose to disable this because:
  46836. * valid topology is not required.
  46837. * fixing topology is a relative expensive operation.
  46838. * in some pathological cases the topology fixing operation may either
  46839. fail or run for too long.
  46840. </summary>
  46841. <remarks>The default is to fix polygon topology.</remarks>
  46842. </member>
  46843. <member name="M:NetTopologySuite.Simplify.VWSimplifier.GetResultGeometry">
  46844. <summary>
  46845. Gets the simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  46846. </summary>
  46847. <returns>The simplified <see cref="T:NetTopologySuite.Geometries.Geometry"/>.</returns>
  46848. </member>
  46849. <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformPolygon(NetTopologySuite.Geometries.Polygon,NetTopologySuite.Geometries.Geometry)">
  46850. <summary>
  46851. Simplifies a <see cref="T:NetTopologySuite.Geometries.Polygon"/>, fixing it if required.
  46852. </summary>
  46853. <param name="geom"></param>
  46854. <param name="parent"></param>
  46855. <returns></returns>
  46856. </member>
  46857. <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformLinearRing(NetTopologySuite.Geometries.LinearRing,NetTopologySuite.Geometries.Geometry)">
  46858. <summary>
  46859. Simplifies a <see cref="T:NetTopologySuite.Geometries.LinearRing"/>. If the simplification results in a degenerate
  46860. ring, remove the component.
  46861. </summary>
  46862. <param name="geom"></param>
  46863. <param name="parent"></param>
  46864. <returns><c>null</c> if the simplification results in a degenerate ring.</returns>
  46865. </member>
  46866. <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.TransformMultiPolygon(NetTopologySuite.Geometries.MultiPolygon,NetTopologySuite.Geometries.Geometry)">
  46867. <summary>
  46868. Simplifies a <see cref="T:NetTopologySuite.Geometries.MultiPolygon"/>, fixing it if required.
  46869. </summary>
  46870. <param name="geom"></param>
  46871. <param name="parent"></param>
  46872. <returns></returns>
  46873. </member>
  46874. <member name="M:NetTopologySuite.Simplify.VWSimplifier.VWTransformer.CreateValidArea(NetTopologySuite.Geometries.Geometry)">
  46875. <summary>
  46876. Creates a valid area geometry from one that possibly has bad topology
  46877. (i.e. self-intersections). Since buffer can handle invalid topology, but
  46878. always returns valid geometry, constructing a 0-width buffer "corrects"
  46879. the topology. Note this only works for area geometries, since buffer
  46880. always returns areas. This also may return empty geometries, if the input
  46881. has no actual area.
  46882. </summary>
  46883. <param name="rawAreaGeom">An area geometry possibly containing self-intersections.</param>
  46884. <returns>A valid area geometry.</returns>
  46885. </member>
  46886. <member name="T:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder">
  46887. <summary>
  46888. A utility class which creates Conforming Delaunay Triangulations
  46889. from collections of points and linear constraints, and extract the resulting
  46890. triangulation edges or triangles as geometries.
  46891. </summary>
  46892. <author>Martin Davis</author>
  46893. </member>
  46894. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
  46895. <summary>
  46896. Sets the sites (point or vertices) which will be triangulated.
  46897. All vertices of the given geometry will be used as sites.
  46898. The site vertices do not have to contain the constraint
  46899. vertices as well; any site vertices which are
  46900. identical to a constraint vertex will be removed
  46901. from the site vertex set.
  46902. </summary>
  46903. <remarks>The geometry from which the sites will be extracted.</remarks>
  46904. </member>
  46905. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.Constraints">
  46906. <summary>
  46907. Sets the linear constraints to be conformed to.
  46908. All linear components in the input will be used as constraints.
  46909. The constraint vertices do not have to be disjoint from
  46910. the site vertices.
  46911. The constraints must not contain duplicate segments (up to orientation).
  46912. </summary>
  46913. </member>
  46914. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.Tolerance">
  46915. <summary>
  46916. Sets the snapping tolerance which will be used
  46917. to improved the robustness of the triangulation computation.
  46918. A tolerance of 0.0 specifies that no snapping will take place.
  46919. </summary>
  46920. </member>
  46921. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetSubdivision">
  46922. <summary>
  46923. Gets the QuadEdgeSubdivision which models the computed triangulation.
  46924. </summary>
  46925. <returns>The subdivision containing the triangulation</returns>
  46926. </member>
  46927. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
  46928. <summary>
  46929. Gets the edges of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  46930. </summary>
  46931. <param name="geomFact">The geometry factory to use to create the output</param>
  46932. <returns>the edges of the triangulation</returns>
  46933. </member>
  46934. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulationBuilder.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
  46935. <summary>
  46936. Gets the faces of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  46937. of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>.
  46938. </summary>
  46939. <param name="geomFact">the geometry factory to use to create the output</param>
  46940. <returns>the faces of the triangulation</returns>
  46941. </member>
  46942. <member name="T:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator">
  46943. <summary>
  46944. Computes a Conforming Delaunay Triangulation over a set of sites and a set of
  46945. linear constraints.
  46946. </summary>
  46947. <remarks>
  46948. <para>
  46949. A conforming Delaunay triangulation is a true Delaunay triangulation. In it
  46950. each constraint segment is present as a union of one or more triangulation
  46951. edges. Constraint segments may be subdivided into two or more triangulation
  46952. edges by the insertion of additional sites. The additional sites are called
  46953. Steiner points, and are necessary to allow the segments to be faithfully
  46954. reflected in the triangulation while maintaining the Delaunay property.
  46955. Another way of stating this is that in a conforming Delaunay triangulation
  46956. every constraint segment will be the union of a subset of the triangulation
  46957. edges (up to tolerance).
  46958. </para>
  46959. <para>
  46960. A Conforming Delaunay triangulation is distinct from a Constrained Delaunay triangulation.
  46961. A Constrained Delaunay triangulation is not necessarily fully Delaunay,
  46962. and it contains the constraint segments exactly as edges of the triangulation.
  46963. </para>
  46964. <para>
  46965. A typical usage pattern for the triangulator is:
  46966. <code>
  46967. ConformingDelaunayTriangulator cdt = new ConformingDelaunayTriangulator(sites, tolerance);
  46968. // optional
  46969. cdt.SplitPointFinder = splitPointFinder;
  46970. cdt.VertexFactory = vertexFactory;
  46971. cdt.SetConstraints(segments, new List&lt;Vertex&gt;(vertexMap.Values));
  46972. cdt.FormInitialDelaunay();
  46973. cdt.EnforceConstraints();
  46974. subdiv = cdt.Subdivision;
  46975. </code>
  46976. </para>
  46977. </remarks>
  46978. <author>David Skea</author>
  46979. <author>Martin Davis</author>
  46980. </member>
  46981. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.QuadEdge.Vertex},System.Double)">
  46982. <summary>
  46983. Creates a Conforming Delaunay Triangulation based on the given
  46984. unconstrained initial vertices. The initial vertex set should not contain
  46985. any vertices which appear in the constraint set.
  46986. </summary>
  46987. <param name="initialVertices">a collection of <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/></param>
  46988. <param name="tolerance">the distance tolerance below which points are considered identical</param>
  46989. </member>
  46990. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.SetConstraints(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Segment},System.Collections.Generic.IList{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
  46991. <summary>
  46992. Sets the constraints to be conformed to by the computed triangulation.
  46993. The constraints must not contain duplicate segments (up to orientation).
  46994. The unique set of vertices (as <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>es)
  46995. forming the constraints must also be supplied.
  46996. Supplying it explicitly allows the ConstraintVertexes to be initialized
  46997. appropriately (e.g. with external data), and avoids re-computing the unique set
  46998. if it is already available.
  46999. </summary>
  47000. <param name="segments">list of the constraint <see cref="T:NetTopologySuite.Triangulate.Segment"/>s</param>
  47001. <param name="segVertices">the set of unique <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>es referenced by the segments</param>
  47002. </member>
  47003. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.SplitPointFinder">
  47004. <summary>
  47005. Gets or sets the <see cref="T:NetTopologySuite.Triangulate.IConstraintSplitPointFinder"/> to be
  47006. used during constraint enforcement.
  47007. Different splitting strategies may be appropriate
  47008. for special situations.
  47009. </summary>
  47010. <remarks>the ConstraintSplitPointFinder to be used</remarks>
  47011. </member>
  47012. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.Tolerance">
  47013. <summary>
  47014. Gets the tolerance value used to construct the triangulation.
  47015. </summary>
  47016. <remarks>a tolerance value</remarks>
  47017. </member>
  47018. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.VertexFactory">
  47019. <summary>
  47020. Gets and sets the <see cref="T:NetTopologySuite.Triangulate.ConstraintVertexFactory"/> used to create new constraint vertices at split points.
  47021. </summary>
  47022. <remarks>Allows the setting of a custom <see cref="T:NetTopologySuite.Triangulate.ConstraintVertexFactory"/> to be used
  47023. to allow vertices carrying extra information to be created.
  47024. </remarks>
  47025. </member>
  47026. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.Subdivision">
  47027. <summary>
  47028. Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which represents the triangulation.
  47029. </summary>
  47030. </member>
  47031. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.KDT">
  47032. <summary>
  47033. Gets the <see cref="T:NetTopologySuite.Index.KdTree.KdTree`1"/> which contains the vertices of the triangulation.
  47034. </summary>
  47035. </member>
  47036. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InitialVertices">
  47037. <summary>
  47038. Gets the sites (vertices) used to initialize the triangulation.
  47039. </summary>
  47040. </member>
  47041. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.ConstraintSegments">
  47042. <summary>
  47043. Gets the <see cref="T:NetTopologySuite.Triangulate.Segment"/>s which represent the constraints.
  47044. </summary>
  47045. </member>
  47046. <member name="P:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.ConvexHull">
  47047. <summary>
  47048. Gets the convex hull of all the sites in the triangulation,
  47049. including constraint vertices.
  47050. Only valid after the constraints have been enforced.
  47051. </summary>
  47052. <remarks>the convex hull of the sites</remarks>
  47053. </member>
  47054. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.CreateVertex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Triangulate.Segment)">
  47055. <summary>
  47056. Creates a vertex on a constraint segment
  47057. </summary>
  47058. <param name="p">the location of the vertex to create</param>
  47059. <param name="seg">the constraint segment it lies on</param>
  47060. <returns>the new constraint vertex</returns>
  47061. </member>
  47062. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InsertSites(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
  47063. <summary>
  47064. Inserts all sites in a collection
  47065. </summary>
  47066. <param name="vertices">a collection of ConstraintVertex</param>
  47067. </member>
  47068. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.InsertSite(NetTopologySuite.Geometries.Coordinate)">
  47069. <summary>
  47070. Inserts a site into the triangulation, maintaining the conformal Delaunay property.
  47071. This can be used to further refine the triangulation if required
  47072. (e.g. to approximate the medial axis of the constraints,
  47073. or to improve the grading of the triangulation).
  47074. </summary>
  47075. <param name="p">the location of the site to insert</param>
  47076. </member>
  47077. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.FormInitialDelaunay">
  47078. <summary>
  47079. Computes the Delaunay triangulation of the initial sites.
  47080. </summary>
  47081. </member>
  47082. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.EnforceConstraints">
  47083. <summary>
  47084. Enforces the supplied constraints into the triangulation.
  47085. </summary>
  47086. <exception cref="T:NetTopologySuite.Triangulate.ConstraintEnforcementException">
  47087. if the constraints cannot be enforced</exception>
  47088. </member>
  47089. <member name="M:NetTopologySuite.Triangulate.ConformingDelaunayTriangulator.FindNonGabrielPoint(NetTopologySuite.Triangulate.Segment)">
  47090. <summary>
  47091. Given a set of points stored in the kd-tree and a line segment defined by
  47092. two points in this set, finds a <see cref="T:NetTopologySuite.Geometries.Coordinate"/> in the circumcircle of
  47093. the line segment, if one exists. This is called the Gabriel point - if none
  47094. exists then the segment is said to have the Gabriel condition. Uses the
  47095. heuristic of finding the non-Gabriel point closest to the midpoint of the
  47096. segment.
  47097. </summary>
  47098. <param name="seg">the line segment</param>
  47099. <returns>
  47100. A point which is non-Gabriel,
  47101. or null if no point is non-Gabriel
  47102. </returns>
  47103. </member>
  47104. <member name="T:NetTopologySuite.Triangulate.ConstraintEnforcementException">
  47105. <summary>
  47106. Indicates a failure during constraint enforcement.
  47107. </summary>
  47108. <author>Martin Davis</author>
  47109. <version>1.0</version>
  47110. </member>
  47111. <member name="M:NetTopologySuite.Triangulate.ConstraintEnforcementException.#ctor(System.String)">
  47112. <summary>
  47113. Creates a new instance with a given message.
  47114. </summary>
  47115. <param name="msg">a string</param>
  47116. </member>
  47117. <member name="M:NetTopologySuite.Triangulate.ConstraintEnforcementException.#ctor(System.String,NetTopologySuite.Geometries.Coordinate)">
  47118. <summary>
  47119. Creates a new instance with a given message and approximate location.
  47120. </summary>
  47121. <param name="msg">a string</param>
  47122. <param name="pt">the location of the error</param>
  47123. </member>
  47124. <member name="P:NetTopologySuite.Triangulate.ConstraintEnforcementException.Coordinate">
  47125. <summary>
  47126. Gets the approximate location of this error.
  47127. </summary>
  47128. <remarks>a location</remarks>
  47129. </member>
  47130. <member name="T:NetTopologySuite.Triangulate.ConstraintVertex">
  47131. <summary>
  47132. A vertex in a Constrained Delaunay Triangulation.
  47133. The vertex may or may not lie on a constraint.
  47134. If it does it may carry extra information about the original constraint.
  47135. </summary>
  47136. <author>Martin Davis</author>
  47137. </member>
  47138. <member name="M:NetTopologySuite.Triangulate.ConstraintVertex.#ctor(NetTopologySuite.Geometries.Coordinate)">
  47139. <summary>
  47140. Creates a new constraint vertex
  47141. </summary>
  47142. <param name="p">the location of the vertex</param>
  47143. </member>
  47144. <member name="P:NetTopologySuite.Triangulate.ConstraintVertex.IsOnConstraint">
  47145. <summary>
  47146. Gets or sets whether this vertex lies on a constraint.
  47147. </summary>
  47148. <remarks>true if the vertex lies on a constraint</remarks>
  47149. </member>
  47150. <member name="P:NetTopologySuite.Triangulate.ConstraintVertex.Constraint">
  47151. <summary>
  47152. Gets or sets the external constraint object
  47153. </summary>
  47154. <remarks>object which carries information about the constraint this vertex lies on</remarks>
  47155. </member>
  47156. <member name="M:NetTopologySuite.Triangulate.ConstraintVertex.Merge(NetTopologySuite.Triangulate.ConstraintVertex)">
  47157. <summary>
  47158. Merges the constraint data in the vertex <tt>other</tt> into this vertex.
  47159. This method is called when an inserted vertex is
  47160. very close to an existing vertex in the triangulation.
  47161. </summary>
  47162. <param name="other">the constraint vertex to merge</param>
  47163. </member>
  47164. <member name="T:NetTopologySuite.Triangulate.ConstraintVertexFactory">
  47165. <summary>
  47166. An interface for factories which create a <see cref="T:NetTopologySuite.Triangulate.ConstraintVertex"/>
  47167. </summary>
  47168. <author>Martin Davis</author>
  47169. </member>
  47170. <member name="T:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder">
  47171. <summary>
  47172. A utility class which creates Delaunay Triangulations
  47173. from collections of points and extract the resulting
  47174. triangulation edges or triangles as geometries.
  47175. </summary>
  47176. <author>Martin Davis</author>
  47177. </member>
  47178. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.ExtractUniqueCoordinates(NetTopologySuite.Geometries.Geometry)">
  47179. <summary>
  47180. Extracts the unique <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s from the given <see cref="T:NetTopologySuite.Geometries.Geometry"/>.
  47181. </summary>
  47182. <param name="geom">the geometry to extract from</param>
  47183. <returns>a List of the unique Coordinates</returns>
  47184. </member>
  47185. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.ToVertices(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
  47186. <summary>
  47187. Converts all <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s in a collection to <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
  47188. </summary>
  47189. <param name="coords">the coordinates to convert</param>
  47190. <returns>a List of Vertex objects</returns>
  47191. </member>
  47192. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.Envelope(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
  47193. <summary>
  47194. Computes the <see cref="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.Envelope(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})"/> of a collection of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  47195. </summary>
  47196. <param name="coords">a List of Coordinates</param>
  47197. <returns>the envelope of the set of coordinates</returns>
  47198. </member>
  47199. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
  47200. <summary>
  47201. Sets the sites (vertices) which will be triangulated.
  47202. All vertices of the given geometry will be used as sites.
  47203. </summary>
  47204. <param name="geom">the geometry from which the sites will be extracted.</param>
  47205. </member>
  47206. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.SetSites(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
  47207. <summary>
  47208. Sets the sites (vertices) which will be triangulated
  47209. from a collection of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  47210. </summary>
  47211. <param name="coords">a collection of Coordinates.</param>
  47212. </member>
  47213. <member name="P:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.Tolerance">
  47214. <summary>
  47215. Sets the snapping tolerance which will be used
  47216. to improved the robustness of the triangulation computation.
  47217. A tolerance of 0.0 specifies that no snapping will take place.
  47218. </summary>
  47219. </member>
  47220. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetSubdivision">
  47221. <summary>
  47222. Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which models the computed triangulation.
  47223. </summary>
  47224. <returns>the subdivision containing the triangulation</returns>
  47225. </member>
  47226. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
  47227. <summary>
  47228. Gets the edges of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>.
  47229. </summary>
  47230. <param name="geomFact">the geometry factory to use to create the output</param>
  47231. <returns>the edges of the triangulation</returns>
  47232. </member>
  47233. <member name="M:NetTopologySuite.Triangulate.DelaunayTriangulationBuilder.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
  47234. <summary>
  47235. Gets the faces of the computed triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  47236. of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>.
  47237. </summary>
  47238. <param name="geomFact">the geometry factory to use to create the output</param>
  47239. <returns>the faces of the triangulation</returns>
  47240. </member>
  47241. <member name="T:NetTopologySuite.Triangulate.IConstraintSplitPointFinder">
  47242. <summary>
  47243. An interface for strategies for determining the location of split points on constraint segments.
  47244. The location of split points has a large effect on the performance and robustness of enforcing a
  47245. constrained Delaunay triangulation. Poorly chosen split points can cause repeated splitting,
  47246. especially at narrow constraint angles, since the split point will end up encroaching on the
  47247. segment containing the original encroaching point. With detailed knowledge of the geometry of the
  47248. constraints, it is sometimes possible to choose better locations for splitting.
  47249. </summary>
  47250. <author>mbdavis</author>
  47251. </member>
  47252. <member name="M:NetTopologySuite.Triangulate.IConstraintSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
  47253. <summary>
  47254. Finds a point at which to split an encroached segment to allow the original segment to appear
  47255. as edges in a constrained Delaunay triangulation.
  47256. </summary>
  47257. <param name="seg">the encroached segment</param>
  47258. <param name="encroachPt">the encroaching point</param>
  47259. <returns>the point at which to split the encroached segment</returns>
  47260. </member>
  47261. <member name="T:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator">
  47262. <summary>
  47263. Computes a Delaunay Triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es, using an
  47264. incremental insertion algorithm.
  47265. </summary>
  47266. <author>Martin Davis</author>
  47267. <version>1.0</version>
  47268. </member>
  47269. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.#ctor(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision)">
  47270. <summary>
  47271. Creates a new triangulator using the given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
  47272. The triangulator uses the tolerance of the supplied subdivision.
  47273. </summary>
  47274. <param name="subdiv">a subdivision in which to build the TIN</param>
  47275. </member>
  47276. <member name="P:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.ForceConvex">
  47277. <summary>
  47278. Gets or sets whether the triangulation is forced to have a convex boundary. Because
  47279. of the use of a finite-size frame, this condition requires special logic to
  47280. enforce.The default is true, since this is a requirement for some uses of
  47281. Delaunay Triangulations (such as Concave Hull generation). However, forcing
  47282. the triangulation boundary to be convex may cause the overall frame
  47283. triangulation to be non-Delaunay.This can cause a problem for Voronoi
  47284. generation, so the logic can be disabled via this method.
  47285. </summary>
  47286. </member>
  47287. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.InsertSites(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.QuadEdge.Vertex})">
  47288. <summary>
  47289. Inserts all sites in a collection. The inserted vertices <b>MUST</b> be
  47290. unique up to the provided tolerance value. (i.e. no two vertices should be
  47291. closer than the provided tolerance value). They do not have to be rounded
  47292. to the tolerance grid, however.
  47293. </summary>
  47294. <param name="vertices">a Collection of Vertex</param>
  47295. <exception cref="T:NetTopologySuite.Triangulate.QuadEdge.LocateFailureException">if the location algorithm fails to converge in a reasonable number of iterations</exception>
  47296. </member>
  47297. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.InsertSite(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  47298. <summary>
  47299. Inserts a new point into a subdivision representing a Delaunay
  47300. triangulation, and fixes the affected edges so that the result is still a
  47301. Delaunay triangulation.
  47302. </summary>
  47303. <returns>a quadedge containing the inserted vertex</returns>
  47304. </member>
  47305. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsConcaveBoundary(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  47306. <summary>
  47307. Tests if a edge touching a frame vertex
  47308. creates a concavity in the triangulation boundary.
  47309. </summary>
  47310. <param name="e">The edge to test</param>
  47311. <returns><c>true</c> if the triangulation boundary is concave at the edge</returns>
  47312. </member>
  47313. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsConcaveAtOrigin(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  47314. <summary>
  47315. Tests if the quadrilateral surrounding an edge is concave at the edge origin.
  47316. Used to determine if the triangulation boundary has a concavity.
  47317. </summary>
  47318. <param name="e">The edge to test</param>
  47319. <returns><c>true</c> if the quadrilateral surrounding an edge is concave at the edge origin</returns>
  47320. </member>
  47321. <member name="M:NetTopologySuite.Triangulate.IncrementalDelaunayTriangulator.IsBetweenFrameAndInserted(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  47322. <summary>
  47323. Edges whose adjacent triangles contain
  47324. a frame vertex and the inserted vertex must not be flipped.
  47325. </summary>
  47326. <param name="e">The edge to test</param>
  47327. <param name="vInsert">The inserted vertex</param>
  47328. <returns><c>true</c> if the edge is between the frame and inserted vertex</returns>
  47329. </member>
  47330. <member name="T:NetTopologySuite.Triangulate.MidpointSplitPointFinder">
  47331. <summary>
  47332. A simple split point finder which returns the midpoint of the split segment. This is a default
  47333. strategy only. Usually a more sophisticated strategy is required to prevent repeated splitting.
  47334. Other points which could be used are:
  47335. <ul>
  47336. <li>The projection of the encroaching point on the segment</li>
  47337. <li>A point on the segment which will produce two segments which will not be further encroached</li>
  47338. <li>The point on the segment which is the same distance from an endpoint as the encroaching</li>
  47339. point
  47340. </ul>
  47341. </summary>
  47342. <author>Martin Davis</author>
  47343. </member>
  47344. <member name="M:NetTopologySuite.Triangulate.MidpointSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
  47345. <summary>
  47346. Gets the midpoint of the split segment
  47347. </summary>
  47348. </member>
  47349. <member name="T:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder">
  47350. <summary>
  47351. A strategy for finding constraint split points which attempts to maximise the length of the split
  47352. segments while preventing further encroachment. (This is not always possible for narrow angles).
  47353. </summary>
  47354. <author>Martin Davis</author>
  47355. </member>
  47356. <member name="M:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder.FindSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
  47357. <summary>
  47358. A basic strategy for finding split points when nothing extra is known about the geometry of
  47359. the situation.
  47360. </summary>
  47361. <param name="seg">the encroached segment</param>
  47362. <param name="encroachPt">the encroaching point</param>
  47363. <returns>the point at which to split the encroached segment</returns>
  47364. </member>
  47365. <member name="M:NetTopologySuite.Triangulate.NonEncroachingSplitPointFinder.ProjectedSplitPoint(NetTopologySuite.Triangulate.Segment,NetTopologySuite.Geometries.Coordinate)">
  47366. <summary>
  47367. Computes a split point which is the projection of the encroaching point on the segment
  47368. </summary>
  47369. <param name="seg">The segment</param>
  47370. <param name="encroachPt">The enchroaching point</param>
  47371. <returns>A split point on the segment</returns>
  47372. </member>
  47373. <member name="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator">
  47374. <summary>
  47375. Computes the Constrained Delaunay Triangulation of polygons.
  47376. The Constrained Delaunay Triangulation of a polygon is a set of triangles
  47377. covering the polygon, with the maximum total interior angle over all
  47378. possible triangulations. It provides the "best quality" triangulation
  47379. of the polygon.
  47380. <para/>
  47381. Holes are supported.
  47382. </summary>
  47383. <author>Martin Davis</author>
  47384. </member>
  47385. <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.Triangulate(NetTopologySuite.Geometries.Geometry)">
  47386. <summary>
  47387. Computes the Constrained Delaunay Triangulation of each polygon element in a geometry.
  47388. </summary>
  47389. <param name="geom">The input geometry</param>
  47390. <returns>A GeometryCollection of the computed triangle polygons</returns>
  47391. </member>
  47392. <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.#ctor(NetTopologySuite.Geometries.Geometry)">
  47393. <summary>
  47394. Constructs a new Constrained Delaunay triangulator.
  47395. </summary>
  47396. <param name="inputGeom">The input geometry</param>
  47397. </member>
  47398. <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.GetResult">
  47399. <summary>
  47400. Gets the triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of triangular <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s.
  47401. </summary>
  47402. <returns>A collection of the result triangle polygons</returns>
  47403. </member>
  47404. <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.GetTriangles">
  47405. <summary>
  47406. Gets the triangulation as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
  47407. </summary>
  47408. <returns>The list of <c>Tri</c>s in the triangulation</returns>
  47409. </member>
  47410. <member name="M:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator.TriangulatePolygon(NetTopologySuite.Geometries.Polygon)">
  47411. <summary>
  47412. Computes the triangulation of a single polygon
  47413. and returns it as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
  47414. </summary>
  47415. <param name="poly">The input polygon</param>
  47416. <returns>A list of <c>Tri</c>s forming the triangulation</returns>
  47417. </member>
  47418. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper">
  47419. <summary>
  47420. Triangulates a polygon using the Ear-Clipping technique.
  47421. The polygon is provided as a closed list of contiguous vertices
  47422. defining its boundary.
  47423. The vertices must have clockwise orientation.
  47424. <para/>
  47425. The polygon boundary must not self-cross,
  47426. but may self-touch at points or along an edge.
  47427. It may contain repeated points, which are treated as a single vertex.
  47428. By default every vertex is triangulated,
  47429. including ones which are "flat" (the adjacent segments are collinear).
  47430. These can be removed by setting <see cref="P:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.SkipFlatCorners"/>.
  47431. <para/>
  47432. The polygon representation does not allow holes.
  47433. Polygons with holes can be triangulated by preparing them with <see cref="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner"/>.
  47434. </summary>
  47435. <author>Martin Davis</author>
  47436. </member>
  47437. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.Triangulate(NetTopologySuite.Geometries.Coordinate[])">
  47438. <summary>
  47439. Triangulates a polygon via ear-clipping.
  47440. </summary>
  47441. <param name="polyShell">The vertices of the polygon</param>
  47442. <returns>A list of <c>Tri</c>s</returns>
  47443. </member>
  47444. <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper._vertex">
  47445. <summary>
  47446. The polygon vertices are provided in CW orientation.
  47447. Thus for convex interior angles
  47448. the vertices forming the angle are in CW orientation.
  47449. </summary>
  47450. </member>
  47451. <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper._vertexCoordIndex">
  47452. <summary>
  47453. Indexing vertices improves ear intersection testing performance.
  47454. The polyShell vertices are contiguous, so are suitable for an SPRtree.
  47455. Note that a KDtree cannot be used because the vertex indices must be stored
  47456. and duplicates must be stored.
  47457. </summary>
  47458. </member>
  47459. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.#ctor(NetTopologySuite.Geometries.Coordinate[])">
  47460. <summary>
  47461. Creates a new instance of this class
  47462. </summary>
  47463. <param name="polyShell">The vertices of the polygon to process</param>
  47464. </member>
  47465. <member name="P:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.SkipFlatCorners">
  47466. <summary>
  47467. Gets or sets whether flat corners formed by collinear adjacent line segments
  47468. are included in the triangulation.
  47469. Skipping flat corners reduces the number of triangles in the output.
  47470. However, it produces a triangulation which does not include
  47471. all input vertices. This may be undesirable for downstream processes
  47472. (such as computing a Constrained Delaunay Triangulation for
  47473. purposes of computing the medial axis).
  47474. <para/>
  47475. The default is to include all vertices in the result triangulation.
  47476. This still produces a valid triangulation, with no zero-area triangles.
  47477. <para/>
  47478. Note that repeated vertices are always skipped.
  47479. </summary>
  47480. <returns>A flag indicating if flat corners formed by collinear adjacent line segments
  47481. are included in the triangulation</returns>
  47482. </member>
  47483. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.FindIntersectingVertex(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
  47484. <summary>
  47485. Finds a vertex contained in the corner triangle, if any.
  47486. Uses the vertex spatial index for efficiency.
  47487. <para/>
  47488. Also finds any vertex which is a duplicate of the corner apex vertex.
  47489. This requires a full scan of the vertices to confirm ear is valid.
  47490. This is usually a rare situation, so has little impact on performance.
  47491. </summary>
  47492. <param name="cornerIndex">The index of the corner apex vertex</param>
  47493. <param name="corner">The corner vertices</param>
  47494. <returns>The index of an intersecting or duplicate vertex, or <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NoVertexIndex"/> if none</returns>
  47495. </member>
  47496. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.IsValidEarScan(System.Int32,NetTopologySuite.Geometries.Coordinate[])">
  47497. <summary>
  47498. Scan all vertices in current ring to check if any are duplicates
  47499. of the corner apex vertex, and if so whether the corner ear
  47500. intersects the adjacent segments and thus is invalid.
  47501. </summary>
  47502. <param name="cornerIndex">The index of the corner apex</param>
  47503. <param name="corner">The corner vertices</param>
  47504. <returns><c>true</c> if the corner ia a valid ear</returns>
  47505. </member>
  47506. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.RemoveCorner">
  47507. <summary>
  47508. Remove the corner apex vertex and update the candidate corner location.
  47509. </summary>
  47510. </member>
  47511. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.FetchCorner(NetTopologySuite.Geometries.Coordinate[])">
  47512. <summary>
  47513. Fetch the corner vertices from the indices.
  47514. </summary>
  47515. <param name="cornerVertex">An array for the corner vertices</param>
  47516. </member>
  47517. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NextCorner(NetTopologySuite.Geometries.Coordinate[])">
  47518. <summary>
  47519. Move to next corner.
  47520. </summary>
  47521. </member>
  47522. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.NextIndex(System.Int32)">
  47523. <summary>
  47524. Get the index of the next available shell coordinate starting from the given index.
  47525. </summary>
  47526. <param name="index">Coordinate position</param>
  47527. <returns>Index of the next available shell coordinate</returns>
  47528. </member>
  47529. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonEarClipper.IsCornerInvalid(NetTopologySuite.Geometries.Coordinate[])">
  47530. <summary>
  47531. Detects if a corner has repeated points (AAB or ABB), or is collapsed (ABA).
  47532. </summary>
  47533. <param name="pts">The corner points</param>
  47534. <returns><c>true</c> if the corner is flat or collapsed</returns>
  47535. </member>
  47536. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner">
  47537. <summary>
  47538. Transforms a polygon with holes into a single self-touching (invalid) ring
  47539. by joining holes to the exterior shell or to another hole
  47540. with out-and-back line segments.
  47541. The holes are added in order of their envelopes (leftmost/lowest first).
  47542. As the result shell develops, a hole may be added to what was
  47543. originally another hole.
  47544. <para/>
  47545. There is no attempt to optimize the quality of the join lines.
  47546. In particular, holes may be joined by lines longer than is optimal.
  47547. However, holes which touch the shell or other holes are joined at the touch point.
  47548. <para/>
  47549. The class does not require the input polygon to have normal
  47550. orientation (shell CW and rings CCW).
  47551. The output ring is always CW.
  47552. </summary>
  47553. </member>
  47554. <member name="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._comparer">
  47555. <summary>
  47556. The comparer to use when sorting <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPtsOrdered"/>
  47557. </summary>
  47558. </member>
  47559. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinAsPolygon(NetTopologySuite.Geometries.Polygon)">
  47560. <summary>
  47561. Joins the shell and holes of a polygon
  47562. and returns the result as an (invalid) Polygon.
  47563. </summary>
  47564. <param name="polygon">The polygon to join</param>
  47565. <returns>The result polygon</returns>
  47566. </member>
  47567. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.Join(NetTopologySuite.Geometries.Polygon)">
  47568. <summary>
  47569. Joins the shell and holes of a polygon
  47570. and returns the result as sequence of Coordinates.
  47571. </summary>
  47572. <param name="polygon">The polygon to join</param>
  47573. <returns>The result coordinates</returns>
  47574. </member>
  47575. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.#ctor(NetTopologySuite.Geometries.Polygon)">
  47576. <summary>
  47577. Creates a new hole joiner.
  47578. </summary>
  47579. <param name="polygon">The polygon to join</param>
  47580. </member>
  47581. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.Compute">
  47582. <summary>
  47583. Computes the joined ring
  47584. </summary>
  47585. <returns>The points in the joined ring</returns>
  47586. </member>
  47587. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.AddOrderedCoord(NetTopologySuite.Geometries.Coordinate)">
  47588. <summary>
  47589. Adds a coordinate to the <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPts"/> set and
  47590. clears the <see cref="F:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner._joinedPtsOrdered"/> array.
  47591. </summary>
  47592. <param name="coord">A coordinate</param>
  47593. </member>
  47594. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinTouchingHole(NetTopologySuite.Geometries.Coordinate[])">
  47595. <summary>
  47596. Joins a hole to the shell only if the hole touches the shell.
  47597. Otherwise, reports the hole is non-touching.
  47598. </summary>
  47599. <param name="holeCoords">The hole to join</param>
  47600. <returns><c>true</c> if the hole was touching, <c>false</c> if not</returns>
  47601. </member>
  47602. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindHoleTouchIndex(NetTopologySuite.Geometries.Coordinate[])">
  47603. <summary>
  47604. Finds the vertex index of a hole where it touches the
  47605. current shell (if it does).
  47606. If a hole does touch, it must touch at a single vertex
  47607. (otherwise, the polygon is invalid).
  47608. </summary>
  47609. <param name="holeCoords">The hole</param>
  47610. <returns>The index of the touching vertex, or -1 if no touch</returns>
  47611. </member>
  47612. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.JoinNonTouchingHole(NetTopologySuite.Geometries.Coordinate[])">
  47613. <summary>
  47614. Joins a single non-touching hole to the current joined ring.
  47615. </summary>
  47616. <param name="holeCoords">The hole to join</param>
  47617. </member>
  47618. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindJoinableVertex(NetTopologySuite.Geometries.Coordinate)">
  47619. <summary>
  47620. Finds a shell vertex that is joinable to the hole join vertex.
  47621. One must always exist, since the hole join vertex is on the left
  47622. of the hole, and thus must always have at least one shell vertex visible to it.
  47623. <para/>
  47624. There is no attempt to optimize the selection of shell vertex
  47625. to join to (e.g. by choosing one with shortest distance).
  47626. </summary>
  47627. <param name="holeJoinCoord">Theo hole join vertex</param>
  47628. <returns>The shell vertex to join to</returns>
  47629. </member>
  47630. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.FindJoinIndex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  47631. Gets the join ring vertex index that the hole is joined after.
  47632. A vertex can occur multiple times in the join ring, so it is necessary
  47633. to choose the one which forms a corner having the
  47634. join line in the ring interior.
  47635. @param joinCoord the join ring vertex
  47636. @param holeJoinCoord the hole join vertex
  47637. @return the join ring vertex index to join after
  47638. </member>
  47639. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.IsLineInterior(System.Collections.Generic.List{NetTopologySuite.Geometries.Coordinate},System.Int32,NetTopologySuite.Geometries.Coordinate)">
  47640. <summary>
  47641. Tests if a line between a ring corner vertex and a given point
  47642. is interior to the ring corner.
  47643. </summary>
  47644. <param name="ring">A ring of points</param>
  47645. <param name="ringIndex">The index of a ring vertex</param>
  47646. <param name="linePt">The point to be joined to the ring</param>
  47647. <returns><c>true</c> if the line to the point is interior to the ring corner</returns>
  47648. </member>
  47649. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.AddJoinedHole(System.Int32,NetTopologySuite.Geometries.Coordinate[],System.Int32)">
  47650. <summary>
  47651. Add hole vertices at proper position in shell vertex list.
  47652. This code assumes that if hole touches (shell or other hole),
  47653. it touches at a node. This requires an initial noding step.
  47654. In this case, the code avoids duplicating join vertices.
  47655. <para/>
  47656. Also adds hole points to ordered coordinates.
  47657. </summary>
  47658. <param name="joinIndex">Index of join vertex in shell</param>
  47659. <param name="holeCoords">The vertices of the hole to be inserted</param>
  47660. <param name="holeJoinIndex">Index of join vertex in hole</param>
  47661. </member>
  47662. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.CreateHoleSection(NetTopologySuite.Geometries.Coordinate[],System.Int32,NetTopologySuite.Geometries.Coordinate)">
  47663. <summary>
  47664. Creates the new section of vertices for ad added hole,
  47665. including any required vertices from the shell at the join point,
  47666. and ensuring join vertices are not duplicated.
  47667. </summary>
  47668. <param name="holeCoords">The hole vertices</param>
  47669. <param name="holeJoinIndex">The index of the join vertex</param>
  47670. <param name="joinPt">The shell join vertex</param>
  47671. <returns>A list of new vertices to be added</returns>
  47672. </member>
  47673. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.SortHoles(NetTopologySuite.Geometries.Polygon)">
  47674. <summary>
  47675. Sort the hole rings by minimum X, minimum Y.
  47676. </summary>
  47677. <param name="poly">Polygon that contains the holes</param>
  47678. <returns>A list of sorted hole rings</returns>
  47679. </member>
  47680. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.IntersectsBoundary(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  47681. <summary>
  47682. Tests whether the interior of a line segment intersects the polygon boundary.
  47683. If so, the line is not a valid join line.
  47684. </summary>
  47685. <param name="p0">A segment vertex</param>
  47686. <param name="p1">Another segment vertex</param>
  47687. <returns><c>true</c> if the segment interior intersects a polygon boundary segment</returns>
  47688. </member>
  47689. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonHoleJoiner.InteriorIntersectionDetector">
  47690. <summary>
  47691. Detects if a segment has an interior intersection with another segment.
  47692. </summary>
  47693. </member>
  47694. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonNoder">
  47695. <summary>
  47696. Adds node vertices to the rings of a polygon
  47697. where holes touch the shell or each other.
  47698. The structure of the polygon is preserved.
  47699. <para/>
  47700. This does not fix invalid polygon topology
  47701. (such as self-touching or crossing rings).
  47702. Invalid input remains invalid after noding,
  47703. and does not trigger an error.
  47704. </summary>
  47705. <author>Martin Davis</author>
  47706. </member>
  47707. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonNoder.NodeAdder">
  47708. <summary>
  47709. A <see cref="T:NetTopologySuite.Noding.ISegmentIntersector"/> that added node vertices
  47710. to <see cref="T:NetTopologySuite.Noding.NodedSegmentString"/>s where a segment touches another
  47711. segment in its interior.
  47712. </summary>
  47713. <author>Martin Davis</author>
  47714. </member>
  47715. <member name="T:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator">
  47716. <summary>
  47717. Computes a triangulation of each polygon in a {@link Geometry}.
  47718. A polygon triangulation is a non-overlapping set of triangles which
  47719. cover the polygon and have the same vertices as the polygon.
  47720. The priority is on performance rather than triangulation quality,
  47721. so that the output may contain many narrow triangles.
  47722. <para/>
  47723. Holes are handled by joining them to the shell to form a
  47724. (self-touching) polygon shell with no holes.
  47725. Although invalid, this can be triangulated effectively.
  47726. <para/>
  47727. For better-quality triangulation use <see cref="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator"/>.
  47728. </summary>
  47729. <seealso cref="T:NetTopologySuite.Triangulate.Polygon.ConstrainedDelaunayTriangulator"/>
  47730. <author>Martin Davis</author>
  47731. </member>
  47732. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.Triangulate(NetTopologySuite.Geometries.Geometry)">
  47733. <summary>
  47734. Computes a triangulation of each polygon in a geometry.
  47735. </summary>
  47736. <param name="geom">A geometry containing polygons</param>
  47737. <returns>A <c>GeometryCollection</c> containing the polygons</returns>
  47738. </member>
  47739. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.#ctor(NetTopologySuite.Geometries.Geometry)">
  47740. <summary>
  47741. Constructs a new triangulator.
  47742. </summary>
  47743. <param name="inputGeom">The input geometry</param>
  47744. </member>
  47745. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.GetResult">
  47746. <summary>
  47747. Gets the triangulation as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of triangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>s.
  47748. </summary>
  47749. <returns>A collection of the result triangle polygons</returns>
  47750. </member>
  47751. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.GetTriangles">
  47752. <summary>
  47753. Gets the triangulation as a list of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
  47754. </summary>
  47755. <returns>The list of Tris in the triangulation</returns>
  47756. </member>
  47757. <member name="M:NetTopologySuite.Triangulate.Polygon.PolygonTriangulator.TriangulatePolygon(NetTopologySuite.Geometries.Polygon)">
  47758. <summary>
  47759. Computes the triangulation of a single polygon
  47760. </summary>
  47761. <returns>A list of triangular polygons</returns>
  47762. </member>
  47763. <member name="T:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover">
  47764. <summary>
  47765. Improves the quality of a triangulation of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s via
  47766. iterated Delaunay flipping.
  47767. This produces a Constrained Delaunay Triangulation
  47768. with the constraints being the boundary of the input triangulation.
  47769. </summary>
  47770. <author>Martin Davis</author>
  47771. </member>
  47772. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.Improve(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  47773. <summary>
  47774. Improves the quality of a triangulation of {@link Tri}s via
  47775. iterated Delaunay flipping.
  47776. The Tris are assumed to be linked into a Triangulation
  47777. (e.g. via <see cref="!:TriangulationBuilder"/>).
  47778. </summary>
  47779. <param name="triList">The list of <c>Tri</c>s to improve</param>
  47780. </member>
  47781. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.ImproveScan(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  47782. <summary>Improves a triangulation by examining pairs of adjacent triangles
  47783. (forming a quadrilateral) and testing if flipping the diagonal of
  47784. the quadrilateral would produce two new triangles with larger minimum
  47785. interior angles.
  47786. </summary>
  47787. <returns>The number of flips that were made</returns>
  47788. </member>
  47789. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.ImproveNonDelaunay(NetTopologySuite.Triangulate.Tri.Tri,System.Int32)">
  47790. <summary>
  47791. Does a flip of the common edge of two Tris if the Delaunay condition is not met.
  47792. </summary>
  47793. <param name="tri">A <c>Tri</c></param>
  47794. <param name="index">The index of the <paramref name="tri"/></param>
  47795. <returns><c>true</c> if the triangles were flipped</returns>
  47796. </member>
  47797. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsConvex(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  47798. <summary>
  47799. Tests if the quadrilateral formed by two adjacent triangles is convex.
  47800. opp0-adj0-adj1 and opp1-adj1-adj0 are the triangle corners
  47801. and hence are known to be convex.
  47802. The quadrilateral is convex if the other corners opp0-adj0-opp1
  47803. and opp1-adj1-opp0 have the same orientation (since at least one must be convex).
  47804. </summary>
  47805. <param name="adj0">The adjacent edge vertex 0</param>
  47806. <param name="adj1">The adjacent edge vertex 1</param>
  47807. <param name="opp0">The corner vertex of triangle 0</param>
  47808. <param name="opp1">The corner vertex of triangle 1</param>
  47809. <returns><c>true</c> if the quadrilateral is convex</returns>
  47810. </member>
  47811. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsDelaunay(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  47812. <summary>
  47813. Tests if either of a pair of adjacent triangles satisfy the Delaunay condition.
  47814. The triangles are opp0-adj0-adj1 and opp1-adj1-adj0.
  47815. The Delaunay condition is not met if one opposite vertex
  47816. lies is in the circumcircle of the other triangle.
  47817. </summary>
  47818. <param name="adj0">The adjacent edge vertex 0</param>
  47819. <param name="adj1">The adjacent edge vertex 1</param>
  47820. <param name="opp0">The corner vertex of triangle 0</param>
  47821. <param name="opp1">The corner vertex of triangle 1</param>
  47822. <returns><c>true</c> if the triangles are Delaunay</returns>
  47823. </member>
  47824. <member name="M:NetTopologySuite.Triangulate.Polygon.TriDelaunayImprover.IsInCircle(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  47825. <summary>
  47826. Tests whether a point p is in the circumcircle of a triangle abc
  47827. (oriented clockwise).
  47828. </summary>
  47829. <param name="a">A vertex of the triangle</param>
  47830. <param name="b">A vertex of the triangle</param>
  47831. <param name="c">A vertex of the triangle</param>
  47832. <param name="p">The point</param>
  47833. <returns><c>true</c> if the point is in the circumcircle</returns>
  47834. </member>
  47835. <member name="T:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal">
  47836. <summary>
  47837. A framework to visit sets of edge-connected <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s in breadth-first order
  47838. </summary>
  47839. <author>Martin Davis</author>
  47840. <version>1.0</version>
  47841. </member>
  47842. <member name="M:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal.Init(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle})">
  47843. <summary>
  47844. Called to initialize the traversal queue with a given set of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s
  47845. </summary>
  47846. <param name="tris">a collection of QuadEdgeTriangle</param>
  47847. </member>
  47848. <member name="M:NetTopologySuite.Triangulate.QuadEdge.EdgeConnectedTriangleTraversal.VisitAll(NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor)">
  47849. <summary>
  47850. Subclasses call this method to perform the visiting process.
  47851. </summary>
  47852. </member>
  47853. <member name="T:NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator">
  47854. <summary>
  47855. An interface for classes which locate an edge in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
  47856. which either contains a given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> V
  47857. or is an edge of a triangle which contains V.
  47858. Implementors may utilized different strategies for
  47859. optimizing locating containing edges/triangles.
  47860. </summary>
  47861. <author>Martin Davis</author>
  47862. </member>
  47863. <member name="T:NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor">
  47864. <summary>
  47865. Interface for classes which process triangles visited during traversals of a
  47866. <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
  47867. </summary>
  47868. <author>Martin Davis</author>
  47869. </member>
  47870. <member name="M:NetTopologySuite.Triangulate.QuadEdge.ITraversalVisitor.Visit(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle,System.Int32,NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle)">
  47871. <summary>
  47872. Visits a triangle during a traversal of a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>. An implementation of
  47873. this method may perform processing on the current triangle. It must also decide whether a
  47874. neighbouring triangle should be added to the queue so its neighbours are visited. Often it
  47875. will perform processing on the neighbour triangle as well, in order to mark it as processed
  47876. (visited) and/or to determine if it should be visited. Note that choosing <b>not</b> to
  47877. visit the neighbouring triangle is the terminating condition for many traversal algorithms.
  47878. In particular, if the neighbour triangle has already been visited, it should not be visited
  47879. again.
  47880. </summary>
  47881. <param name="currTri">the current triangle being processed</param>
  47882. <param name="edgeIndex">the index of the edge in the current triangle being traversed</param>
  47883. <param name="neighbTri">a neighbouring triangle next in line to visit</param>
  47884. <returns>true if the neighbour triangle should be visited</returns>
  47885. </member>
  47886. <member name="T:NetTopologySuite.Triangulate.QuadEdge.ITriangleVisitor">
  47887. <summary>
  47888. An interface for algorithms which process the triangles in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
  47889. </summary>
  47890. <author>Martin Davis</author>
  47891. <version>1.0</version>
  47892. </member>
  47893. <member name="M:NetTopologySuite.Triangulate.QuadEdge.ITriangleVisitor.Visit(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
  47894. <summary>
  47895. Visits the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s of a triangle.
  47896. </summary>
  47897. <param name="triEdges">an array of the 3 quad edges in a triangle (in CCW order)</param>
  47898. </member>
  47899. <member name="T:NetTopologySuite.Triangulate.QuadEdge.LastFoundQuadEdgeLocator">
  47900. <summary>
  47901. Locates <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>,
  47902. optimizing the search by starting in the
  47903. locality of the last edge found.
  47904. </summary>
  47905. <author>Martin Davis</author>
  47906. </member>
  47907. <member name="M:NetTopologySuite.Triangulate.QuadEdge.LastFoundQuadEdgeLocator.Locate(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  47908. <summary>
  47909. Locates an edge e, such that either v is on e, or e is an edge of a triangle containing v.
  47910. The search starts from the last located edge and proceeds on the general direction of v.
  47911. </summary>
  47912. </member>
  47913. <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge">
  47914. <summary>
  47915. A class that represents the edge data structure which implements the quadedge algebra.
  47916. The quadedge algebra was described in a well-known paper by Guibas and Stolfi,
  47917. "Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams",
  47918. <i>ACM Transactions on Graphics</i>, 4(2), 1985, 75-123.
  47919. <para>
  47920. Each edge object is part of a quartet of 4 edges,
  47921. linked via their <tt>Rot</tt> references.
  47922. Any edge in the group may be accessed using a series of <see cref="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Rot"/> operations.
  47923. Quadedges in a subdivision are linked together via their <tt>Next</tt> references.
  47924. The linkage between the quadedge quartets determines the topology
  47925. of the subdivision.
  47926. </para>
  47927. <para>
  47928. The edge class does not contain separate information for vertices or faces; a vertex is implicitly
  47929. defined as a ring of edges (created using the <tt>Next</tt> field).
  47930. </para>
  47931. </summary>
  47932. <author>David Skea</author>
  47933. <author>Martin Davis</author>
  47934. </member>
  47935. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.MakeEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  47936. <summary>
  47937. Creates a new QuadEdge quartet from <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>o to <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> d.
  47938. </summary>
  47939. <param name="o">the origin Vertex</param>
  47940. <param name="d">the destination Vertex</param>
  47941. <returns>the new QuadEdge quartet</returns>
  47942. </member>
  47943. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Connect(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  47944. <summary>
  47945. Creates a new QuadEdge connecting the destination of a to the origin of
  47946. b, in such a way that all three have the same left face after the
  47947. connection is complete. Additionally, the data pointers of the new edge
  47948. are set.
  47949. </summary>
  47950. <returns>the connected edge</returns>
  47951. </member>
  47952. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Splice(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  47953. <summary>
  47954. Splices two edges together or apart.
  47955. Splice affects the two edge rings around the origins of a and b, and, independently, the two
  47956. edge rings around the left faces of <tt>a</tt> and <tt>b</tt>.
  47957. In each case, (i) if the two rings are distinct,
  47958. Splice will combine them into one, or (ii) if the two are the same ring, Splice will break it
  47959. into two separate pieces. Thus, Splice can be used both to attach the two edges together, and
  47960. to break them apart.
  47961. </summary>
  47962. <param name="a">an edge to splice</param>
  47963. <param name="b">an edge to splice</param>
  47964. </member>
  47965. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Swap(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  47966. <summary>
  47967. Turns an edge counterclockwise inside its enclosing quadrilateral.
  47968. </summary>
  47969. <param name="e">the quadedge to turn</param>
  47970. </member>
  47971. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.#ctor">
  47972. <summary>
  47973. Quadedges must be made using {@link makeEdge},
  47974. to ensure proper construction.
  47975. </summary>
  47976. </member>
  47977. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.GetPrimary">
  47978. <summary>
  47979. Gets the primary edge of this quadedge and its <tt>sym</tt>.
  47980. The primary edge is the one for which the origin
  47981. and destination coordinates are ordered
  47982. according to the standard <see cref="T:NetTopologySuite.Geometries.Coordinate"/> ordering
  47983. </summary>
  47984. <returns>the primary quadedge</returns>
  47985. </member>
  47986. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Data">
  47987. <summary>
  47988. Gets or sets the external data value for this edge.
  47989. </summary>
  47990. <remarks>
  47991. an object containing external data
  47992. </remarks>
  47993. </member>
  47994. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Delete">
  47995. <summary>
  47996. Marks this quadedge as being deleted.
  47997. This does not free the memory used by
  47998. this quadedge quartet, but indicates
  47999. that this edge no longer participates
  48000. in a subdivision.
  48001. </summary>
  48002. </member>
  48003. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.IsLive">
  48004. <summary>
  48005. Tests whether this edge has been deleted.
  48006. </summary>
  48007. <returns>true if this edge has not been deleted.</returns>
  48008. </member>
  48009. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.SetNext(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48010. <summary>
  48011. Sets the connected edge
  48012. </summary>
  48013. <param name="next">edge</param>
  48014. </member>
  48015. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Rot">
  48016. <summary>
  48017. Gets the dual of this edge, directed from its right to its left.
  48018. </summary>
  48019. <remarks>Gets or Sets the rotated edge</remarks>
  48020. </member>
  48021. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.InvRot">
  48022. <summary>
  48023. Gets the dual of this edge, directed from its left to its right.
  48024. </summary>
  48025. <remarks>Gets the inverse rotated edge.</remarks>
  48026. </member>
  48027. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Sym">
  48028. <summary>
  48029. Gets the edge from the destination to the origin of this edge.
  48030. </summary>
  48031. <remarks>Gets the sym of the edge.</remarks>
  48032. </member>
  48033. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ONext">
  48034. <summary>
  48035. Gets the next CCW edge around the origin of this edge.
  48036. </summary>
  48037. <remarks>Gets the next linked edge.</remarks>
  48038. </member>
  48039. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.OPrev">
  48040. <summary>
  48041. Gets the next CW edge around (from) the origin of this edge.
  48042. </summary>
  48043. <remarks>Gets the previous edge.</remarks>
  48044. </member>
  48045. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.DNext">
  48046. <summary>
  48047. Gets the next CCW edge around (into) the destination of this edge.
  48048. </summary>
  48049. <remarks>Get the next destination edge.</remarks>
  48050. </member>
  48051. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.DPrev">
  48052. <summary>
  48053. Gets the next CW edge around (into) the destination of this edge.
  48054. </summary>
  48055. <remarks>Get the previous destination edge.</remarks>
  48056. </member>
  48057. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.LNext">
  48058. <summary>
  48059. Gets the CCW edge around the left face following this edge.
  48060. </summary>
  48061. <remarks>Gets the next left face edge.</remarks>
  48062. </member>
  48063. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.LPrev">
  48064. <summary>
  48065. Gets the CCW edge around the left face before this edge.
  48066. </summary>
  48067. <remarks>Get the previous left face edge.</remarks>
  48068. </member>
  48069. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.RNext">
  48070. <summary>
  48071. Gets the edge around the right face ccw following this edge.
  48072. </summary>
  48073. <remarks>Gets the next right face edge.</remarks>
  48074. </member>
  48075. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.RPrev">
  48076. <summary>
  48077. Gets the edge around the right face ccw before this edge.
  48078. </summary>
  48079. <remarks>Gets the previous right face edge.</remarks>
  48080. </member>
  48081. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Orig">
  48082. <summary>
  48083. Gets or sets the vertex for the edge's origin
  48084. </summary>
  48085. <remarks>Gets the origin vertex</remarks>
  48086. </member>
  48087. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Dest">
  48088. <summary>
  48089. Gets or sets the vertex for the edge's destination
  48090. </summary>
  48091. <remarks>Gets the destination vertex</remarks>
  48092. </member>
  48093. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.Length">
  48094. <summary>
  48095. Gets the length of the geometry of this quadedge.
  48096. </summary>
  48097. <remarks>Gets the length of the quadedge</remarks>
  48098. </member>
  48099. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.EqualsNonOriented(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48100. <summary>
  48101. Tests if this quadedge and another have the same line segment geometry,
  48102. regardless of orientation.
  48103. </summary>
  48104. <param name="qe">a quadedge</param>
  48105. <returns>true if the quadedges are based on the same line segment regardless of orientation</returns>
  48106. </member>
  48107. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.EqualsOriented(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48108. <summary>
  48109. Tests if this quadedge and another have the same line segment geometry
  48110. with the same orientation.
  48111. </summary>
  48112. <param name="qe">a quadedge</param>
  48113. <returns>true if the quadedges are based on the same line segment</returns>
  48114. </member>
  48115. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ToLineSegment">
  48116. <summary>
  48117. Creates a <see cref="T:NetTopologySuite.Geometries.LineSegment"/> representing the
  48118. geometry of this edge.
  48119. </summary>
  48120. <returns>a LineSegment</returns>
  48121. </member>
  48122. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdge.ToString">
  48123. <summary>
  48124. Converts this edge to a WKT two-point <tt>LINESTRING</tt> indicating
  48125. the geometry of this edge.
  48126. </summary>
  48127. <returns>a String representing this edge's geometry</returns>
  48128. </member>
  48129. <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision">
  48130. <summary>
  48131. A class that contains the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s representing a planar
  48132. subdivision that models a triangulation.
  48133. The subdivision is constructed using the
  48134. quadedge algebra defined in the class <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>.
  48135. All metric calculations
  48136. are done in the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> class.
  48137. In addition to a triangulation, subdivisions
  48138. support extraction of Voronoi diagrams.
  48139. This is easily accomplished, since the Voronoi diagram is the dual
  48140. of the Delaunay triangulation.
  48141. <para>
  48142. Subdivisions can be provided with a tolerance value. Inserted vertices which
  48143. are closer than this value to vertices already in the subdivision will be
  48144. ignored. Using a suitable tolerance value can prevent robustness failures
  48145. from happening during Delaunay triangulation.
  48146. </para>
  48147. <para>
  48148. Subdivisions maintain a <b>frame</b> triangle around the client-created
  48149. edges. The frame is used to provide a bounded "container" for all edges
  48150. within a TIN. Normally the frame edges, frame connecting edges, and frame
  48151. triangles are not included in client processing.
  48152. </para>
  48153. </summary>
  48154. <author>David Skea</author>
  48155. <author>Martin Davis</author>
  48156. </member>
  48157. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleEdges(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
  48158. <summary>
  48159. Gets the edges for the triangle to the left of the given <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>.
  48160. </summary>
  48161. <param name="startQE" />
  48162. <param name="triEdge" />
  48163. <exception cref="T:System.ArgumentException">if the edges do not form a triangle</exception>
  48164. </member>
  48165. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.#ctor(NetTopologySuite.Geometries.Envelope,System.Double)">
  48166. <summary>
  48167. Creates a new instance of a quad-edge subdivision based on a frame triangle
  48168. that encloses a supplied bounding box. A new super-bounding box that
  48169. contains the triangle is computed and stored.
  48170. </summary>
  48171. <param name="env">the bounding box to surround</param>
  48172. <param name="tolerance">the tolerance value for determining if two sites are equal</param>
  48173. </member>
  48174. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.CreateFrame(NetTopologySuite.Geometries.Envelope)">
  48175. <summary>
  48176. Creates a triangular frame which contains the vertices to be triangulated.
  48177. <para/>
  48178. The frame must be large enough so that its vertices are not in the circumcircle
  48179. of any constructed triangle.
  48180. This ensures that the vertices of the frame do not prevent the convex hull
  48181. of the input vertices from forming edges of the triangulation.
  48182. This is done by using a heuristic size
  48183. of the frame. However, it may be that this is not fully robust,
  48184. for input points which contain very narry triangles.
  48185. </summary>
  48186. <param name="env">The envelope of the input points</param>
  48187. </member>
  48188. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Tolerance">
  48189. <summary>
  48190. Gets the vertex-equality tolerance value
  48191. used in this subdivision
  48192. </summary>
  48193. <remarks>Gets the tolerance value</remarks>
  48194. </member>
  48195. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Envelope">
  48196. <summary>
  48197. Gets the envelope of the Subdivision (including the frame).
  48198. </summary>
  48199. <remarks>Gets the envelope</remarks>
  48200. </member>
  48201. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetEdges">
  48202. <summary>
  48203. Gets the collection of base <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s (one for every pair of
  48204. vertices which is connected).
  48205. </summary>
  48206. <returns>a collection of QuadEdges</returns>
  48207. </member>
  48208. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.SetLocator(NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator)">
  48209. <summary>
  48210. Sets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.IQuadEdgeLocator"/> to use for locating containing triangles
  48211. in this subdivision.
  48212. </summary>
  48213. <param name="locator">a QuadEdgeLocator</param>
  48214. </member>
  48215. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.MakeEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48216. <summary>
  48217. Creates a new quadedge, recording it in the edges list.
  48218. </summary>
  48219. <param name="o">The origin vertex</param>
  48220. <param name="d">The destination vertex</param>
  48221. <returns>A new quadedge</returns>
  48222. </member>
  48223. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Connect(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48224. <summary>
  48225. Creates a new QuadEdge connecting the destination of a to the origin of b,
  48226. in such a way that all three have the same left face after the connection
  48227. is complete. The quadedge is recorded in the edges list.
  48228. </summary>
  48229. <param name="a">A quadedge</param>
  48230. <param name="b">A quadedge</param>
  48231. <returns>A quadedge</returns>
  48232. </member>
  48233. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Delete(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48234. <summary>
  48235. Deletes a quadedge from the subdivision. Linked quadedges are updated to
  48236. reflect the deletion.
  48237. </summary>
  48238. <param name="e">the quadedge to delete</param>
  48239. </member>
  48240. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.LocateFromEdge(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48241. <summary>
  48242. Locates an edge of a triangle which contains a location
  48243. specified by a Vertex v.
  48244. The edge returned has the
  48245. property that either v is on e, or e is an edge of a triangle containing v.
  48246. The search starts from startEdge amd proceeds on the general direction of v.
  48247. </summary>
  48248. <remarks>
  48249. This locate algorithm relies on the subdivision being Delaunay. For
  48250. non-Delaunay subdivisions, this may loop for ever.
  48251. </remarks>
  48252. <param name="v">the location to search for</param>
  48253. <param name="startEdge">an edge of the subdivision to start searching at</param>
  48254. <returns>a QuadEdge which contains v, or is on the edge of a triangle containing v</returns>
  48255. <exception cref="T:NetTopologySuite.Triangulate.QuadEdge.LocateFailureException">
  48256. if the location algorithm fails to converge in a reasonable
  48257. number of iterations
  48258. </exception>
  48259. </member>
  48260. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48261. <summary>
  48262. Finds a quadedge of a triangle containing a location
  48263. specified by a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>, if one exists.
  48264. </summary>
  48265. <param name="v">the vertex to locate</param>
  48266. <returns>a quadedge on the edge of a triangle which touches or contains the location<br/>
  48267. or null if no such triangle exists
  48268. </returns>
  48269. </member>
  48270. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Geometries.Coordinate)">
  48271. <summary>
  48272. Finds a quadedge of a triangle containing a location
  48273. specified by a <see cref="T:NetTopologySuite.Geometries.Coordinate"/>, if one exists.
  48274. </summary>
  48275. <param name="p">the Coordinate to locate</param>
  48276. <returns>a quadedge on the edge of a triangle which touches or contains the location,
  48277. or null if no such triangle exists
  48278. </returns>
  48279. </member>
  48280. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.Locate(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48281. <summary>
  48282. Locates the edge between the given vertices, if it exists in the
  48283. subdivision.
  48284. </summary>
  48285. <param name="p0">a coordinate</param>
  48286. <param name="p1">another coordinate</param>
  48287. <returns>the edge joining the coordinates, if present,
  48288. or null if no such edge exists
  48289. </returns>
  48290. </member>
  48291. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.InsertSite(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48292. <summary>
  48293. Inserts a new site into the Subdivision, connecting it to the vertices of
  48294. the containing triangle (or quadrilateral, if the split point falls on an
  48295. existing edge).
  48296. </summary>
  48297. <remarks>
  48298. <para>
  48299. This method does NOT maintain the Delaunay condition. If desired, this must
  48300. be checked and enforced by the caller.
  48301. </para>
  48302. <para>
  48303. This method does NOT check if the inserted vertex falls on an edge. This
  48304. must be checked by the caller, since this situation may cause erroneous
  48305. triangulation
  48306. </para>
  48307. </remarks>
  48308. <param name="v">the vertex to insert</param>
  48309. <returns>a new quad edge terminating in v</returns>
  48310. </member>
  48311. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48312. <summary>
  48313. Tests whether a QuadEdge is an edge incident on a frame triangle vertex.
  48314. </summary>
  48315. <param name="e">the edge to test</param>
  48316. <returns>true if the edge is connected to the frame triangle</returns>
  48317. </member>
  48318. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameBorderEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48319. <summary>
  48320. Tests whether a QuadEdge is an edge on the border of the frame facets and
  48321. the internal facets. E.g. an edge which does not itself touch a frame
  48322. vertex, but which touches an edge which does.
  48323. </summary>
  48324. <param name="e">the edge to test</param>
  48325. <returns>true if the edge is on the border of the frame</returns>
  48326. </member>
  48327. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsFrameVertex(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48328. <summary>
  48329. Tests whether a vertex is a vertex of the outer triangle.
  48330. </summary>
  48331. <param name="v">the vertex to test</param>
  48332. <returns>true if the vertex is an outer triangle vertex</returns>
  48333. </member>
  48334. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsOnEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Geometries.Coordinate)">
  48335. <summary>
  48336. Tests whether a {@link Coordinate} lies on a {@link QuadEdge}, up to a
  48337. tolerance determined by the subdivision tolerance.
  48338. </summary>
  48339. <param name="e">a QuadEdge</param>
  48340. <param name="p">a point</param>
  48341. <returns>true if the vertex lies on the edge</returns>
  48342. </member>
  48343. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsVertexOfEdge(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48344. <summary>
  48345. Tests whether a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/> is the start or end vertex of a
  48346. <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>, up to the subdivision tolerance distance.
  48347. </summary>
  48348. <param name="e" />
  48349. <param name="v" />
  48350. <returns>true if the vertex is a endpoint of the edge</returns>
  48351. </member>
  48352. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertices(System.Boolean)">
  48353. <summary>
  48354. Gets the unique <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es in the subdivision,
  48355. including the frame vertices if desired.
  48356. </summary>
  48357. <param name="includeFrame">true if the frame vertices should be included</param>
  48358. <returns>a collection of the subdivision vertices</returns>
  48359. <see cref="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertexUniqueEdges(System.Boolean)"/>
  48360. </member>
  48361. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertexUniqueEdges(System.Boolean)">
  48362. <summary>
  48363. Gets a collection of <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s whose origin
  48364. vertices are a unique set which includes
  48365. all vertices in the subdivision.
  48366. The frame vertices can be included if required.
  48367. </summary>
  48368. <remarks>
  48369. This is useful for algorithms which require traversing the
  48370. subdivision starting at all vertices.
  48371. Returning a quadedge for each vertex
  48372. is more efficient than
  48373. the alternative of finding the actual vertices
  48374. using <see cref="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVertices(System.Boolean)"/> and then locating
  48375. quadedges attached to them.
  48376. </remarks>
  48377. <param name="includeFrame">true if the frame vertices should be included</param>
  48378. <returns>a collection of QuadEdge with the vertices of the subdivision as their origins</returns>
  48379. </member>
  48380. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetPrimaryEdges(System.Boolean)">
  48381. <summary>
  48382. Gets all primary quadedges in the subdivision.
  48383. A primary edge is a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>
  48384. which occupies the 0'th position in its array of associated quadedges.
  48385. These provide the unique geometric edges of the triangulation.
  48386. </summary>
  48387. <param name="includeFrame">true if the frame edges are to be included</param>
  48388. <returns>a List of QuadEdges</returns>
  48389. </member>
  48390. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetFrameEdges">
  48391. <summary>
  48392. Gets the edges which touch frame vertices. The returned edges are oriented so
  48393. that their origin is a frame vertex.
  48394. </summary>
  48395. <returns>The edges which touch the frame</returns>
  48396. </member>
  48397. <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.TriangleCircumcentreVisitor">
  48398. <summary>
  48399. A TriangleVisitor which computes and sets the
  48400. circumcentre as the origin of the dual
  48401. edges originating in each triangle.
  48402. </summary>
  48403. <author>mbdavis</author>
  48404. </member>
  48405. <member name="F:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision._triEdges">
  48406. <summary>
  48407. The quadedges forming a single triangle.
  48408. Only one visitor is allowed to be active at a
  48409. time, so this is safe.
  48410. </summary>
  48411. </member>
  48412. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.FetchTriangleToVisit(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,System.Collections.Generic.Stack{NetTopologySuite.Triangulate.QuadEdge.QuadEdge},System.Boolean,System.Collections.Generic.HashSet{NetTopologySuite.Triangulate.QuadEdge.QuadEdge})">
  48413. <summary>
  48414. Stores the edges for a visited triangle. Also pushes sym (neighbour) edges
  48415. on stack to visit later.
  48416. </summary>
  48417. <param name="edge" />
  48418. <param name="edgeStack" />
  48419. <param name="includeFrame" />
  48420. <param name="visitedEdges"></param>
  48421. <returns>the visited triangle edges,<br/>
  48422. or <c>null</c> if the triangle should not be visited (for instance, if it is outer)
  48423. </returns>
  48424. </member>
  48425. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleEdges(System.Boolean)">
  48426. <summary>
  48427. Gets a list of the triangles
  48428. in the subdivision, specified as
  48429. an array of the primary quadedges around the triangle.
  48430. </summary>
  48431. <param name="includeFrame">true if the frame triangles should be included</param>
  48432. <returns>a List of QuadEdge[3] arrays</returns>
  48433. </member>
  48434. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleVertices(System.Boolean)">
  48435. <summary>
  48436. Gets a list of the triangles in the subdivision,
  48437. specified as an array of the triangle <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
  48438. </summary>
  48439. <param name="includeFrame">true if the frame triangles should be included</param>
  48440. <returns>a List of Vertex[3] arrays</returns>
  48441. </member>
  48442. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangleCoordinates(System.Boolean)">
  48443. <summary>
  48444. Gets the coordinates for each triangle in the subdivision as an array.
  48445. </summary>
  48446. <param name="includeFrame">true if the frame triangles should be included</param>
  48447. <returns>a list of Coordinate[4] representing each triangle</returns>
  48448. </member>
  48449. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetEdges(NetTopologySuite.Geometries.GeometryFactory)">
  48450. <summary>
  48451. Gets the geometry for the edges in the subdivision as a <see cref="T:NetTopologySuite.Geometries.MultiLineString"/>
  48452. containing 2-point lines.
  48453. </summary>
  48454. <param name="geomFact">the GeometryFactory to use</param>
  48455. <returns>a MultiLineString</returns>
  48456. </member>
  48457. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangles(NetTopologySuite.Geometries.GeometryFactory)">
  48458. <summary>
  48459. Gets the geometry for the triangles in a triangulated subdivision as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  48460. of triangular <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s.
  48461. </summary>
  48462. <param name="geomFact">the GeometryFactory to use</param>
  48463. <returns>a GeometryCollection of triangular Polygons</returns>
  48464. </member>
  48465. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetTriangles(System.Boolean,NetTopologySuite.Geometries.GeometryFactory)">
  48466. <summary>
  48467. Gets the geometry for the triangles in a triangulated subdivision as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  48468. of triangular <see cref="T:NetTopologySuite.Geometries.Polygon"/>s, optionally including the frame triangles.
  48469. </summary>
  48470. <param name="includeFrame">A flag indicating if the frame triangles should be included</param>
  48471. <param name="geomFact">The <c>GeometryFactory</c> to use</param>
  48472. <returns>A <c>GeometryCollection</c> of triangular polygons</returns>
  48473. </member>
  48474. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiDiagram(NetTopologySuite.Geometries.GeometryFactory)">
  48475. <summary>
  48476. Gets the cells in the Voronoi diagram for this triangulation.
  48477. The cells are returned as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection" /> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s
  48478. </summary>
  48479. <remarks>
  48480. The userData of each polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate" />
  48481. of the cell site. This allows easily associating external
  48482. data associated with the sites to the cells.
  48483. </remarks>
  48484. <param name="geomFact">a geometry factory</param>
  48485. <returns>a GeometryCollection of Polygons</returns>
  48486. </member>
  48487. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiCellPolygons(NetTopologySuite.Geometries.GeometryFactory)">
  48488. <summary>
  48489. Gets a List of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s for the Voronoi cells
  48490. of this triangulation.
  48491. </summary>
  48492. <remarks>
  48493. The UserData of each polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate"/>
  48494. of the cell site. This allows easily associating external
  48495. data associated with the sites to the cells.
  48496. </remarks>
  48497. <param name="geomFact">a geometry factory</param>
  48498. <returns>a List of Polygons</returns>
  48499. </member>
  48500. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.GetVoronoiCellPolygon(NetTopologySuite.Triangulate.QuadEdge.QuadEdge,NetTopologySuite.Geometries.GeometryFactory)">
  48501. <summary>
  48502. Gets the Voronoi cell around a site specified
  48503. by the origin of a QuadEdge.
  48504. </summary>
  48505. <remarks>
  48506. The userData of the polygon is set to be the <see cref="T:NetTopologySuite.Geometries.Coordinate" />
  48507. of the site. This allows attaching external
  48508. data associated with the site to this cell polygon.
  48509. </remarks>
  48510. <param name="qe">a quadedge originating at the cell site</param>
  48511. <param name="geomFact">a factory for building the polygon</param>
  48512. <returns>a polygon indicating the cell extent</returns>
  48513. </member>
  48514. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision.IsDelaunay">
  48515. <summary>
  48516. Tests whether a subdivision is a valid Delaunay Triangulation.
  48517. This is the case iff every edge is locally Delaunay, meaning that
  48518. the apex of one adjacent triangle is not inside the circumcircle
  48519. of the other adjacent triangle.
  48520. </summary>
  48521. </member>
  48522. <member name="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle">
  48523. <summary>
  48524. Models a triangle formed from <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>
  48525. which forms a triangulation. The class provides methods to access the
  48526. topological and geometric properties of the triangle and its neighbours in
  48527. the triangulation. Triangle vertices are ordered in CCW orientation in the
  48528. structure.
  48529. </summary>
  48530. <remarks>
  48531. QuadEdgeTriangles support having an external data attribute attached to them.
  48532. Alternatively, this class can be subclassed and attributes can
  48533. be defined in the subclass. Subclasses will need to define
  48534. their own <c>BuilderVisitor</c> class
  48535. and <c>CreateOn</c> method.
  48536. </remarks>
  48537. <author>Martin Davis</author>
  48538. <version>1.0</version>
  48539. </member>
  48540. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.CreateOn(NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision)">
  48541. <summary>
  48542. Creates <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle"/>s for all facets of a
  48543. <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> representing a triangulation.
  48544. The <tt>data</tt> attributes of the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>s in the subdivision
  48545. will be set to point to the triangle which contains that edge.
  48546. This allows tracing the neighbour triangles of any given triangle.
  48547. </summary>
  48548. <param name="subdiv">The QuadEdgeSubdivision to create the triangles on.</param>
  48549. <returns>A List of the created QuadEdgeTriangles</returns>
  48550. </member>
  48551. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Contains(NetTopologySuite.Triangulate.QuadEdge.Vertex[],NetTopologySuite.Geometries.Coordinate)">
  48552. <summary>
  48553. Tests whether the point pt is contained in the triangle defined by 3 <see cref="T:NetTopologySuite.Triangulate.QuadEdge.Vertex"/>es.
  48554. </summary>
  48555. <param name="tri">an array containing at least 3 Vertexes</param>
  48556. <param name="pt">the point to test</param>
  48557. <returns>true if the point is contained in the triangle</returns>
  48558. </member>
  48559. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Contains(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[],NetTopologySuite.Geometries.Coordinate)">
  48560. <summary>
  48561. Tests whether the point pt is contained in the triangle defined by 3 <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdge"/>es.
  48562. </summary>
  48563. <param name="tri">an array containing at least 3 QuadEdges</param>
  48564. <param name="pt">the point to test</param>
  48565. <returns>true if the point is contained in the triangle</returns>
  48566. </member>
  48567. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.#ctor(NetTopologySuite.Triangulate.QuadEdge.QuadEdge[])">
  48568. <summary>
  48569. Creates a new triangle from the given edges.
  48570. </summary>
  48571. <param name="edge">An array of the edges of the triangle in CCW order</param>
  48572. </member>
  48573. <member name="P:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.Data">
  48574. <summary>
  48575. Gets or sets the external data value for this triangle.
  48576. </summary>
  48577. </member>
  48578. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetVertices">
  48579. <summary>
  48580. Gets the vertices for this triangle.
  48581. </summary>
  48582. <returns>a new array containing the triangle vertices</returns>
  48583. </member>
  48584. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetEdgeIndex(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48585. <summary>
  48586. Gets the index for the given edge of this triangle
  48587. </summary>
  48588. <param name="e">a QuadEdge</param>
  48589. <returns>the index of the edge in this triangle,<br/>
  48590. or -1 if the edge is not an edge of this triangle
  48591. </returns>
  48592. </member>
  48593. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetEdgeIndex(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48594. <summary>
  48595. Gets the index for the edge that starts at vertex v.
  48596. </summary>
  48597. <param name="v">the vertex to find the edge for</param>
  48598. <returns>the index of the edge starting at the vertex, <br/>
  48599. or -1 if the vertex is not in the triangle
  48600. </returns>
  48601. </member>
  48602. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.ToString">
  48603. <inheritdoc cref="M:System.Object.ToString"/>
  48604. </member>
  48605. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.IsBorder">
  48606. <summary>
  48607. Tests whether this triangle is adjacent to the outside of the subdivision.
  48608. </summary>
  48609. <returns>true if the triangle is adjacent to the subdivision exterior</returns>
  48610. </member>
  48611. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetTrianglesAdjacentToVertex(System.Int32)">
  48612. <summary>
  48613. Gets the triangles which are adjacent (include) to a
  48614. given vertex of this triangle.
  48615. </summary>
  48616. <param name="vertexIndex">The vertex to query</param>
  48617. <returns>A list of the vertex-adjacent triangles</returns>
  48618. </member>
  48619. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeTriangle.GetNeighbours">
  48620. <summary>
  48621. Gets the neighbours of this triangle. If there is no neighbour triangle, the array element is
  48622. <c>null</c>
  48623. </summary>
  48624. <returns>an array containing the 3 neighbours of this triangle</returns>
  48625. </member>
  48626. <member name="M:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeUtil.FindEdgesIncidentOnOrigin(NetTopologySuite.Triangulate.QuadEdge.QuadEdge)">
  48627. <summary>
  48628. Gets all edges which are incident on the origin of the given edge.
  48629. </summary>
  48630. <param name="start">the edge to start at</param>
  48631. <returns>a List of edges which have their origin at the origin of the given
  48632. edge</returns>
  48633. </member>
  48634. <member name="T:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate">
  48635. <summary>
  48636. Algorithms for computing values and predicates
  48637. associated with triangles.
  48638. </summary>
  48639. <remarks>
  48640. For some algorithms extended-precision
  48641. implementations are provided, which are more robust
  48642. (i.e. they produce correct answers in more cases).
  48643. Also, some more robust formulations of
  48644. some algorithms are provided, which utilize
  48645. normalization to the origin.
  48646. </remarks>
  48647. <author>Martin Davis</author>
  48648. </member>
  48649. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleNonRobust(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48650. <summary>
  48651. Tests if a point is inside the circle defined by
  48652. the triangle with vertices a, b, c (oriented counter-clockwise).
  48653. This test uses simple
  48654. double-precision arithmetic, and thus is not 100% robust.
  48655. </summary>
  48656. <param name="a">A vertex of the triangle</param>
  48657. <param name="b">A vertex of the triangle</param>
  48658. <param name="c">A vertex of the triangle</param>
  48659. <param name="p">The point to test</param>
  48660. <returns>true if this point is inside the circle defined by the points a, b, c</returns>
  48661. </member>
  48662. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleNormalized(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48663. <summary>
  48664. Tests if a point is inside the circle defined by
  48665. the triangle with vertices a, b, c (oriented counter-clockwise).
  48666. </summary>
  48667. <remarks>
  48668. <para> This test uses simple
  48669. double-precision arithmetic, and thus is not 100% robust.
  48670. However, by using normalization to the origin
  48671. it provides improved robustness and increased performance.</para>
  48672. <para>Based on code by J.R.Shewchuk.</para>
  48673. </remarks>
  48674. <param name="a">A vertex of the triangle</param>
  48675. <param name="b">A vertex of the triangle</param>
  48676. <param name="c">A vertex of the triangle</param>
  48677. <param name="p">The point to test</param>
  48678. <returns>true if this point is inside the circle defined by the points a, b, c</returns>
  48679. </member>
  48680. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.TriArea(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48681. <summary>
  48682. Computes twice the area of the oriented triangle (a, b, c), i.e., the area is positive if the
  48683. triangle is oriented counterclockwise.
  48684. </summary>
  48685. <param name="a">A vertex of the triangle</param>
  48686. <param name="b">A vertex of the triangle</param>
  48687. <param name="c">A vertex of the triangle</param>
  48688. <returns>The area of the triangle defined by the points a, b, c</returns>
  48689. </member>
  48690. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleRobust(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48691. <summary>
  48692. Tests if a point is inside the circle defined by
  48693. the triangle with vertices a, b, c (oriented counter-clockwise).
  48694. </summary>
  48695. <remarks>
  48696. This method uses more robust computation.
  48697. </remarks>
  48698. <param name="a">A vertex of the triangle</param>
  48699. <param name="b">A vertex of the triangle</param>
  48700. <param name="c">A vertex of the triangle</param>
  48701. <param name="p">The point to test</param>
  48702. <returns>true if this point is inside the circle defined by the points a, b, c</returns>
  48703. </member>
  48704. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleDDFast(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48705. <summary>
  48706. Tests if a point is inside the circle defined by
  48707. the triangle with vertices a, b, c (oriented counter-clockwise).
  48708. </summary>
  48709. <remarks>
  48710. The computation uses <see cref="T:NetTopologySuite.Mathematics.DD"/> arithmetic for robustness, but a faster approach.
  48711. </remarks>
  48712. <param name="a">A vertex of the triangle</param>
  48713. <param name="b">A vertex of the triangle</param>
  48714. <param name="c">A vertex of the triangle</param>
  48715. <param name="p">The point to test</param>
  48716. <returns>true if this point is inside the circle defined by the points a, b, c</returns>
  48717. </member>
  48718. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.TriAreaDDFast(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48719. <summary>
  48720. Computes twice the area of the oriented triangle (a, b, c), i.e., the area
  48721. is positive if the triangle is oriented counterclockwise.
  48722. </summary>
  48723. <remarks>
  48724. The computation uses {@link DD} arithmetic for robustness.
  48725. </remarks>
  48726. <param name="a">a vertex of the triangle</param>
  48727. <param name="b">a vertex of the triangle</param>
  48728. <param name="c">a vertex of the triangle</param>
  48729. <returns>The area of a triangle defined by the points a, b and c</returns>
  48730. </member>
  48731. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleDDNormalized(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48732. <summary>
  48733. </summary>
  48734. <param name="a"></param>
  48735. <param name="b"></param>
  48736. <param name="c"></param>
  48737. <param name="p"></param>
  48738. <returns></returns>
  48739. </member>
  48740. <member name="M:NetTopologySuite.Triangulate.QuadEdge.TrianglePredicate.IsInCircleCC(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48741. <summary>
  48742. Computes the inCircle test using distance from the circumcentre.
  48743. Uses standard double-precision arithmetic.
  48744. </summary>
  48745. <remarks>
  48746. In general this doesn't
  48747. appear to be any more robust than the standard calculation. However, there
  48748. is at least one case where the test point is far enough from the
  48749. circumcircle that this test gives the correct answer.
  48750. <pre>
  48751. LINESTRING (1507029.9878 518325.7547, 1507022.1120341457 518332.8225183258,
  48752. 1507029.9833 518325.7458, 1507029.9896965567 518325.744909031)
  48753. </pre>
  48754. </remarks>
  48755. <param name="a">A vertex of the triangle</param>
  48756. <param name="b">A vertex of the triangle</param>
  48757. <param name="c">A vertex of the triangle</param>
  48758. <param name="p">The point to test</param>
  48759. <returns>The area of a triangle defined by the points a, b and c</returns>
  48760. </member>
  48761. <member name="T:NetTopologySuite.Triangulate.QuadEdge.Vertex">
  48762. <summary>
  48763. Models a site (node) in a <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/>.
  48764. The sites can be points on a line string representing a
  48765. linear site.<para/>
  48766. The vertex can be considered as a vector with a norm, length, inner product, cross
  48767. product, etc. Additionally, point relations (e.g., is a point to the left of a line, the circle
  48768. defined by this point and two others, etc.) are also defined in this class.
  48769. <para/>
  48770. It is common to want to attach user-defined data to
  48771. the vertices of a subdivision.
  48772. One way to do this is to subclass <tt>Vertex</tt>
  48773. to carry any desired information.
  48774. </summary>
  48775. <author>David Skea</author>
  48776. <author>Martin Davis</author>
  48777. </member>
  48778. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(System.Double,System.Double)">
  48779. <summary>
  48780. Creates an instance of this class using the given x- and y-ordinate valuse
  48781. </summary>
  48782. <param name="x">x-ordinate value</param>
  48783. <param name="y">y-ordinate value</param>
  48784. </member>
  48785. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(System.Double,System.Double,System.Double)">
  48786. <summary>
  48787. Creates an instance of this class using the given x-, y- and z-ordinate values
  48788. </summary>
  48789. <param name="x">x-ordinate value</param>
  48790. <param name="y">y-ordinate value</param>
  48791. <param name="z">z-ordinate value</param>
  48792. </member>
  48793. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.#ctor(NetTopologySuite.Geometries.Coordinate)">
  48794. <summary>
  48795. Creates an instance of this class using a clone of the given <see cref="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Coordinate"/>.
  48796. </summary>
  48797. <param name="p">The coordinate</param>
  48798. </member>
  48799. <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.X">
  48800. <summary>
  48801. Gets the x-ordinate value
  48802. </summary>
  48803. </member>
  48804. <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Y">
  48805. <summary>
  48806. Gets the y-ordinate value
  48807. </summary>
  48808. </member>
  48809. <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Z">
  48810. <summary>
  48811. Gets the z-ordinate value
  48812. </summary>
  48813. </member>
  48814. <member name="P:NetTopologySuite.Triangulate.QuadEdge.Vertex.Coordinate">
  48815. <summary>
  48816. Gets the coordinate
  48817. </summary>
  48818. </member>
  48819. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.ToString">
  48820. <inheritdoc cref="M:System.Object.ToString"/>
  48821. </member>
  48822. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Equals(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48823. <inheritdoc cref="M:System.IEquatable`1.Equals(`0)"/>
  48824. </member>
  48825. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CrossProduct(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48826. <summary>
  48827. Computes the cross product k = u X v.
  48828. </summary>
  48829. <param name="v">a vertex</param>
  48830. <returns>returns the magnitude of u X v</returns>
  48831. </member>
  48832. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Dot(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48833. <summary>
  48834. Computes the inner or dot product
  48835. </summary>
  48836. <param name="v">A vertex</param>
  48837. <returns>The dot product u.v</returns>
  48838. </member>
  48839. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.Times(System.Double)">
  48840. <summary>
  48841. Computes the scalar product c(v)
  48842. </summary>
  48843. <param name="c">A vertex</param>
  48844. <returns>The scaled vector</returns>
  48845. </member>
  48846. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.IsInCircle(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48847. <summary>
  48848. Tests if this is inside the circle defined by the points a, b, c. This test uses simple
  48849. double-precision arithmetic, and thus may not be robust.
  48850. </summary>
  48851. <param name="a">A vertex of the triangle</param>
  48852. <param name="b">A vertex of the triangle</param>
  48853. <param name="c">A vertex of the triangle</param>
  48854. <returns>true if this vertex is inside the circumcircle (a, b, c)</returns>
  48855. </member>
  48856. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.IsCcw(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48857. <summary>
  48858. Tests whether the triangle formed by this vertex and two
  48859. other vertices is in CCW orientation.
  48860. </summary>
  48861. <param name="b">a vertex</param>
  48862. <param name="c">a vertex</param>
  48863. <returns>true if the triangle is oriented CCW</returns>
  48864. </member>
  48865. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CircumRadiusRatio(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48866. <summary>
  48867. Computes the value of the ratio of the circumradius to shortest edge. If smaller than some
  48868. given tolerance B, the associated triangle is considered skinny. For an equal lateral
  48869. triangle this value is 0.57735. The ratio is related to the minimum triangle angle theta by:
  48870. circumRadius/shortestEdge = 1/(2sin(theta)).
  48871. </summary>
  48872. <param name="b">second vertex of the triangle</param>
  48873. <param name="c">third vertex of the triangle</param>
  48874. <returns>ratio of circumradius to shortest edge.</returns>
  48875. </member>
  48876. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.MidPoint(NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48877. <summary>
  48878. returns a new vertex that is mid-way between this vertex and another end point.
  48879. </summary>
  48880. <param name="a">the other end point.</param>
  48881. <returns>the point mid-way between this and that.</returns>
  48882. </member>
  48883. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.CircleCenter(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48884. <summary>
  48885. Computes the centre of the circumcircle of this vertex and two others.
  48886. </summary>
  48887. <param name="b" />
  48888. <param name="c" />
  48889. <returns>the Coordinate which is the circumcircle of the 3 points.</returns>
  48890. </member>
  48891. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZValue(NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex,NetTopologySuite.Triangulate.QuadEdge.Vertex)">
  48892. <summary>
  48893. For this vertex enclosed in a triangle defined by three vertices v0, v1 and v2, interpolate
  48894. a z value from the surrounding vertices.
  48895. </summary>
  48896. </member>
  48897. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48898. <summary>
  48899. Interpolates the Z-value (height) of a point enclosed in a triangle
  48900. whose vertices all have Z values.
  48901. The containing triangle must not be degenerate
  48902. (in other words, the three vertices must enclose a
  48903. non-zero area).
  48904. </summary>
  48905. <param name="p">The point to interpolate the Z value of</param>
  48906. <param name="v0">A vertex of a triangle containing the <paramref name="p"/></param>
  48907. <param name="v1">A vertex of a triangle containing the <paramref name="p"/></param>
  48908. <param name="v2">A vertex of a triangle containing the <paramref name="p"/></param>
  48909. <returns>The interpolated Z-value (height) of the point</returns>
  48910. </member>
  48911. <member name="M:NetTopologySuite.Triangulate.QuadEdge.Vertex.InterpolateZ(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48912. <summary>
  48913. Computes the interpolated Z-value for a point p lying on the segment p0-p1
  48914. </summary>
  48915. <param name="p">The point to interpolate the Z value of</param>
  48916. <param name="p0">A vertex of the segment <paramref name="p"/> is lying on</param>
  48917. <param name="p1">A vertex of the segment <paramref name="p"/> is lying on</param>
  48918. <returns>The interpolated Z-value (height) of the point</returns>
  48919. </member>
  48920. <member name="T:NetTopologySuite.Triangulate.Segment">
  48921. <summary>
  48922. Models a constraint segment in a triangulation.
  48923. A constraint segment is an oriented straight line segment between a start point
  48924. and an end point.
  48925. </summary>
  48926. <author>David Skea</author>
  48927. <author>Martin Davis</author>
  48928. </member>
  48929. <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
  48930. <summary>
  48931. Creates a new instance for the given ordinates.
  48932. </summary>
  48933. </member>
  48934. <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Object)">
  48935. <summary>
  48936. Creates a new instance for the given ordinates, with associated external data.
  48937. </summary>
  48938. </member>
  48939. <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,System.Object)">
  48940. <summary>
  48941. Creates a new instance for the given points, with associated external data.
  48942. </summary>
  48943. <param name="p0">the start point</param>
  48944. <param name="p1">the end point</param>
  48945. <param name="data">an external data object</param>
  48946. </member>
  48947. <member name="M:NetTopologySuite.Triangulate.Segment.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  48948. <summary>
  48949. Creates a new instance for the given points.
  48950. </summary>
  48951. <param name="p0">the start point</param>
  48952. <param name="p1">the end point</param>
  48953. </member>
  48954. <member name="P:NetTopologySuite.Triangulate.Segment.Start">
  48955. <summary>
  48956. Gets the start coordinate of the segment
  48957. </summary>
  48958. <remarks>a Coordinate</remarks>
  48959. </member>
  48960. <member name="P:NetTopologySuite.Triangulate.Segment.End">
  48961. <summary>
  48962. Gets the end coordinate of the segment
  48963. </summary>
  48964. <remarks>a Coordinate</remarks>
  48965. </member>
  48966. <member name="P:NetTopologySuite.Triangulate.Segment.StartX">
  48967. <summary>
  48968. Gets the start X ordinate of the segment
  48969. </summary>
  48970. <remarks>the X ordinate value</remarks>
  48971. </member>
  48972. <member name="P:NetTopologySuite.Triangulate.Segment.StartY">
  48973. <summary>
  48974. Gets the start Y ordinate of the segment
  48975. </summary>
  48976. <remarks>the Y ordinate value</remarks>
  48977. </member>
  48978. <member name="P:NetTopologySuite.Triangulate.Segment.StartZ">
  48979. <summary>
  48980. Gets the start Z ordinate of the segment
  48981. </summary>
  48982. <remarks>the Z ordinate value</remarks>
  48983. </member>
  48984. <member name="P:NetTopologySuite.Triangulate.Segment.EndX">
  48985. <summary>
  48986. Gets the end X ordinate of the segment
  48987. </summary>
  48988. <remarks>the X ordinate value</remarks>
  48989. </member>
  48990. <member name="P:NetTopologySuite.Triangulate.Segment.EndY">
  48991. <summary>
  48992. Gets the end Y ordinate of the segment
  48993. </summary>
  48994. <remarks>he Y ordinate value</remarks>
  48995. </member>
  48996. <member name="P:NetTopologySuite.Triangulate.Segment.EndZ">
  48997. <summary>
  48998. Gets the end Z ordinate of the segment
  48999. </summary>
  49000. <remarks>the Z ordinate value</remarks>
  49001. </member>
  49002. <member name="P:NetTopologySuite.Triangulate.Segment.LineSegment">
  49003. <summary>
  49004. Gets a <tt>LineSegment</tt> modelling this segment.
  49005. </summary>
  49006. <remarks>a LineSegment</remarks>
  49007. </member>
  49008. <member name="P:NetTopologySuite.Triangulate.Segment.Data">
  49009. <summary>
  49010. Gets or sets the external data associated with this segment
  49011. </summary>
  49012. <remarks>a data object</remarks>
  49013. </member>
  49014. <member name="M:NetTopologySuite.Triangulate.Segment.EqualsTopologically(NetTopologySuite.Triangulate.Segment)">
  49015. <summary>
  49016. Determines whether two segments are topologically equal.
  49017. I.e. equal up to orientation.
  49018. </summary>
  49019. <param name="s">a segment</param>
  49020. <returns>true if the segments are topologically equal</returns>
  49021. </member>
  49022. <member name="M:NetTopologySuite.Triangulate.Segment.Intersection(NetTopologySuite.Triangulate.Segment)">
  49023. <summary>
  49024. Computes the intersection point between this segment and another one.
  49025. </summary>
  49026. <param name="s">a segment</param>
  49027. <returns>the intersection point, or <c>null</c> if there is none</returns>
  49028. </member>
  49029. <member name="M:NetTopologySuite.Triangulate.Segment.ToString">
  49030. <summary>
  49031. Computes a string representation of this segment.
  49032. </summary>
  49033. <returns>a string</returns>
  49034. </member>
  49035. <member name="T:NetTopologySuite.Triangulate.SplitSegment">
  49036. <summary>
  49037. Models a constraint segment which can be split in two in various ways,
  49038. according to certain geometric constraints.
  49039. </summary>
  49040. <author>Martin Davis</author>
  49041. </member>
  49042. <member name="M:NetTopologySuite.Triangulate.SplitSegment.PointAlongReverse(NetTopologySuite.Geometries.LineSegment,System.Double)">
  49043. <summary>
  49044. Computes the {@link Coordinate} that lies a given fraction along the line defined by the
  49045. reverse of the given segment. A fraction of <c>0.0</c> returns the end point of the
  49046. segment; a fraction of <c>1.0</c> returns the start point of the segment.
  49047. </summary>
  49048. <param name="seg">the LineSegment</param>
  49049. <param name="segmentLengthFraction">the fraction of the segment length along the line</param>
  49050. <returns>the point at that distance</returns>
  49051. </member>
  49052. <member name="M:NetTopologySuite.Triangulate.SplitSegment.#ctor(NetTopologySuite.Geometries.LineSegment)">
  49053. <summary>
  49054. Creates an instance of this class using the provided <c>LineSegment</c>
  49055. </summary>
  49056. <param name="seg">A <c>LineSegment</c></param>
  49057. </member>
  49058. <member name="P:NetTopologySuite.Triangulate.SplitSegment.MinimumLength">
  49059. <summary>
  49060. Gets or sets a value indicating the minimum length of a segment
  49061. </summary>
  49062. </member>
  49063. <member name="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint">
  49064. <summary>
  49065. Gets a value indicating the computed split point
  49066. </summary>
  49067. </member>
  49068. <member name="M:NetTopologySuite.Triangulate.SplitSegment.SplitAt(System.Double,NetTopologySuite.Geometries.Coordinate)">
  49069. <summary>
  49070. Computes the <see cref="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint"/> using the provided <paramref name="length"/> and <paramref name="endPt"/>.
  49071. </summary>
  49072. <param name="length">The length to split at</param>
  49073. <param name="endPt">The <c>Coordinate</c> to split at</param>
  49074. </member>
  49075. <member name="M:NetTopologySuite.Triangulate.SplitSegment.SplitAt(NetTopologySuite.Geometries.Coordinate)">
  49076. <summary>
  49077. Computes the <see cref="P:NetTopologySuite.Triangulate.SplitSegment.SplitPoint"/> close to the given <c>Coordinate</c>,
  49078. ensuring that <see cref="P:NetTopologySuite.Triangulate.SplitSegment.MinimumLength"/> is not violated.
  49079. </summary>
  49080. <param name="pt">The <c>Coordinate</c> to split at</param>
  49081. </member>
  49082. <member name="T:NetTopologySuite.Triangulate.Tri.Tri">
  49083. <summary>
  49084. A memory-efficient representation of a triangle in a triangulation.
  49085. Contains three vertices, and links to adjacent <c>Tri</c>s for each edge.
  49086. <c>Tri</c>s are constructed independently, and if needed linked
  49087. into a triangulation using <see cref="T:NetTopologySuite.Triangulate.Tri.TriangulationBuilder"/>.
  49088. <para/>
  49089. An edge of a Tri in a triangulation is called a boundary edge
  49090. if it has no adjacent triangle.<br/>
  49091. The set of Tris containing boundary edges are called the triangulation border.
  49092. </summary>
  49093. <author>Martin Davis</author>
  49094. </member>
  49095. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToGeometry(System.Collections.Generic.ICollection{NetTopologySuite.Triangulate.Tri.Tri},NetTopologySuite.Geometries.GeometryFactory)">
  49096. <summary>
  49097. Creates a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s
  49098. representing the triangles in a list.
  49099. </summary>
  49100. <param name="tris">A collection of <c>Tri</c>s</param>
  49101. <param name="geomFact">The GeometryFactory to use</param>
  49102. <returns>The <c>Polygon</c>s for the triangles</returns>
  49103. </member>
  49104. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.AreaOf(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
  49105. <summary>
  49106. Computes the area of a set of Tris.
  49107. </summary>
  49108. <param name="triList">A set of tris</param>
  49109. <returns>The total area of the triangles</returns>
  49110. </member>
  49111. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Validate(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
  49112. <summary>
  49113. Validates a list of <c>Tri</c>s.
  49114. </summary>
  49115. <param name="triList">The list of <c>Tri</c>s to validate</param>
  49116. </member>
  49117. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Create(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  49118. <summary>
  49119. Creates a triangle with the given vertices.
  49120. The vertices should be oriented clockwise.
  49121. </summary>
  49122. <param name="p0">The first triangle vertex</param>
  49123. <param name="p1">The second triangle vertex</param>
  49124. <param name="p2">The third triangle vertex</param>
  49125. <returns>The created trianlge</returns>
  49126. </member>
  49127. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Create(NetTopologySuite.Geometries.Coordinate[])">
  49128. <summary>
  49129. Creates a triangle from an array with three vertex coordinates.
  49130. The vertices should be oriented clockwise.
  49131. </summary>
  49132. <param name="pts">The array of vertex coordinates</param>
  49133. <returns>The created triangle</returns>
  49134. </member>
  49135. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P0">
  49136. <summary>
  49137. Gets a value indicating the 1st point of this <c>Tri</c>.
  49138. </summary>
  49139. </member>
  49140. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P1">
  49141. <summary>
  49142. Gets a value indicating the 2nd point of this <c>Tri</c>.
  49143. </summary>
  49144. </member>
  49145. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.P2">
  49146. <summary>
  49147. Gets a value indicating the 3rd point of this <c>Tri</c>.
  49148. </summary>
  49149. </member>
  49150. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri0">
  49151. <summary>
  49152. Gets a value indicating the adjacent <c>Tri</c> across the edge <see cref="P:NetTopologySuite.Triangulate.Tri.Tri.P0"/> clockwise towards the next point.
  49153. </summary>
  49154. </member>
  49155. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri1">
  49156. <summary>
  49157. Gets a value indicating the adjacent <c>Tri</c> across the edge <see cref="P:NetTopologySuite.Triangulate.Tri.Tri.P1"/> clockwise towards the next point.
  49158. </summary>
  49159. </member>
  49160. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Tri2">
  49161. <summary>
  49162. Gets a value indicating the adjacent <c>Tri</c> across the edge <see cref="P:NetTopologySuite.Triangulate.Tri.Tri.P2"/> clockwise towards the next point.
  49163. </summary>
  49164. </member>
  49165. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  49166. <summary>
  49167. Creates a triangle with the given vertices.
  49168. The vertices should be oriented clockwise.
  49169. </summary>
  49170. <param name="p0">The first triangle vertex</param>
  49171. <param name="p1">The second triangle vertex</param>
  49172. <param name="p2">The third triangle vertex</param>
  49173. </member>
  49174. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetAdjacent(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri)">
  49175. <summary>
  49176. Sets the adjacent triangles.<br/>
  49177. The vertices of the adjacent triangles are
  49178. assumed to match the appropriate vertices in this triangle.
  49179. </summary>
  49180. <param name="tri0">The triangle adjacent to edge 0</param>
  49181. <param name="tri1">The triangle adjacent to edge 1</param>
  49182. <param name="tri2">The triangle adjacent to edge 2</param>
  49183. </member>
  49184. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetAdjacent(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Triangulate.Tri.Tri)">
  49185. <summary>
  49186. Sets the triangle adjacent to the edge originating
  49187. at a given vertex.<br/>
  49188. The vertices of the adjacent triangles are
  49189. assumed to match the appropriate vertices in this triangle.
  49190. </summary>
  49191. <param name="pt">The edge start point</param>
  49192. <param name="tri">The adjacent triangle</param>
  49193. </member>
  49194. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.SetTri(System.Int32,NetTopologySuite.Triangulate.Tri.Tri)">
  49195. <summary>
  49196. Sets the triangle adjacent to an edge.<br/>
  49197. The vertices of the adjacent triangle are
  49198. assumed to match the appropriate vertices in this triangle.
  49199. </summary>
  49200. <param name="edgeIndex">The edge triangle is adjacent to</param>
  49201. <param name="tri">The adjacent triangle</param>
  49202. </member>
  49203. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Split(NetTopologySuite.Geometries.Coordinate)">
  49204. <summary>
  49205. Splits a triangle by a point located inside the triangle.
  49206. Creates the three new resulting triangles with adjacent links
  49207. set correctly.
  49208. Returns the new triangle whose 0'th vertex is the splitting point.
  49209. </summary>
  49210. <param name="p">The point to insert</param>
  49211. <returns>The new triangle whose 0'th vertex is <paramref name="p"/></returns>
  49212. </member>
  49213. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Flip(System.Int32)">
  49214. <summary>
  49215. Interchanges the vertices of this triangle and a neighbor
  49216. so that their common edge
  49217. becomes the the other diagonal of the quadrilateral they form.
  49218. Neighbour triangle links are modified accordingly.
  49219. </summary>
  49220. <param name="index">The index of the adjacent tri to flip with</param>
  49221. </member>
  49222. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Replace(NetTopologySuite.Triangulate.Tri.Tri,NetTopologySuite.Triangulate.Tri.Tri)">
  49223. <summary>
  49224. Replaces an adjacent triangle with a different one.
  49225. </summary>
  49226. <param name="triOld">An adjacent triangle</param>
  49227. <param name="triNew">The triangle to replace with</param>
  49228. </member>
  49229. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Degree(System.Int32,System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  49230. <summary>
  49231. Computes the degree of a Tri vertex, which is the number of tris containing it.
  49232. This must be done by searching the entire triangulation,
  49233. since the containing tris may not be adjacent or edge-connected.
  49234. </summary>
  49235. <param name="index">The vertex index</param>
  49236. <param name="triList">The triangulation</param>
  49237. <returns>The degree of the vertex</returns>
  49238. </member>
  49239. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Remove(System.Collections.Generic.IList{NetTopologySuite.Triangulate.Tri.Tri})">
  49240. <summary>
  49241. Removes this tri from the triangulation containing it.
  49242. All links between the tri and adjacent ones are nulled.
  49243. </summary>
  49244. <param name="triList">The triangulation</param>
  49245. </member>
  49246. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Remove">
  49247. <summary>
  49248. Removes this triangle from a triangulation.
  49249. All adjacent references and the references to this
  49250. Tri in the adjacent Tris are set to <c>null</c>.
  49251. </summary>
  49252. </member>
  49253. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetAdjacentTris(NetTopologySuite.Triangulate.Tri.Tri,System.Int32,System.Int32)">
  49254. <summary>
  49255. Gets the triangles adjacent to the quadrilateral
  49256. formed by this triangle and an adjacent one.
  49257. The triangles are returned in the following order:
  49258. <para/>
  49259. Order:
  49260. <list type="number">
  49261. <item><description>opp0-adj0 edge</description></item>
  49262. <item><description>opp0-adj1 edge</description></item>
  49263. <item><description>opp1-adj0 edge</description></item>
  49264. <item><description>opp1-adj1 edge</description></item>
  49265. </list>
  49266. </summary>
  49267. <param name="triAdj">An adjacent triangle</param>
  49268. <param name="index">The index of the common edge in this triangle</param>
  49269. <param name="indexAdj">The index of the common edge in the adjacent triangle</param>
  49270. <returns></returns>
  49271. </member>
  49272. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Validate">
  49273. <summary>
  49274. Validates that a <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/> is correct.
  49275. Currently just checks that orientation is CW.
  49276. </summary>
  49277. <exception cref="T:System.ArgumentException">Thrown if <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/> is not valid</exception>
  49278. </member>
  49279. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ValidateAdjacent(System.Int32)">
  49280. <summary>
  49281. Validates that the vertices of an adjacent linked triangle are correct.
  49282. </summary>
  49283. <param name="index">The index of the adjacent triangle</param>
  49284. </member>
  49285. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetCoordinate(System.Int32)">
  49286. <summary>
  49287. Gets the coordinate for a vertex.
  49288. This is the start vertex of the edge.
  49289. </summary>
  49290. <param name="index">The vertex (edge) index</param>
  49291. <returns>The vertex coordinate</returns>
  49292. </member>
  49293. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Geometries.Coordinate)">
  49294. <summary>
  49295. Gets the index of the triangle vertex which has a given coordinate (if any).
  49296. This is also the index of the edge which originates at the vertex.
  49297. </summary>
  49298. <param name="p">The coordinate to find</param>
  49299. <returns>The vertex index, or -1 if it is not in the triangle</returns>
  49300. </member>
  49301. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Triangulate.Tri.Tri)">
  49302. <summary>
  49303. Gets the edge index which a triangle is adjacent to (if any),
  49304. based on the adjacent triangle link.
  49305. </summary>
  49306. <param name="tri">The <c>Tri</c> to find</param>
  49307. <returns>The index of the edge adjacent to the triangle, or -1 if not found</returns>
  49308. </member>
  49309. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetAdjacent(System.Int32)">
  49310. <summary>
  49311. Gets the triangle adjacent to an edge.
  49312. </summary>
  49313. <param name="index">The edge index</param>
  49314. <returns>The adjacent triangle (may be <c>null</c>)</returns>
  49315. </member>
  49316. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.HasAdjacent">
  49317. <summary>
  49318. Tests if this tri has any adjacent tris.
  49319. </summary>
  49320. <returns><c>true</c> if there is at least one adjacent tri</returns>
  49321. </member>
  49322. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.HasAdjacent(System.Int32)">
  49323. <summary>
  49324. Tests if there is an adjacent triangle to an edge.
  49325. </summary>
  49326. <param name="index">The edge index</param>
  49327. <returns><c>true</c> if there is a triangle adjacent to edge</returns>
  49328. </member>
  49329. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsAdjacent(NetTopologySuite.Triangulate.Tri.Tri)">
  49330. <summary>
  49331. Tests if a triangle is adjacent to some edge of this triangle.
  49332. </summary>
  49333. <param name="tri">The triangle to test</param>
  49334. <returns><c>true</c> if the triangle is adjacent</returns>
  49335. <see cref="M:NetTopologySuite.Triangulate.Tri.Tri.GetIndex(NetTopologySuite.Triangulate.Tri.Tri)"/>
  49336. </member>
  49337. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.NumAdjacent">
  49338. <summary>
  49339. Computes the number of triangle adjacent to this triangle.
  49340. This is a number in the range [0,2].</summary>
  49341. <returns>The number of adjacent triangles</returns>
  49342. </member>
  49343. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsInteriorVertex(System.Int32)">
  49344. <summary>
  49345. Tests if a tri vertex is interior.
  49346. A vertex of a triangle is interior if it
  49347. is fully surrounded by other triangles.
  49348. </summary>
  49349. <param name="index">The vertex index</param>
  49350. <returns><c>true</c> if the vertex is interior</returns>
  49351. </member>
  49352. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsBorder">
  49353. <summary>
  49354. Tests if a tri contains a boundary edge,
  49355. and thus on the border of the triangulation containing it.
  49356. </summary>
  49357. <returns><c>true</c> if the tri is on the border of the triangulation</returns>
  49358. </member>
  49359. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.IsBoundary(System.Int32)">
  49360. <summary>
  49361. Tests if an edge is on the boundary of a triangulation.
  49362. </summary>
  49363. <param name="index">The index of an edge</param>
  49364. <returns><c>true</c> if the edge is on the boundary</returns>
  49365. </member>
  49366. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Next(System.Int32)">
  49367. <summary>
  49368. Computes the vertex or edge index which is the next one
  49369. (counter-clockwise) around the triangle.
  49370. </summary>
  49371. <param name="index">The index</param>
  49372. <returns>The next index value</returns>
  49373. </member>
  49374. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.Prev(System.Int32)">
  49375. <summary>
  49376. Computes the vertex or edge index which is the previous one
  49377. (counter-clockwise) around the triangle.
  49378. </summary>
  49379. <param name="index">The index</param>
  49380. <returns>The previous index value</returns>
  49381. </member>
  49382. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.OppVertex(System.Int32)">
  49383. <summary>
  49384. Gets the index of the vertex opposite an edge.
  49385. </summary>
  49386. <param name="edgeIndex">The edge index</param>
  49387. <returns>The index of the opposite vertex</returns>
  49388. </member>
  49389. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.OppEdge(System.Int32)">
  49390. <summary>
  49391. Gets the index of the edge opposite a vertex.
  49392. </summary>
  49393. <param name="vertexIndex">The index of the vertex</param>
  49394. <returns>The index of the opposite edge</returns>
  49395. </member>
  49396. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.MidPoint(System.Int32)">
  49397. <summary>
  49398. Computes a coordinate for the midpoint of a triangle edge.
  49399. </summary>
  49400. <param name="edgeIndex">The edge index</param>
  49401. <returns>the midpoint of the triangle edge</returns>
  49402. </member>
  49403. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Area">
  49404. <summary>Gets the area of the triangle.</summary>
  49405. <returns>The area of the triangle</returns>
  49406. </member>
  49407. <member name="P:NetTopologySuite.Triangulate.Tri.Tri.Length">
  49408. <summary>
  49409. Gets the perimeter length of the perimeter of the triangle.
  49410. </summary>
  49411. </member>
  49412. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.GetLength(System.Int32)">
  49413. <summary>
  49414. Gets the length of an edge of the triangle.
  49415. </summary>
  49416. <param name="edgeIndex">The edge index</param>
  49417. <returns>The edge length</returns>
  49418. </member>
  49419. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToPolygon(NetTopologySuite.Geometries.GeometryFactory)">
  49420. <summary>
  49421. Creates a <see cref="N:NetTopologySuite.Triangulate.Polygon"/> representing this triangle.
  49422. </summary>
  49423. <param name="geomFact">The geometry factory</param>
  49424. <returns>A polygon</returns>
  49425. </member>
  49426. <member name="M:NetTopologySuite.Triangulate.Tri.Tri.ToString">
  49427. <inheritdoc cref="M:System.Object.ToString"/>
  49428. </member>
  49429. <member name="T:NetTopologySuite.Triangulate.Tri.TriangulationBuilder">
  49430. <summary>
  49431. Builds a triangulation from a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s
  49432. by populating the links to adjacent triangles.
  49433. </summary>
  49434. <author>Martin Davis</author>
  49435. </member>
  49436. <member name="M:NetTopologySuite.Triangulate.Tri.TriangulationBuilder.Build(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
  49437. <summary>
  49438. Computes the triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
  49439. </summary>
  49440. <param name="triList">An enumeration of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s</param>
  49441. </member>
  49442. <member name="M:NetTopologySuite.Triangulate.Tri.TriangulationBuilder.#ctor(System.Collections.Generic.IEnumerable{NetTopologySuite.Triangulate.Tri.Tri})">
  49443. <summary>
  49444. Creates an instance of this class and computes the triangulation of a set of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s.
  49445. </summary>
  49446. <param name="triList">An enumeration of <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>s</param>
  49447. </member>
  49448. <member name="T:NetTopologySuite.Triangulate.Tri.TriEdge">
  49449. <summary>
  49450. Represents an edge in a <see cref="T:NetTopologySuite.Triangulate.Tri.Tri"/>,
  49451. to be used as a key for looking up Tris
  49452. while building a triangulation.
  49453. The edge value is normalized to allow lookup
  49454. of adjacent triangles.
  49455. </summary>
  49456. <author>Martin Davis</author>
  49457. </member>
  49458. <member name="P:NetTopologySuite.Triangulate.Tri.TriEdge.P0">
  49459. <summary>
  49460. Gets or sets a value indicating the start point of this <see cref="T:NetTopologySuite.Triangulate.Tri.TriEdge"/>
  49461. </summary>
  49462. </member>
  49463. <member name="P:NetTopologySuite.Triangulate.Tri.TriEdge.P1">
  49464. <summary>
  49465. Gets or sets a value indicating the end point of this <see cref="T:NetTopologySuite.Triangulate.Tri.TriEdge"/>
  49466. </summary>
  49467. </member>
  49468. <member name="M:NetTopologySuite.Triangulate.Tri.TriEdge.#ctor(NetTopologySuite.Geometries.Coordinate,NetTopologySuite.Geometries.Coordinate)">
  49469. <summary>
  49470. Creates an instance of this class
  49471. </summary>
  49472. <param name="a">A coordinate</param>
  49473. <param name="b">A coordinate</param>
  49474. </member>
  49475. <member name="T:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper">
  49476. <summary>
  49477. Creates a map between the vertex <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s of a
  49478. set of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s,
  49479. and the parent geometry, and transfers the source geometry
  49480. data objects to geometry components tagged with the coordinates.
  49481. </summary>
  49482. <remarks>
  49483. This class can be used in conjunction with <see cref="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder"/>
  49484. to transfer data objects from the input site geometries
  49485. to the constructed Voronoi polygons.
  49486. </remarks>
  49487. <author>Martin Davis</author>
  49488. <see cref="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder"/>
  49489. </member>
  49490. <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(NetTopologySuite.Geometries.Geometry)">
  49491. <summary>
  49492. Loads the vertices of a geometry and maps them with th the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
  49493. </summary>
  49494. <param name="geoms">A geometry</param>
  49495. </member>
  49496. <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Geometry})">
  49497. <summary>
  49498. Loads the vertices of a collection of geometries and maps them with the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
  49499. </summary>
  49500. <param name="geoms">A collection of geometry</param>
  49501. </member>
  49502. <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.LoadSourceGeometries(NetTopologySuite.Geometries.GeometryCollection)">
  49503. <summary>
  49504. Loads the vertices of the geometries of a <c>GeometryCollection</c> and maps them with the <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/>.
  49505. </summary>
  49506. <param name="geomColl">A <c>GeometryCollection</c></param>
  49507. </member>
  49508. <member name="P:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.Coordinates">
  49509. <summary>
  49510. Gets a value indicating the coordinates.
  49511. </summary>
  49512. <returns>A list of <c>Coordinate</c>s.</returns>
  49513. </member>
  49514. <member name="M:NetTopologySuite.Triangulate.VertexTaggedGeometryDataMapper.TransferData(NetTopologySuite.Geometries.Geometry)">
  49515. <summary>
  49516. Input is assumed to be a multiGeometry
  49517. in which every component has its userData
  49518. set to be a Coordinate which is the key to the output data.
  49519. The Coordinate is used to determine
  49520. the output data object to be written back into the component.
  49521. </summary>
  49522. <param name="targetGeom" />
  49523. </member>
  49524. <member name="T:NetTopologySuite.Triangulate.VoronoiDiagramBuilder">
  49525. <summary>
  49526. A utility class which creates Voronoi Diagrams
  49527. from collections of points.
  49528. The diagram is returned as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s,
  49529. representing the faces of the Voronoi diagram.
  49530. /// The faces are clipped to the larger of:
  49531. <list type="bullet">
  49532. <item>
  49533. <description>an envelope supplied by <see cref="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.set_ClipEnvelope(NetTopologySuite.Geometries.Envelope)"/>.</description>
  49534. </item>
  49535. <item>
  49536. <description>an envelope determined by the input sites.</description>
  49537. </item>
  49538. </list>
  49539. The <tt>userData</tt> attribute of each face <tt>Polygon</tt> is set to
  49540. the <tt>Coordinate</tt> of the corresponding input site.
  49541. This allows using a <tt>Map</tt> to link faces to data associated with sites.
  49542. </summary>
  49543. <author>Martin Davis</author>
  49544. </member>
  49545. <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.SetSites(NetTopologySuite.Geometries.Geometry)">
  49546. <summary>
  49547. Sets the sites (point or vertices) which will be diagrammed.
  49548. All vertices of the given geometry will be used as sites.
  49549. </summary>
  49550. <param name="geom">geom the geometry from which the sites will be extracted.</param>
  49551. </member>
  49552. <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.SetSites(System.Collections.Generic.ICollection{NetTopologySuite.Geometries.Coordinate})">
  49553. <summary>
  49554. Sets the sites (point or vertices) which will be diagrammed
  49555. from a collection of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  49556. </summary>
  49557. <param name="coords">a collection of Coordinates.</param>
  49558. </member>
  49559. <member name="P:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.ClipEnvelope">
  49560. <summary>
  49561. Sets the envelope to clip the diagram to.
  49562. The diagram will be clipped to the larger
  49563. of this envelope or an envelope surrounding the sites.
  49564. </summary>
  49565. <remarks>the clip envelope.</remarks>
  49566. </member>
  49567. <member name="P:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.Tolerance">
  49568. <summary>
  49569. Sets the snapping tolerance which will be used
  49570. to improved the robustness of the triangulation computation.
  49571. A tolerance of 0.0 specifies that no snapping will take place.
  49572. </summary>
  49573. <remarks>tolerance the tolerance distance to use</remarks>
  49574. </member>
  49575. <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.GetSubdivision">
  49576. <summary>
  49577. Gets the <see cref="T:NetTopologySuite.Triangulate.QuadEdge.QuadEdgeSubdivision"/> which models the computed diagram.
  49578. </summary>
  49579. <returns>the subdivision containing the triangulation</returns>
  49580. </member>
  49581. <member name="M:NetTopologySuite.Triangulate.VoronoiDiagramBuilder.GetDiagram(NetTopologySuite.Geometries.GeometryFactory)">
  49582. <summary>
  49583. Gets the faces of the computed diagram as a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/>
  49584. of <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s, clipped as specified.
  49585. <para/>
  49586. The <see cref="P:NetTopologySuite.Geometries.Geometry.UserData"/> attribute of each face <see cref="N:NetTopologySuite.Triangulate.Polygon"/> is set to
  49587. the <c>Coordinate</c> of the corresponding input site.
  49588. This allows using a <see cref="T:System.Collections.Generic.IDictionary`2"/> to link faces to data associated with sites.
  49589. </summary>
  49590. <param name="geomFact">the geometry factory to use to create the output</param>
  49591. <returns>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/> containing the face <see cref="N:NetTopologySuite.Triangulate.Polygon"/>s of the diagram</returns>
  49592. </member>
  49593. <member name="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2">
  49594. <summary>
  49595. An alternative implementation of the priority queue abstract data type.
  49596. This allows us to do more than <see cref="T:NetTopologySuite.Utilities.PriorityQueue`1"/>, which we
  49597. got from JTS. Ultimately, this queue enables scenarios that have more
  49598. favorable execution speed characteristics at the cost of less favorable
  49599. memory and usability characteristics.
  49600. </summary>
  49601. <typeparam name="TPriority">
  49602. The type of the priority for each queue node.
  49603. </typeparam>
  49604. <typeparam name="TData">
  49605. The type of data stored in the queue.
  49606. </typeparam>
  49607. <remarks>
  49608. When enumerating over the queue, note that the elements will not be in
  49609. sorted order. To get at the elements in sorted order, use the copy
  49610. constructor and repeatedly <see cref="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Dequeue"/> elements from it.
  49611. </remarks>
  49612. </member>
  49613. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor">
  49614. <summary>
  49615. Initializes a new instance of the
  49616. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
  49617. </summary>
  49618. </member>
  49619. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Int32)">
  49620. <summary>
  49621. Initializes a new instance of the
  49622. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
  49623. </summary>
  49624. <param name="capacity">
  49625. The initial queue capacity.
  49626. </param>
  49627. <exception cref="T:System.ArgumentOutOfRangeException">
  49628. <paramref name="capacity"/> is less than 1.
  49629. </exception>
  49630. </member>
  49631. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Collections.Generic.IComparer{`0})">
  49632. <summary>
  49633. Initializes a new instance of the
  49634. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
  49635. </summary>
  49636. <param name="priorityComparer">
  49637. The <see cref="T:System.Collections.Generic.IComparer`1"/> to use to compare priority values,
  49638. or <see langword="null"/> to use the default comparer for the type.
  49639. </param>
  49640. </member>
  49641. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
  49642. <summary>
  49643. Initializes a new instance of the
  49644. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
  49645. </summary>
  49646. <param name="capacity">
  49647. The initial queue capacity.
  49648. </param>
  49649. <param name="priorityComparer">
  49650. The <see cref="T:System.Collections.Generic.IComparer`1"/> to use to compare priority values,
  49651. or <see langword="null"/> to use the default comparer for the type.
  49652. </param>
  49653. <exception cref="T:System.ArgumentOutOfRangeException">
  49654. <paramref name="capacity"/> is less than 1.
  49655. </exception>
  49656. </member>
  49657. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.#ctor(NetTopologySuite.Utilities.AlternativePriorityQueue{`0,`1})">
  49658. <summary>
  49659. Initializes a new instance of the
  49660. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> class.
  49661. </summary>
  49662. <param name="copyFrom">
  49663. The <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/> to
  49664. copy from.
  49665. </param>
  49666. <exception cref="T:System.ArgumentNullException">
  49667. <paramref name="copyFrom"/> is <see langword="null"/>.
  49668. </exception>
  49669. </member>
  49670. <member name="P:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Count">
  49671. <summary>
  49672. Gets the number of nodes currently stored in this queue.
  49673. </summary>
  49674. </member>
  49675. <member name="P:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Head">
  49676. <summary>
  49677. Gets the node at the head of the queue.
  49678. This is the node whose <typeparamref name="TPriority"/> compares
  49679. less than or equal to the priority of all other nodes in the queue.
  49680. </summary>
  49681. </member>
  49682. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Clear">
  49683. <summary>
  49684. Removes all nodes from this queue.
  49685. </summary>
  49686. </member>
  49687. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Contains(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1})">
  49688. <summary>
  49689. Determines whether the given node is contained within this queue.
  49690. </summary>
  49691. <param name="node">
  49692. The node to locate in the queue.
  49693. </param>
  49694. <returns>
  49695. <see langword="true"/> if <paramref name="node"/> is found in the
  49696. queue, otherwise <see langword="false"/>.
  49697. </returns>
  49698. </member>
  49699. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Enqueue(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1},`0)">
  49700. <summary>
  49701. Adds a given node to the queue with the given priority.
  49702. </summary>
  49703. <param name="node">
  49704. The node to add to the queue.
  49705. </param>
  49706. <param name="priority">
  49707. The priority for the node.
  49708. </param>
  49709. <exception cref="T:System.ArgumentNullException">
  49710. <paramref name="node"/> is <see langword="null"/>.
  49711. </exception>
  49712. </member>
  49713. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Dequeue">
  49714. <summary>
  49715. Removes and returns the head of the queue.
  49716. </summary>
  49717. <returns>
  49718. The removed element.
  49719. </returns>
  49720. </member>
  49721. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.ChangePriority(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1},`0)">
  49722. <summary>
  49723. Changes the priority of the given node.
  49724. </summary>
  49725. <param name="node">
  49726. The node whose priority to change.
  49727. </param>
  49728. <param name="priority">
  49729. The new priority for the node.
  49730. </param>
  49731. <exception cref="T:System.ArgumentNullException">
  49732. <paramref name="node"/> is <see langword="null"/>.
  49733. </exception>
  49734. </member>
  49735. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.Remove(NetTopologySuite.Utilities.PriorityQueueNode{`0,`1})">
  49736. <summary>
  49737. Removes the given node from this queue if it is present.
  49738. </summary>
  49739. <param name="node">
  49740. The node to remove if present.
  49741. </param>
  49742. <returns>
  49743. A value indicating whether the node was removed.
  49744. </returns>
  49745. </member>
  49746. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.GetEnumerator">
  49747. <inheritdoc />
  49748. </member>
  49749. <member name="M:NetTopologySuite.Utilities.AlternativePriorityQueue`2.System#Collections#IEnumerable#GetEnumerator">
  49750. <inheritdoc />
  49751. </member>
  49752. <member name="T:NetTopologySuite.Utilities.Assert">
  49753. <summary>
  49754. A utility for making programming assertions.
  49755. </summary>
  49756. </member>
  49757. <member name="M:NetTopologySuite.Utilities.Assert.IsTrue(System.Boolean)">
  49758. <summary>
  49759. Tests if <paramref name="assertion"/> is <c>true</c>
  49760. <para/>
  49761. If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no message is thrown.
  49762. </summary>
  49763. <param name="assertion">The assertion value</param>
  49764. </member>
  49765. <member name="M:NetTopologySuite.Utilities.Assert.IsTrue(System.Boolean,System.String)">
  49766. <summary>
  49767. Tests if <paramref name="assertion"/> is <c>true</c>
  49768. <para/>
  49769. If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> is thrown.
  49770. </summary>
  49771. <param name="assertion">The assertion value</param>
  49772. <param name="message">A message describing the failure condition.</param>
  49773. </member>
  49774. <member name="M:NetTopologySuite.Utilities.Assert.IsEquals(System.Object,System.Object)">
  49775. <summary>
  49776. Tests if two values are equal.
  49777. <para/>
  49778. If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no specific message is thrown.
  49779. </summary>
  49780. <param name="expectedValue">The expected value</param>
  49781. <param name="actualValue">The actual value</param>
  49782. </member>
  49783. <member name="M:NetTopologySuite.Utilities.Assert.IsEquals(System.Object,System.Object,System.String)">
  49784. <summary>
  49785. Tests if two values are equal.
  49786. <para/>
  49787. If the test fails, <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> is thrown.
  49788. </summary>
  49789. <param name="expectedValue">The expected value</param>
  49790. <param name="actualValue">The actual value</param>
  49791. <param name="message">A message describing the failure condition.</param>
  49792. </member>
  49793. <member name="M:NetTopologySuite.Utilities.Assert.ShouldNeverReachHere">
  49794. <summary>
  49795. Throws an <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with no specific message text.
  49796. </summary>
  49797. </member>
  49798. <member name="M:NetTopologySuite.Utilities.Assert.ShouldNeverReachHere(System.String)">
  49799. <summary>
  49800. Throws an <see cref="T:NetTopologySuite.Utilities.AssertionFailedException"/> with <paramref name="message"/> as specific message text.
  49801. </summary>
  49802. <param name="message">A text describing the failure condition</param>
  49803. </member>
  49804. <member name="T:NetTopologySuite.Utilities.AssertionFailedException">
  49805. <summary>
  49806. </summary>
  49807. </member>
  49808. <member name="M:NetTopologySuite.Utilities.AssertionFailedException.#ctor">
  49809. <summary>
  49810. </summary>
  49811. </member>
  49812. <member name="M:NetTopologySuite.Utilities.AssertionFailedException.#ctor(System.String)">
  49813. <summary>
  49814. </summary>
  49815. <param name="message"></param>
  49816. </member>
  49817. <member name="T:NetTopologySuite.Utilities.CoordinateArrayFilter">
  49818. <summary>
  49819. A <c>CoordinateFilter</c> that creates an array containing every coordinate in a <c>Geometry</c>.
  49820. </summary>
  49821. </member>
  49822. <member name="M:NetTopologySuite.Utilities.CoordinateArrayFilter.#ctor(System.Int32)">
  49823. <summary>
  49824. Constructs a <c>CoordinateArrayFilter</c>.
  49825. </summary>
  49826. <param name="size">The number of points that the <c>CoordinateArrayFilter</c> will collect.</param>
  49827. </member>
  49828. <member name="P:NetTopologySuite.Utilities.CoordinateArrayFilter.Coordinates">
  49829. <summary>
  49830. Returns the <c>Coordinate</c>s collected by this <c>CoordinateArrayFilter</c>.
  49831. </summary>
  49832. </member>
  49833. <member name="M:NetTopologySuite.Utilities.CoordinateArrayFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  49834. <summary>
  49835. </summary>
  49836. <param name="coord"></param>
  49837. </member>
  49838. <member name="T:NetTopologySuite.Utilities.CoordinateCompare">
  49839. <summary>
  49840. CoordinateCompare is used in the sorting of arrays of Coordinate objects.
  49841. Implements a lexicographic comparison.
  49842. </summary>
  49843. </member>
  49844. <member name="M:NetTopologySuite.Utilities.CoordinateCompare.Compare(System.Object,System.Object)">
  49845. <summary>
  49846. Compares two object and returns a value indicating whether one is less than, equal to or greater
  49847. than the other.
  49848. </summary>
  49849. <param name="x">First Coordinate object to compare.</param>
  49850. <param name="y">Second Coordinate object to compare.</param>
  49851. <returns>
  49852. &lt;table cellspacing="0" class="dtTABLE"&gt;
  49853. &lt;TR VALIGN="top"&gt;
  49854. &lt;TH width=50%&gt;Value&lt;/TH&gt;
  49855. &lt;TH width=50%&gt;Condition&lt;/TH&gt;
  49856. &lt;/TR&gt;
  49857. &lt;TR VALIGN="top"&gt;
  49858. &lt;TD width=50%&gt;Less than zero&lt;/TD&gt;
  49859. &lt;TD width=50%&gt;&lt;I&gt;a&lt;/I&gt; is less than &lt;I&gt;b&lt;/I&gt;.&lt;/TD&gt;
  49860. &lt;/TR&gt;
  49861. &lt;TR VALIGN="top"&gt;
  49862. &lt;TD width=50%&gt;Zero&lt;/TD&gt;
  49863. &lt;TD width=50%&gt;&lt;I&gt;a&lt;/I&gt; equals &lt;I&gt;b&lt;/I&gt;.&lt;/TD&gt;
  49864. &lt;/TR&gt;
  49865. &lt;TR VALIGN="top"&gt;
  49866. &lt;TD width=50%&gt;Greater than zero&lt;/TD&gt;
  49867. &lt;TD width=50%&gt;&lt;I&gt;a&lt;/I&gt; is greater than &lt;I&gt;b&lt;/I&gt;.&lt;/TD&gt;
  49868. &lt;/TR&gt;
  49869. &lt;/table&gt;
  49870. </returns>
  49871. <remarks>If a implements IComparable, then a. CompareTo (b) is returned; otherwise, if b
  49872. implements IComparable, then b. CompareTo (a) is returned.
  49873. Comparing a null reference (Nothing in Visual Basic) with any type is allowed and does not
  49874. generate an exception when using IComparable. When sorting, a null reference (Nothing) is
  49875. considered to be less than any other object.
  49876. </remarks>
  49877. </member>
  49878. <member name="T:NetTopologySuite.Utilities.CoordinateCountFilter">
  49879. <summary>
  49880. A <c>CoordinateFilter</c> that counts the total number of coordinates
  49881. in a <c>Geometry</c>.
  49882. </summary>
  49883. </member>
  49884. <member name="P:NetTopologySuite.Utilities.CoordinateCountFilter.Count">
  49885. <summary>
  49886. Returns the result of the filtering.
  49887. </summary>
  49888. </member>
  49889. <member name="M:NetTopologySuite.Utilities.CoordinateCountFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  49890. <summary>
  49891. </summary>
  49892. <param name="coord"></param>
  49893. </member>
  49894. <member name="T:NetTopologySuite.Utilities.Degrees">
  49895. <summary>
  49896. Converts degrees to radians.
  49897. </summary>
  49898. </member>
  49899. <member name="M:NetTopologySuite.Utilities.Degrees.ToRadians(System.Double)">
  49900. <summary>
  49901. Converts degrees to radians.
  49902. </summary>
  49903. <param name="degrees">The angle in degrees.</param>
  49904. <returns>The angle in radians.</returns>
  49905. </member>
  49906. <member name="T:NetTopologySuite.Utilities.FunctionsUtil">
  49907. <summary>
  49908. A utility class to get <see cref="T:NetTopologySuite.Geometries.GeometryFactory"/>s, <see cref="T:NetTopologySuite.Geometries.Envelope"/>s
  49909. off of <see cref="T:NetTopologySuite.Geometries.Geometry"/>s or to build aggregate geometries.
  49910. </summary>
  49911. </member>
  49912. <member name="F:NetTopologySuite.Utilities.FunctionsUtil.DefaultEnvelope">
  49913. <summary>
  49914. Gets a default envelope
  49915. </summary>
  49916. </member>
  49917. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetEnvelopeOrDefault(NetTopologySuite.Geometries.Geometry)">
  49918. <summary>
  49919. Gets the envelope of a geometry.
  49920. </summary>
  49921. <param name="g">A geometry</param>
  49922. <returns>The envelope of <paramref name="g"/> or <see cref="F:NetTopologySuite.Utilities.FunctionsUtil.DefaultEnvelope"/> if <c>g == null</c>.</returns>
  49923. </member>
  49924. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetFactoryOrDefault(NetTopologySuite.Geometries.Geometry)">
  49925. <summary>
  49926. Function to get the geometry factory of a geometry. If
  49927. <paramref name="g"/> is <c>null</c>, a default geometry
  49928. factory is returned.
  49929. </summary>
  49930. <param name="g">A geometry</param>
  49931. <returns>A geometry factory</returns>
  49932. </member>
  49933. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.GetFactoryOrDefault(System.Collections.Generic.IEnumerable{NetTopologySuite.Geometries.Geometry})">
  49934. <summary>
  49935. Function to get the geometry factory of the first
  49936. geometry in a series of geometries.<para/>
  49937. If no geometry is provided in <paramref name="gs"/>,
  49938. a default geometry factory is returned.
  49939. </summary>
  49940. <param name="gs">An enumeration of geometries</param>
  49941. <returns>A geometry factory</returns>
  49942. </member>
  49943. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(System.Collections.Generic.List{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.Geometry)">
  49944. <summary>
  49945. Builds a geometry from a list of geometries.
  49946. <para/>
  49947. The function returns
  49948. <list type="bullet">
  49949. <item><term><c>null</c></term><description>if the list is <c>null</c> or empty</description></item>
  49950. <item><term><c><paramref name="geoms"/>[0]</c></term><description>if the list contains one single item.</description></item>
  49951. <item><term>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></term>if <paramref name="parentGeom"/> is a <tt>GeometryCollection</tt>.</item>
  49952. <item><term>a <tt>Multi</tt>-geometry</term> in all other cases.</item>
  49953. </list>
  49954. </summary>
  49955. <param name="geoms">A list of geometries.</param>
  49956. <param name="parentGeom">A parent geometry</param>
  49957. <returns>A geometry.</returns>
  49958. </member>
  49959. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(System.Collections.Generic.IList{NetTopologySuite.Geometries.Geometry},NetTopologySuite.Geometries.Geometry)">
  49960. <summary>
  49961. Builds a geometry from a list of geometries.
  49962. <para/>
  49963. The function returns
  49964. <list type="bullet">
  49965. <item><term><c>null</c></term><description>if the list is <c>null</c> or empty</description></item>
  49966. <item><term><c><paramref name="geoms"/>[0]</c></term><description>if the list contains one single item.</description></item>
  49967. <item><term>a <see cref="T:NetTopologySuite.Geometries.GeometryCollection"/></term>if <paramref name="parentGeom"/> is a <tt>GeometryCollection</tt>.</item>
  49968. <item><term>a <tt>Multi</tt>-geometry</term> in all other cases.</item>
  49969. </list>
  49970. </summary>
  49971. <param name="geoms">A list of geometries.</param>
  49972. <param name="parentGeom">A parent geometry</param>
  49973. <returns>A geometry.</returns>
  49974. </member>
  49975. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(NetTopologySuite.Geometries.Geometry[])">
  49976. <summary>
  49977. Method to build a geometry.
  49978. </summary>
  49979. <param name="geoms">An array of geometries</param>
  49980. <returns>A <c>GEOMETRYCOLLECTION</c> containing <paramref name="geoms"/>.</returns>
  49981. </member>
  49982. <member name="M:NetTopologySuite.Utilities.FunctionsUtil.BuildGeometry(NetTopologySuite.Geometries.Geometry,NetTopologySuite.Geometries.Geometry)">
  49983. <summary>
  49984. Method to build a geometry.
  49985. </summary>
  49986. <param name="a">A geometry</param>
  49987. <param name="b">A geometry</param>
  49988. <returns>A <c>GEOMETRYCOLLECTION</c> containing <paramref name="a"/> and <paramref name="b"/>.</returns>
  49989. </member>
  49990. <member name="T:NetTopologySuite.Utilities.GeometricShapeFactory">
  49991. <summary>
  49992. Computes various kinds of common geometric shapes.
  49993. Allows various ways of specifying the location and extent of the shapes,
  49994. as well as number of line segments used to form them.
  49995. </summary>
  49996. </member>
  49997. <member name="F:NetTopologySuite.Utilities.GeometricShapeFactory.GeomFact">
  49998. <summary>
  49999. A geometry factory
  50000. </summary>
  50001. </member>
  50002. <member name="F:NetTopologySuite.Utilities.GeometricShapeFactory.PrecModel">
  50003. <summary>
  50004. A precision model
  50005. </summary>
  50006. </member>
  50007. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.#ctor">
  50008. <summary>
  50009. Create a shape factory which will create shapes using the default GeometryFactory.
  50010. </summary>
  50011. </member>
  50012. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.#ctor(NetTopologySuite.Geometries.GeometryFactory)">
  50013. <summary>
  50014. Create a shape factory which will create shapes using the given GeometryFactory.
  50015. </summary>
  50016. <param name="geomFact">The factory to use.</param>
  50017. </member>
  50018. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Base">
  50019. <summary>
  50020. Gets/Sets the location of the shape by specifying the base coordinate
  50021. (which in most cases is the
  50022. lower left point of the envelope containing the shape).
  50023. </summary>
  50024. </member>
  50025. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Centre">
  50026. <summary>
  50027. Gets/Sets the location of the shape by specifying the centre of
  50028. the shape's bounding box.
  50029. </summary>
  50030. </member>
  50031. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Envelope">
  50032. <summary>
  50033. Gets or sets the envelope of the shape
  50034. </summary>
  50035. </member>
  50036. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.NumPoints">
  50037. <summary>
  50038. Gets/Sets the total number of points in the created Geometry.
  50039. </summary>
  50040. </member>
  50041. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Size">
  50042. <summary>
  50043. Gets/Sets the size of the extent of the shape in both x and y directions.
  50044. </summary>
  50045. </member>
  50046. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Width">
  50047. <summary>
  50048. Gets/Sets the width of the shape.
  50049. </summary>
  50050. </member>
  50051. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Height">
  50052. <summary>
  50053. Gets/Sets the height of the shape.
  50054. </summary>
  50055. </member>
  50056. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Rotation">
  50057. <summary>
  50058. Gets/Sets the rotation angle, in radians, to use for the shape.
  50059. The rotation is applied relative to the centre of the shape.
  50060. </summary>
  50061. </member>
  50062. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.Rotate(NetTopologySuite.Geometries.Geometry)">
  50063. <summary>
  50064. Rotates a geometry by <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Rotation"/> angle
  50065. </summary>
  50066. <param name="geom">The geometry to rotate</param>
  50067. <returns>A rotated geometry</returns>
  50068. </member>
  50069. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCoord(System.Double,System.Double)">
  50070. <summary>
  50071. Creates a coordinate at (<paramref name="x"/>, <paramref name="y"/>)
  50072. </summary>
  50073. <param name="x">The x-ordinate value</param>
  50074. <param name="y">The y-ordinate value</param>
  50075. <returns>A coordinate</returns>
  50076. </member>
  50077. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCoordTrans(System.Double,System.Double,NetTopologySuite.Geometries.Coordinate)">
  50078. <summary>
  50079. Creates a translated coordinate at (<paramref name="x"/> + <paramref name="trans.X.X"/>, <paramref name="y"/> + <paramref name="trans.Y.Y"/>)
  50080. </summary>
  50081. <param name="x">The x-ordinate value</param>
  50082. <param name="y">The y-ordinate value</param>
  50083. <param name="trans">A translation vector (coordinate)</param>
  50084. <returns>A coordinate</returns>
  50085. </member>
  50086. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateRectangle">
  50087. <summary>
  50088. Creates a rectangular <c>Polygon</c>.
  50089. </summary>
  50090. <returns>A rectangular polygon.</returns>
  50091. </member>
  50092. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateCircle">
  50093. <summary>
  50094. Creates a circular <c>Polygon</c>.
  50095. </summary>
  50096. <returns>A circular polygon.</returns>
  50097. </member>
  50098. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateEllipse">
  50099. <summary>
  50100. Creates an elliptical <c>Polygon</c>.
  50101. If the supplied envelope is square the
  50102. result will be a circle.
  50103. </summary>
  50104. <returns>An an ellipse or circle.</returns>
  50105. </member>
  50106. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateSquircle">
  50107. <summary>
  50108. Creates a squircular <see cref="T:NetTopologySuite.Geometries.Polygon"/>.
  50109. </summary>
  50110. <returns>a squircle</returns>
  50111. </member>
  50112. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateSupercircle(System.Double)">
  50113. <summary>
  50114. Creates a supercircular <see cref="T:NetTopologySuite.Geometries.Polygon"/>
  50115. of a given positive power.
  50116. </summary>
  50117. <returns>a supercircle</returns>
  50118. </member>
  50119. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateArc(System.Double,System.Double)">
  50120. <summary>
  50121. Creates a elliptical arc, as a LineString.
  50122. </summary><remarks>
  50123. The arc is always created in a counter-clockwise direction.
  50124. </remarks>
  50125. <param name="startAng">Start angle in radians</param>
  50126. <param name="angExtent">Size of angle in radians</param>
  50127. <returns></returns>
  50128. </member>
  50129. <member name="M:NetTopologySuite.Utilities.GeometricShapeFactory.CreateArcPolygon(System.Double,System.Double)">
  50130. <summary>
  50131. Creates an elliptical arc polygon.
  50132. </summary>
  50133. <remarks>
  50134. The polygon is formed from the specified arc of an ellipse
  50135. and the two radii connecting the endpoints to the centre of the ellipse.
  50136. </remarks>
  50137. <param name="startAng">Start angle in radians</param>
  50138. <param name="angExtent">Size of angle in radians</param>
  50139. <returns>An elliptical arc polygon</returns>
  50140. </member>
  50141. <member name="T:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions">
  50142. <summary>
  50143. A dimension class for <see cref="T:NetTopologySuite.Utilities.GeometricShapeFactory"/>s
  50144. </summary>
  50145. </member>
  50146. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Base">
  50147. <summary>
  50148. Gets or sets a value indicating the base of the shapes to be created
  50149. </summary>
  50150. </member>
  50151. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Centre">
  50152. <summary>
  50153. Gets or sets a value indicating the centre of the shapes to be created
  50154. </summary>
  50155. </member>
  50156. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Width">
  50157. <summary>
  50158. Gets or sets a value indicating the width of the <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>.
  50159. </summary>
  50160. </member>
  50161. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Height">
  50162. <summary>
  50163. Gets or sets a value indicating the height of the <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>.
  50164. </summary>
  50165. </member>
  50166. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Size">
  50167. <summary>
  50168. Sets <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Width"/> and <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Height"/> to the same value
  50169. </summary>
  50170. </member>
  50171. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.MinSize">
  50172. <summary>
  50173. Gets a value indicating the minimum size of the shape's <see cref="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope"/>
  50174. </summary>
  50175. </member>
  50176. <member name="P:NetTopologySuite.Utilities.GeometricShapeFactory.Dimensions.Envelope">
  50177. <summary>
  50178. Gets or sets a value indicating the bounds of the shape to be created
  50179. </summary>
  50180. </member>
  50181. <member name="T:NetTopologySuite.Utilities.Global">
  50182. <summary>
  50183. </summary>
  50184. </member>
  50185. <member name="M:NetTopologySuite.Utilities.Global.#ctor">
  50186. <summary>
  50187. </summary>
  50188. </member>
  50189. <member name="F:NetTopologySuite.Utilities.Global.global">
  50190. <summary>
  50191. </summary>
  50192. </member>
  50193. <member name="M:NetTopologySuite.Utilities.Global.GetNfi">
  50194. <summary>
  50195. </summary>
  50196. <returns></returns>
  50197. </member>
  50198. <member name="T:NetTopologySuite.Utilities.Guard">
  50199. <summary>
  50200. A guard class
  50201. </summary>
  50202. </member>
  50203. <member name="M:NetTopologySuite.Utilities.Guard.IsNotNull(System.Object,System.String)">
  50204. <summary>
  50205. Checks if a value is <b>not</b> <c>null</c>.
  50206. </summary>
  50207. <param name="candidate">The value to check for <c>null</c></param>
  50208. <param name="propertyName">The name of the property that <paramref name="candidate"/> belongs to.</param>
  50209. </member>
  50210. <member name="T:NetTopologySuite.Utilities.HexConverter">
  50211. <summary>
  50212. </summary>
  50213. </member>
  50214. <member name="M:NetTopologySuite.Utilities.HexConverter.#ctor">
  50215. <summary>
  50216. Only static methods!
  50217. </summary>
  50218. </member>
  50219. <member name="M:NetTopologySuite.Utilities.HexConverter.ConvertAny2Any(System.String,System.Int32,System.Int32)">
  50220. <summary>
  50221. Convert the given numeric value (passed as string) of the base specified by <c>baseIn</c>
  50222. to the value specified by <c>baseOut</c>.
  50223. </summary>
  50224. <param name="valueIn">Numeric value to be converted, as string.</param>
  50225. <param name="baseIn">Base of input value.</param>
  50226. <param name="baseOut">Base to use for conversion.</param>
  50227. <returns>Converted value, as string.</returns>
  50228. </member>
  50229. <member name="T:NetTopologySuite.Utilities.Memory">
  50230. <summary>
  50231. Utility functions to report memory usage.
  50232. </summary>
  50233. <author>mbdavis</author>
  50234. </member>
  50235. <member name="P:NetTopologySuite.Utilities.Memory.Total">
  50236. <summary>
  50237. Gets a value indicating the total memory used.
  50238. </summary>
  50239. </member>
  50240. <member name="P:NetTopologySuite.Utilities.Memory.TotalString">
  50241. <summary>
  50242. Gets a string describing the total memory used
  50243. </summary>
  50244. </member>
  50245. <member name="F:NetTopologySuite.Utilities.Memory.KB">
  50246. <summary>
  50247. Number of bytes in a kilo-byte
  50248. </summary>
  50249. </member>
  50250. <member name="F:NetTopologySuite.Utilities.Memory.MB">
  50251. <summary>
  50252. Number of bytes in mega-byte
  50253. </summary>
  50254. </member>
  50255. <member name="F:NetTopologySuite.Utilities.Memory.GB">
  50256. <summary>
  50257. Number of bytes in a giga-byte
  50258. </summary>
  50259. </member>
  50260. <member name="M:NetTopologySuite.Utilities.Memory.Format(System.Int64)">
  50261. <summary>
  50262. Formats a number of bytes
  50263. </summary>
  50264. <param name="mem">The number of bytes</param>
  50265. <returns>A string describing a number of bytes</returns>
  50266. </member>
  50267. <member name="M:NetTopologySuite.Utilities.Memory.Round(System.Double)">
  50268. <summary>
  50269. Rounds a double to 2 decimal places
  50270. </summary>
  50271. <param name="d">The number to round</param>
  50272. <returns>The rounded number</returns>
  50273. </member>
  50274. <member name="T:NetTopologySuite.Utilities.PriorityQueue`1">
  50275. <summary>
  50276. A priority queue over a set of <see cref="T:System.IComparable`1"/> objects.
  50277. </summary>
  50278. <typeparam name="T">Objects to add</typeparam>
  50279. <author>Martin Davis</author>
  50280. </member>
  50281. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.#ctor">
  50282. <summary>
  50283. Creates an instance of this class
  50284. </summary>
  50285. </member>
  50286. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.#ctor(System.Int32,System.Collections.Generic.IComparer{`0})">
  50287. <summary>
  50288. Creates an instance of this class
  50289. </summary>
  50290. <param name="capacity">The capacity of the queue</param>
  50291. <param name="comparer">The comparer to use for computing priority values</param>
  50292. </member>
  50293. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Add(`0)">
  50294. <summary>Insert into the priority queue. Duplicates are allowed.
  50295. </summary>
  50296. <param name="x">The item to insert.</param>
  50297. </member>
  50298. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.IsEmpty">
  50299. <summary>
  50300. Test if the priority queue is logically empty.
  50301. </summary>
  50302. <returns><c>true</c> if empty, <c>false</c> otherwise.</returns>
  50303. </member>
  50304. <member name="P:NetTopologySuite.Utilities.PriorityQueue`1.Size">
  50305. <summary>
  50306. Returns size.
  50307. </summary>
  50308. </member>
  50309. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Clear">
  50310. <summary>
  50311. Make the priority queue logically empty.
  50312. </summary>
  50313. </member>
  50314. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Poll">
  50315. <summary>
  50316. Remove the smallest item from the priority queue.
  50317. </summary>
  50318. <remarks>The smallest item, or <c>default(T)</c> if empty.</remarks>
  50319. </member>
  50320. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.Peek">
  50321. <summary>
  50322. Gets the smallest item without removing it from the queue
  50323. </summary>
  50324. <returns></returns>
  50325. </member>
  50326. <member name="M:NetTopologySuite.Utilities.PriorityQueue`1.GetEnumerator">
  50327. <inheritdoc cref="M:System.Collections.Generic.IEnumerable`1.GetEnumerator"/>>
  50328. </member>
  50329. <member name="T:NetTopologySuite.Utilities.PriorityQueueNode`2">
  50330. <summary>
  50331. A container for a prioritized node that sites in an
  50332. <see cref="T:NetTopologySuite.Utilities.AlternativePriorityQueue`2"/>.
  50333. </summary>
  50334. <typeparam name="TPriority">
  50335. The type to use for the priority of the node in the queue.
  50336. </typeparam>
  50337. <typeparam name="TData">
  50338. The type to use for the data stored by the node in the queue.
  50339. </typeparam>
  50340. </member>
  50341. <member name="M:NetTopologySuite.Utilities.PriorityQueueNode`2.#ctor(`1)">
  50342. <summary>
  50343. Initializes a new instance of the <see cref="T:NetTopologySuite.Utilities.PriorityQueueNode`2"/> class.
  50344. </summary>
  50345. <param name="data">
  50346. The <typeparamref name="TData"/> to store in this node.
  50347. </param>
  50348. </member>
  50349. <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.Data">
  50350. <summary>
  50351. Gets the <typeparamref name="TData"/> that is stored in this node.
  50352. </summary>
  50353. </member>
  50354. <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.Priority">
  50355. <summary>
  50356. Gets the <typeparamref name="TPriority"/> of this node in the queue.
  50357. </summary>
  50358. <remarks>
  50359. The queue may update this priority while the node is still in the queue.
  50360. </remarks>
  50361. </member>
  50362. <member name="P:NetTopologySuite.Utilities.PriorityQueueNode`2.QueueIndex">
  50363. <summary>
  50364. Gets or sets the index of this node in the queue.
  50365. </summary>
  50366. <remarks>
  50367. This should only be read and written by the queue itself.
  50368. It has no "real" meaning to anyone else.
  50369. </remarks>
  50370. </member>
  50371. <member name="T:NetTopologySuite.Utilities.Radians">
  50372. <summary>
  50373. Converts radians to degress.
  50374. </summary>
  50375. </member>
  50376. <member name="M:NetTopologySuite.Utilities.Radians.ToDegrees(System.Double)">
  50377. <summary>
  50378. Converts radians to degress.
  50379. </summary>
  50380. <param name="radians">Angle in radians.</param>
  50381. <returns>The angle in degrees.</returns>
  50382. </member>
  50383. <member name="T:NetTopologySuite.Utilities.ReverseOrder">
  50384. <summary>
  50385. </summary>
  50386. </member>
  50387. <member name="M:NetTopologySuite.Utilities.ReverseOrder.Compare(System.Object,System.Object)">
  50388. <summary>
  50389. </summary>
  50390. <param name="x"></param>
  50391. <param name="y"></param>
  50392. <returns></returns>
  50393. </member>
  50394. <member name="T:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter">
  50395. <summary>
  50396. A <see cref="T:NetTopologySuite.Geometries.ICoordinateFilter"/>
  50397. that extracts a unique array of<c>Coordinate</c> s.
  50398. The array of coordinates contains no duplicate points.
  50399. <para/>
  50400. It preserves the order of the input points.
  50401. </summary>
  50402. </member>
  50403. <member name="M:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.FilterCoordinates(NetTopologySuite.Geometries.Coordinate[])">
  50404. <summary>
  50405. Convenience method which allows running the filter over an array of <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  50406. </summary>
  50407. <param name="coords">an array of coordinates</param>
  50408. <returns>an array of the unique coordinates</returns>
  50409. </member>
  50410. <member name="P:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.Coordinates">
  50411. <summary>
  50412. Returns the gathered <see cref="T:NetTopologySuite.Geometries.Coordinate"/>s.
  50413. </summary>
  50414. <returns>The <c>Coordinate</c>s collected by this <c>ICoordinateArrayFilter</c></returns>
  50415. </member>
  50416. <member name="M:NetTopologySuite.Utilities.UniqueCoordinateArrayFilter.Filter(NetTopologySuite.Geometries.Coordinate)">
  50417. <inheritdoc cref="M:NetTopologySuite.Geometries.ICoordinateFilter.Filter(NetTopologySuite.Geometries.Coordinate)"/>
  50418. </member>
  50419. <member name="T:RTools_NTS.Util.CharBuffer">
  50420. <summary>
  50421. Buffer for characters. This approximates StringBuilder
  50422. but is designed to be faster for specific operations.
  50423. This is about 30% faster for the operations I'm interested in
  50424. (Append, Clear, Length, ToString).
  50425. This trades off memory for speed.
  50426. </summary>
  50427. <remarks>
  50428. <para>To make Remove from the head fast, this is implemented
  50429. as a ring buffer.</para>
  50430. <para>This uses head and tail indices into a fixed-size
  50431. array. This will grow the array as necessary.</para>
  50432. </remarks>
  50433. </member>
  50434. <member name="P:RTools_NTS.Util.CharBuffer.Length">
  50435. <summary>
  50436. Gets/Sets the number of characters in the character buffer.
  50437. Increasing the length this way provides indeterminate results.
  50438. </summary>
  50439. </member>
  50440. <member name="P:RTools_NTS.Util.CharBuffer.Capacity">
  50441. <summary>
  50442. Returns the capacity of this character buffer.
  50443. </summary>
  50444. </member>
  50445. <member name="M:RTools_NTS.Util.CharBuffer.#ctor">
  50446. <summary>
  50447. Default constructor.
  50448. </summary>
  50449. </member>
  50450. <member name="M:RTools_NTS.Util.CharBuffer.#ctor(System.Int32)">
  50451. <summary>
  50452. Construct with a specific capacity.
  50453. </summary>
  50454. <param name="capacity"></param>
  50455. </member>
  50456. <member name="M:RTools_NTS.Util.CharBuffer.Grow(System.Int32)">
  50457. <summary>
  50458. Reallocate the buffer to be larger. For the new size, this
  50459. uses the max of the requested length and double the current
  50460. capacity.
  50461. This does not shift, meaning it does not change the head or
  50462. tail indices.
  50463. </summary>
  50464. <param name="requestedLen">The new requested length.</param>
  50465. </member>
  50466. <member name="M:RTools_NTS.Util.CharBuffer.CheckCapacity(System.Int32)">
  50467. <summary>
  50468. Ensure that we're set for the requested length by
  50469. potentially growing or shifting contents.
  50470. </summary>
  50471. <param name="requestedLength"></param>
  50472. </member>
  50473. <member name="M:RTools_NTS.Util.CharBuffer.ShiftToZero">
  50474. <summary>
  50475. Move the buffer contents such that headIndex becomes 0.
  50476. </summary>
  50477. </member>
  50478. <member name="M:RTools_NTS.Util.CharBuffer.SetBuffer(System.Char[],System.Int32)">
  50479. <summary>
  50480. Overwrite this object's underlying buffer with the specified
  50481. buffer.
  50482. </summary>
  50483. <param name="b">The character array.</param>
  50484. <param name="len">The number of characters to consider filled
  50485. in the input buffer.</param>
  50486. </member>
  50487. <member name="M:RTools_NTS.Util.CharBuffer.Append(System.Char)">
  50488. <summary>
  50489. Append a character to this buffer.
  50490. </summary>
  50491. <param name="c"></param>
  50492. </member>
  50493. <member name="M:RTools_NTS.Util.CharBuffer.Append(System.String)">
  50494. <summary>
  50495. Append a string to this buffer.
  50496. </summary>
  50497. <param name="s">The string to append.</param>
  50498. </member>
  50499. <member name="M:RTools_NTS.Util.CharBuffer.Append(RTools_NTS.Util.CharBuffer)">
  50500. <summary>
  50501. Append a string to this buffer.
  50502. </summary>
  50503. <param name="s">The string to append.</param>
  50504. </member>
  50505. <member name="M:RTools_NTS.Util.CharBuffer.Remove(System.Int32)">
  50506. <summary>
  50507. Remove a character at the specified index.
  50508. </summary>
  50509. <param name="i">The index of the character to remove.</param>
  50510. <returns></returns>
  50511. </member>
  50512. <member name="M:RTools_NTS.Util.CharBuffer.Remove(System.Int32,System.Int32)">
  50513. <summary>
  50514. Remove a specified number of characters at the specified index.
  50515. </summary>
  50516. <param name="i">The index of the characters to remove.</param>
  50517. <param name="n">The number of characters to remove.</param>
  50518. </member>
  50519. <member name="M:RTools_NTS.Util.CharBuffer.IndexOf(System.Char)">
  50520. <summary>
  50521. Find the first instance of a character in the buffer, and
  50522. return its index. This returns -1 if the character is
  50523. not found.
  50524. </summary>
  50525. <param name="c">The character to find.</param>
  50526. <returns>The index of the specified character, or -1
  50527. for not found.</returns>
  50528. </member>
  50529. <member name="M:RTools_NTS.Util.CharBuffer.Clear">
  50530. <summary>
  50531. Empty the buffer.
  50532. </summary>
  50533. </member>
  50534. <member name="P:RTools_NTS.Util.CharBuffer.Item(System.Int32)">
  50535. <summary>
  50536. Indexer.
  50537. </summary>
  50538. </member>
  50539. <member name="M:RTools_NTS.Util.CharBuffer.ToString">
  50540. <summary>
  50541. Return the current contents as a string.
  50542. </summary>
  50543. <returns>The new string.</returns>
  50544. </member>
  50545. <member name="T:RTools_NTS.Util.StreamTokenizerUntermException">
  50546. <summary>
  50547. Exception class for unterminated tokens.
  50548. </summary>
  50549. </member>
  50550. <member name="M:RTools_NTS.Util.StreamTokenizerUntermException.#ctor(System.String)">
  50551. <summary>
  50552. Construct with a particular message.
  50553. </summary>
  50554. <param name="msg">The message to store in this object.</param>
  50555. </member>
  50556. <member name="T:RTools_NTS.Util.StreamTokenizerUntermQuoteException">
  50557. <summary>
  50558. Exception class for unterminated quotes.
  50559. </summary>
  50560. </member>
  50561. <member name="M:RTools_NTS.Util.StreamTokenizerUntermQuoteException.#ctor(System.String)">
  50562. <summary>
  50563. Construct with a particular message.
  50564. </summary>
  50565. <param name="msg">The message to store in this object.</param>
  50566. </member>
  50567. <member name="T:RTools_NTS.Util.StreamTokenizerUntermCommentException">
  50568. <summary>
  50569. Exception class for unterminated block comments.
  50570. </summary>
  50571. </member>
  50572. <member name="M:RTools_NTS.Util.StreamTokenizerUntermCommentException.#ctor(System.String)">
  50573. <summary>
  50574. Construct with a particular message.
  50575. </summary>
  50576. <param name="msg">The message to store in this object.</param>
  50577. </member>
  50578. <member name="T:RTools_NTS.Util.CharTypeBits">
  50579. <summary>
  50580. Bitwise enumeration for character types.
  50581. </summary>
  50582. </member>
  50583. <member name="F:RTools_NTS.Util.CharTypeBits.Word">
  50584. <summary>word characters (usually alpha, digits, and domain specific)</summary>
  50585. </member>
  50586. <member name="F:RTools_NTS.Util.CharTypeBits.Comment">
  50587. <summary># or something for line comments</summary>
  50588. </member>
  50589. <member name="F:RTools_NTS.Util.CharTypeBits.Whitespace">
  50590. <summary>whitespace</summary>
  50591. </member>
  50592. <member name="F:RTools_NTS.Util.CharTypeBits.Quote">
  50593. <summary>' or " type</summary>
  50594. </member>
  50595. <member name="F:RTools_NTS.Util.CharTypeBits.Digit">
  50596. <summary>usually 0 to 9</summary>
  50597. </member>
  50598. <member name="F:RTools_NTS.Util.CharTypeBits.HexDigit">
  50599. <summary>usually 0 to 9, a-f and A-F</summary>
  50600. </member>
  50601. <member name="F:RTools_NTS.Util.CharTypeBits.Eof">
  50602. <summary>eof char</summary>
  50603. </member>
  50604. <member name="T:RTools_NTS.Util.StreamTokenizerSettings">
  50605. <summary>
  50606. This contains the settings that control the behavior of the tokenizer.
  50607. This is separated from the StreamTokenizer so that common settings
  50608. are easy to package and keep together.
  50609. </summary>
  50610. </member>
  50611. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.CharTypes">
  50612. <summary>
  50613. This is the character type table. Each byte is bitwise encoded
  50614. with the character attributes, such as whether that character is
  50615. word or whitespace.
  50616. </summary>
  50617. </member>
  50618. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabWhitespace">
  50619. <summary>
  50620. Whether or not to return whitespace tokens. If not, they're ignored.
  50621. </summary>
  50622. </member>
  50623. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabEol">
  50624. <summary>
  50625. Whether or not to return EolTokens on end of line. Eol tokens will not
  50626. break up other tokens which can be multi-line. For example block comments
  50627. and quotes will not be broken by Eol tokens. Therefore the number of
  50628. Eol tokens does not give you the line count of a stream.
  50629. </summary>
  50630. </member>
  50631. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.SlashSlashComments">
  50632. <summary>
  50633. Whether or not to look for // comments
  50634. </summary>
  50635. </member>
  50636. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.SlashStarComments">
  50637. <summary>
  50638. Whether or not to look for /* */ block comments.
  50639. </summary>
  50640. </member>
  50641. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.GrabComments">
  50642. <summary>
  50643. Whether or not to return comments.
  50644. </summary>
  50645. </member>
  50646. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.DoUntermCheck">
  50647. <summary>
  50648. Whether or not to check for unterminated quotes and block comments.
  50649. If true, and one is encoutered, an exception is thrown of the appropriate type.
  50650. </summary>
  50651. </member>
  50652. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.ParseNumbers">
  50653. <summary>
  50654. Whether or not digits are specified as Digit type in the
  50655. character table.
  50656. This setting is based on the character types table, so this
  50657. setting interacts with character type table manipulation.
  50658. This setting may become incorrect if you modify the character
  50659. types table directly.
  50660. </summary>
  50661. </member>
  50662. <member name="P:RTools_NTS.Util.StreamTokenizerSettings.ParseHexNumbers">
  50663. <summary>
  50664. Whether or not to parse Hex (0xABCD...) numbers.
  50665. This setting is based on the character types table, so this
  50666. setting interacts with character type table manipulation.
  50667. </summary>
  50668. </member>
  50669. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.#ctor">
  50670. <summary>
  50671. Default constructor.
  50672. </summary>
  50673. </member>
  50674. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.#ctor(RTools_NTS.Util.StreamTokenizerSettings)">
  50675. <summary>
  50676. Copy constructor.
  50677. </summary>
  50678. </member>
  50679. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Copy(RTools_NTS.Util.StreamTokenizerSettings)">
  50680. <summary>
  50681. Sets this object to be the same as the specified object.
  50682. Note that some settings which are entirely embodied by the character
  50683. type table.
  50684. </summary>
  50685. </member>
  50686. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.SetDefaults">
  50687. <summary>
  50688. Setup default parse behavior.
  50689. This resets to same behavior as on construction.
  50690. </summary>
  50691. <returns>bool - true for success.</returns>
  50692. </member>
  50693. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.SetupForCodeParse">
  50694. <summary>
  50695. Apply settings which are commonly used for code parsing
  50696. C-endCapStyle code, including C++, C#, and Java.
  50697. </summary>
  50698. <returns></returns>
  50699. </member>
  50700. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.ResetCharTypeTable">
  50701. <summary>
  50702. Clear the character type settings. This leaves them unset,
  50703. as opposed to the default. Use SetDefaults() for default
  50704. settings.
  50705. </summary>
  50706. </member>
  50707. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChar(System.Int32)">
  50708. <summary>
  50709. Specify that a particular character is a word character.
  50710. Character table type manipulation method.
  50711. This adds the type to the char(s), rather
  50712. than overwriting other types.
  50713. </summary>
  50714. <param name="c">The character.</param>
  50715. </member>
  50716. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChars(System.Int32,System.Int32)">
  50717. <summary>
  50718. Specify that a range of characters are word characters.
  50719. Character table type manipulation method.
  50720. This adds the type to the char(s), rather
  50721. than overwriting other types.
  50722. </summary>
  50723. <param name="startChar">First character.</param>
  50724. <param name="endChar">Last character.</param>
  50725. </member>
  50726. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WordChars(System.String)">
  50727. <summary>
  50728. Specify that a string of characters are word characters.
  50729. Character table type manipulation method.
  50730. This adds the type to the char(s), rather
  50731. than overwriting other types.
  50732. </summary>
  50733. <param name="s"></param>
  50734. </member>
  50735. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WhitespaceChar(System.Int32)">
  50736. <summary>
  50737. Specify that a character is a whitespace character.
  50738. Character table type manipulation method.
  50739. This type is exclusive with other types.
  50740. </summary>
  50741. <param name="c">The character.</param>
  50742. </member>
  50743. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.WhitespaceChars(System.Int32,System.Int32)">
  50744. <summary>
  50745. Specify that a range of characters are whitespace characters.
  50746. Character table type manipulation method.
  50747. This adds the characteristic to the char(s), rather
  50748. than overwriting other characteristics.
  50749. </summary>
  50750. <param name="startChar">First character.</param>
  50751. <param name="endChar">Last character.</param>
  50752. </member>
  50753. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.OrdinaryChars(System.Int32,System.Int32)">
  50754. <summary>
  50755. Remove other type settings from a range of characters.
  50756. Character table type manipulation method.
  50757. </summary>
  50758. <param name="startChar"></param>
  50759. <param name="endChar"></param>
  50760. </member>
  50761. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.OrdinaryChar(System.Int32)">
  50762. <summary>
  50763. Remove other type settings from a character.
  50764. Character table type manipulation method.
  50765. </summary>
  50766. <param name="c"></param>
  50767. </member>
  50768. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.CommentChar(System.Int32)">
  50769. <summary>
  50770. Specify that a particular character is a comment-starting character.
  50771. Character table type manipulation method.
  50772. </summary>
  50773. <param name="c"></param>
  50774. </member>
  50775. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.QuoteChar(System.Int32)">
  50776. <summary>
  50777. Specify that a particular character is a quote character.
  50778. Character table type manipulation method.
  50779. </summary>
  50780. <param name="c"></param>
  50781. </member>
  50782. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.CharTypeToString(System.Byte)">
  50783. <summary>
  50784. Return a string representation of a character type setting.
  50785. Since the type setting is bitwise encoded, a character
  50786. can have more than one type.
  50787. </summary>
  50788. <param name="ctype">The character type byte.</param>
  50789. <returns>The string representation of the type flags.</returns>
  50790. </member>
  50791. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Byte,RTools_NTS.Util.CharTypeBits)">
  50792. <summary>
  50793. Check whether the specified char type byte has a
  50794. particular type flag set.
  50795. </summary>
  50796. <param name="ctype">The char type byte.</param>
  50797. <param name="type">The CharTypeBits entry to compare to.</param>
  50798. <returns>bool - true or false</returns>
  50799. </member>
  50800. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Char,RTools_NTS.Util.CharTypeBits)">
  50801. <summary>
  50802. Check whether the specified char has a
  50803. particular type flag set.
  50804. </summary>
  50805. <param name="c">The character.</param>
  50806. <param name="type">The CharTypeBits entry to compare to.</param>
  50807. <returns>bool - true or false</returns>
  50808. </member>
  50809. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.IsCharType(System.Int32,RTools_NTS.Util.CharTypeBits)">
  50810. <summary>
  50811. Check whether the specified char has a
  50812. particular type flag set.
  50813. </summary>
  50814. <param name="c">The character.</param>
  50815. <param name="type">The CharTypeBits entry to compare to.</param>
  50816. <returns>bool - true or false</returns>
  50817. </member>
  50818. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Display">
  50819. <summary>
  50820. Display the state of this object.
  50821. </summary>
  50822. </member>
  50823. <member name="M:RTools_NTS.Util.StreamTokenizerSettings.Display(System.String)">
  50824. <summary>
  50825. Display the state of this object, with a per-line prefix.
  50826. </summary>
  50827. <param name="prefix">The pre-line prefix.</param>
  50828. </member>
  50829. <member name="T:RTools_NTS.Util.StreamTokenizer">
  50830. <summary>
  50831. A StreamTokenizer similar to Java's. This breaks an input stream
  50832. (coming from a TextReader) into Tokens based on various settings. The settings
  50833. are stored in the TokenizerSettings property, which is a
  50834. StreamTokenizerSettings instance.
  50835. </summary>
  50836. <remarks>
  50837. <para>
  50838. This is configurable in that you can modify TokenizerSettings.CharTypes[] array
  50839. to specify which characters are which type, along with other settings
  50840. such as whether to look for comments or not.
  50841. </para>
  50842. <para>
  50843. WARNING: This is not internationalized. This treats all characters beyond
  50844. the 7-bit ASCII range (decimal 127) as Word characters.
  50845. </para>
  50846. <para>
  50847. There are two main ways to use this: 1) Parse the entire stream at
  50848. once and get an ArrayList of Tokens (see the Tokenize* methods),
  50849. and 2) call NextToken() successively.
  50850. This reads from a TextReader, which you can set directly, and this
  50851. also provides some convenient methods to parse files and strings.
  50852. This returns an Eof token if the end of the input is reached.
  50853. </para>
  50854. <para>
  50855. Here's an example of the NextToken() endCapStyle of use:
  50856. <code>
  50857. StreamTokenizer tokenizer = new StreamTokenizer();
  50858. tokenizer.GrabWhitespace = true;
  50859. tokenizer.Verbosity = VerbosityLevel.Debug; // just for debugging
  50860. tokenizer.TextReader = File.OpenText(fileName);
  50861. Token token;
  50862. while (tokenizer.NextToken(out token)) log.Info("Token = '{0}'", token);
  50863. </code>
  50864. </para>
  50865. <para>
  50866. Here's an example of the Tokenize... endCapStyle of use:
  50867. <code>
  50868. StreamTokenizer tokenizer = new StreamTokenizer("some string");
  50869. ArrayList tokens = new ArrayList();
  50870. if (!tokenizer.Tokenize(tokens))
  50871. {
  50872. // error handling
  50873. }
  50874. foreach (Token t in tokens) Console.WriteLine("t = {0}", t);
  50875. </code>
  50876. </para>
  50877. <para>
  50878. Comment delimiters are hardcoded (// and /*), not affected by char type table.
  50879. </para>
  50880. <para>
  50881. This sets line numbers in the tokens it produces. These numbers are normally
  50882. the line on which the token starts.
  50883. There is one known caveat, and that is that when GrabWhitespace setting
  50884. is true, and a whitespace token contains a newline, that token's line number
  50885. will be set to the following line rather than the line on which the token
  50886. started.
  50887. </para>
  50888. </remarks>
  50889. </member>
  50890. <member name="F:RTools_NTS.Util.StreamTokenizer.NChars">
  50891. <summary>
  50892. This is the number of characters in the character table.
  50893. </summary>
  50894. </member>
  50895. <member name="P:RTools_NTS.Util.StreamTokenizer.TextReader">
  50896. <summary>
  50897. This is the TextReader that this object will read from.
  50898. Set this to set the input reader for the parse.
  50899. </summary>
  50900. </member>
  50901. <member name="P:RTools_NTS.Util.StreamTokenizer.Settings">
  50902. <summary>
  50903. The settings which govern the behavior of the tokenization.
  50904. </summary>
  50905. </member>
  50906. <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor">
  50907. <summary>
  50908. Default constructor.
  50909. </summary>
  50910. </member>
  50911. <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.IO.TextReader)">
  50912. <summary>
  50913. Construct and set this object's TextReader to the one specified.
  50914. </summary>
  50915. <param name="sr">The TextReader to read from.</param>
  50916. </member>
  50917. <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.IO.TextReader,RTools_NTS.Util.StreamTokenizerSettings)">
  50918. <summary>
  50919. Construct and set this object's TextReader to the one specified.
  50920. </summary>
  50921. <param name="sr">The TextReader to read from.</param>
  50922. <param name="tokenizerSettings">Tokenizer settings.</param>
  50923. </member>
  50924. <member name="M:RTools_NTS.Util.StreamTokenizer.#ctor(System.String)">
  50925. <summary>
  50926. Construct and set a string to tokenize.
  50927. </summary>
  50928. <param name="str">The string to tokenize.</param>
  50929. </member>
  50930. <member name="M:RTools_NTS.Util.StreamTokenizer.Initialize">
  50931. <summary>
  50932. Utility function, things common to constructors.
  50933. </summary>
  50934. </member>
  50935. <member name="M:RTools_NTS.Util.StreamTokenizer.InitializeStream">
  50936. <summary>
  50937. Clear the stream settings.
  50938. </summary>
  50939. </member>
  50940. <member name="M:RTools_NTS.Util.StreamTokenizer.Display">
  50941. <summary>
  50942. Display the state of this object.
  50943. </summary>
  50944. </member>
  50945. <member name="M:RTools_NTS.Util.StreamTokenizer.Display(System.String)">
  50946. <summary>
  50947. Display the state of this object, with a per-line prefix.
  50948. </summary>
  50949. <param name="prefix">The pre-line prefix.</param>
  50950. </member>
  50951. <member name="T:RTools_NTS.Util.StreamTokenizer.NextTokenState">
  50952. <summary>
  50953. The states of the state machine.
  50954. </summary>
  50955. </member>
  50956. <member name="M:RTools_NTS.Util.StreamTokenizer.PickNextState(System.Byte,System.Int32)">
  50957. <summary>
  50958. Pick the next state given just a single character. This is used
  50959. at the start of a new token.
  50960. </summary>
  50961. <param name="ctype">The type of the character.</param>
  50962. <param name="c">The character.</param>
  50963. <returns>The state.</returns>
  50964. </member>
  50965. <member name="M:RTools_NTS.Util.StreamTokenizer.PickNextState(System.Byte,System.Int32,RTools_NTS.Util.StreamTokenizer.NextTokenState)">
  50966. <summary>
  50967. Pick the next state given just a single character. This is used
  50968. at the start of a new token.
  50969. </summary>
  50970. <param name="ctype">The type of the character.</param>
  50971. <param name="c">The character.</param>
  50972. <param name="excludeState">Exclude this state from the possible next state.</param>
  50973. <returns>The state.</returns>
  50974. </member>
  50975. <member name="M:RTools_NTS.Util.StreamTokenizer.GetNextChar">
  50976. <summary>
  50977. Read the next character from the stream, or from backString
  50978. if we backed up.
  50979. </summary>
  50980. <returns>The next character.</returns>
  50981. </member>
  50982. <member name="M:RTools_NTS.Util.StreamTokenizer.NextToken(RTools_NTS.Util.Token@)">
  50983. <summary>
  50984. Get the next token. The last token will be an EofToken unless
  50985. there's an unterminated quote or unterminated block comment
  50986. and Settings.DoUntermCheck is true, in which case this throws
  50987. an exception of type StreamTokenizerUntermException or sub-class.
  50988. </summary>
  50989. <param name="token">The output token.</param>
  50990. <returns>bool - true for success, false for failure.</returns>
  50991. </member>
  50992. <member name="M:RTools_NTS.Util.StreamTokenizer.GrabInt(RTools_NTS.Util.CharBuffer,System.Boolean,System.Char@)">
  50993. <summary>
  50994. Starting from current stream location, scan forward
  50995. over an int. Determine whether it's an integer or not. If so,
  50996. push the integer characters to the specified CharBuffer.
  50997. If not, put them in backString (essentially leave the
  50998. stream as it was) and return false.
  50999. <para>
  51000. If it was an int, the stream is left 1 character after the
  51001. end of the int, and that character is output in the thisChar parameter.
  51002. </para>
  51003. <para>The formats for integers are: 1, +1, and -1</para>
  51004. The + and - signs are included in the output buffer.
  51005. </summary>
  51006. <param name="sb">The CharBuffer to append to.</param>
  51007. <param name="allowPlus">Whether or not to consider + to be part
  51008. of an integer.</param>
  51009. <param name="thisChar">The last character read by this method.</param>
  51010. <returns>true for parsed an int, false for not an int</returns>
  51011. </member>
  51012. <member name="M:RTools_NTS.Util.StreamTokenizer.Tokenize(System.Collections.Generic.IList{RTools_NTS.Util.Token})">
  51013. <summary>
  51014. Parse the rest of the stream and put all the tokens
  51015. in the input ArrayList. This resets the line number to 1.
  51016. </summary>
  51017. <param name="tokens">The ArrayList to append to.</param>
  51018. <returns>bool - true for success</returns>
  51019. </member>
  51020. <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeReader(System.IO.TextReader,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
  51021. <summary>
  51022. Parse all tokens from the specified TextReader, put
  51023. them into the input ArrayList.
  51024. </summary>
  51025. <param name="tr">The TextReader to read from.</param>
  51026. <param name="tokens">The ArrayList to append to.</param>
  51027. <returns>bool - true for success, false for failure.</returns>
  51028. </member>
  51029. <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeFile(System.String,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
  51030. <summary>
  51031. Parse all tokens from the specified file, put
  51032. them into the input ArrayList.
  51033. </summary>
  51034. <param name="fileName">The file to read.</param>
  51035. <param name="tokens">The ArrayList to put tokens in.</param>
  51036. <returns>bool - true for success, false for failure.</returns>
  51037. </member>
  51038. <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeFile(System.String)">
  51039. <summary>
  51040. Tokenize a file completely and return the tokens in a Token[].
  51041. </summary>
  51042. <param name="fileName">The file to tokenize.</param>
  51043. <returns>A Token[] with all tokens.</returns>
  51044. </member>
  51045. <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeString(System.String,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
  51046. <summary>
  51047. Parse all tokens from the specified string, put
  51048. them into the input ArrayList.
  51049. </summary>
  51050. <param name="str"></param>
  51051. <param name="tokens">The ArrayList to put tokens in.</param>
  51052. <returns>bool - true for success, false for failure.</returns>
  51053. </member>
  51054. <member name="M:RTools_NTS.Util.StreamTokenizer.TokenizeStream(System.IO.Stream,System.Collections.Generic.IList{RTools_NTS.Util.Token})">
  51055. <summary>
  51056. Parse all tokens from the specified Stream, put
  51057. them into the input ArrayList.
  51058. </summary>
  51059. <param name="s"></param>
  51060. <param name="tokens">The ArrayList to put tokens in.</param>
  51061. <returns>bool - true for success, false for failure.</returns>
  51062. </member>
  51063. <member name="M:RTools_NTS.Util.StreamTokenizer.GetEnumerator">
  51064. <summary>
  51065. Gibt einen Enumerator zurück, der die Auflistung durchläuft.
  51066. </summary>
  51067. <returns>
  51068. Ein <see cref="T:System.Collections.Generic.IEnumerator`1"/>, der zum Durchlaufen der Auflistung verwendet werden kann.
  51069. </returns>
  51070. <filterpriority>1</filterpriority>
  51071. </member>
  51072. <member name="M:RTools_NTS.Util.StreamTokenizer.System#Collections#IEnumerable#GetEnumerator">
  51073. <summary>
  51074. Gibt einen Enumerator zurück, der eine Auflistung durchläuft.
  51075. </summary>
  51076. <returns>
  51077. Ein <see cref="T:System.Collections.IEnumerator"/>-Objekt, das zum Durchlaufen der Auflistung verwendet werden kann.
  51078. </returns>
  51079. <filterpriority>2</filterpriority>
  51080. </member>
  51081. <member name="T:RTools_NTS.Util.Token">
  51082. <summary>
  51083. Token class used by StreamTokenizer.
  51084. This represents a single token in the input stream.
  51085. This is subclassed to provide specific token types,
  51086. such as CharToken, FloatToken, etc.
  51087. </summary>
  51088. </member>
  51089. <member name="F:RTools_NTS.Util.Token._lineNumber">
  51090. <summary>
  51091. The line number in the input stream where this token originated.
  51092. This is base-1.
  51093. </summary>
  51094. </member>
  51095. <member name="P:RTools_NTS.Util.Token.LineNumber">
  51096. <summary>
  51097. The line number where this token was found. This is base-1.
  51098. </summary>
  51099. </member>
  51100. <member name="F:RTools_NTS.Util.Token.obj">
  51101. <summary>
  51102. A storage object for the data of this token.
  51103. </summary>
  51104. </member>
  51105. <member name="P:RTools_NTS.Util.Token.Object">
  51106. <summary>
  51107. The Object stored by this token. This will be
  51108. a primitive C# type.
  51109. </summary>
  51110. </member>
  51111. <member name="F:RTools_NTS.Util.Token.untermError">
  51112. <summary>
  51113. Backer for UntermError.
  51114. </summary>
  51115. </member>
  51116. <member name="P:RTools_NTS.Util.Token.UntermError">
  51117. <summary>
  51118. Whether or not there was an unterminated token problem
  51119. when creating this token. See UntermErrorMessage for
  51120. a message associated with the problem.
  51121. </summary>
  51122. </member>
  51123. <member name="F:RTools_NTS.Util.Token.untermErrorMsg">
  51124. An error message associated with unterm error.
  51125. </member>
  51126. <member name="P:RTools_NTS.Util.Token.UntermErrorMsg">
  51127. <summary>
  51128. The error message if there was an unterminated token error
  51129. creating this token.
  51130. </summary>
  51131. </member>
  51132. <member name="M:RTools_NTS.Util.Token.#ctor(System.Int32)">
  51133. <summary>
  51134. Construct a Token with the specified line number.
  51135. </summary>
  51136. <param name="line">The line number where this
  51137. token comes from.</param>
  51138. </member>
  51139. <member name="M:RTools_NTS.Util.Token.Equals(System.Object)">
  51140. <summary>
  51141. Equals override.
  51142. </summary>
  51143. <param name="other">The object to compare to.</param>
  51144. <returns>bool - true for equals, false otherwise.</returns>
  51145. </member>
  51146. <member name="M:RTools_NTS.Util.Token.Equals(System.String)">
  51147. <summary>
  51148. Equals overload.
  51149. </summary>
  51150. <param name="s">The string to compare to.</param>
  51151. <returns>bool</returns>
  51152. </member>
  51153. <member name="M:RTools_NTS.Util.Token.Equals(System.Char)">
  51154. <summary>
  51155. Equals overload.
  51156. </summary>
  51157. <param name="c">The char to compare to.</param>
  51158. <returns>bool</returns>
  51159. </member>
  51160. <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.Object)">
  51161. <summary>
  51162. Operator== overload. Compare a token and an object.
  51163. </summary>
  51164. <param name="t">The token to compare.</param>
  51165. <param name="o">The other object.</param>
  51166. <returns>bool</returns>
  51167. </member>
  51168. <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.Object)">
  51169. <summary>
  51170. Operator!= overload. Compare a token and an object.
  51171. </summary>
  51172. <param name="t">The token to compare.</param>
  51173. <param name="o">The other object.</param>
  51174. <returns>bool</returns>
  51175. </member>
  51176. <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.Char)">
  51177. <summary>
  51178. Operator== overload. Compare a token and a char.
  51179. </summary>
  51180. <param name="t">The token to compare.</param>
  51181. <param name="c">The char.</param>
  51182. <returns>bool</returns>
  51183. </member>
  51184. <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.Char)">
  51185. <summary>
  51186. Operator!= overload. Compare a token and a char.
  51187. </summary>
  51188. <param name="t">The token to compare.</param>
  51189. <param name="c">The char.</param>
  51190. <returns>bool</returns>
  51191. </member>
  51192. <member name="M:RTools_NTS.Util.Token.op_Equality(RTools_NTS.Util.Token,System.String)">
  51193. <summary>
  51194. Operator== overload. Compare a token and a string.
  51195. </summary>
  51196. <param name="t">The token to compare.</param>
  51197. <param name="s">The string.</param>
  51198. <returns>bool</returns>
  51199. </member>
  51200. <member name="M:RTools_NTS.Util.Token.op_Inequality(RTools_NTS.Util.Token,System.String)">
  51201. <summary>
  51202. Operator!= overload. Compare a token and a string.
  51203. </summary>
  51204. <param name="t">The token to compare.</param>
  51205. <param name="s">The string.</param>
  51206. <returns>bool</returns>
  51207. </member>
  51208. <member name="M:RTools_NTS.Util.Token.GetHashCode">
  51209. <summary>
  51210. Override. Returns the ToString().GetHashCode().
  51211. </summary>
  51212. <returns>The hash code.</returns>
  51213. </member>
  51214. <member name="P:RTools_NTS.Util.Token.StringValue">
  51215. <summary>
  51216. Return this token's value as a string.
  51217. </summary>
  51218. <returns>This token's value as a string.</returns>
  51219. </member>
  51220. <member name="M:RTools_NTS.Util.Token.ToLineString">
  51221. <summary>
  51222. Produce a string which includes the line number.
  51223. </summary>
  51224. <returns></returns>
  51225. </member>
  51226. <member name="M:RTools_NTS.Util.Token.ToDebugString">
  51227. <summary>
  51228. Produce a string which includes the token type.
  51229. </summary>
  51230. <returns></returns>
  51231. </member>
  51232. <member name="M:RTools_NTS.Util.Token.ConvertToType(System.Type)">
  51233. <summary>
  51234. Create an object of the specified type corresponding to
  51235. this token.
  51236. </summary>
  51237. <param name="t">The type of object to create.</param>
  51238. <returns>The new object, or null for error.</returns>
  51239. </member>
  51240. <member name="T:RTools_NTS.Util.EolToken">
  51241. <summary>
  51242. Represents end-of-lines (line separator characters).
  51243. </summary>
  51244. </member>
  51245. <member name="M:RTools_NTS.Util.EolToken.#ctor">
  51246. <summary>Default constructor.</summary>
  51247. </member>
  51248. <member name="M:RTools_NTS.Util.EolToken.#ctor(System.Int32)">
  51249. <summary>Constructor that takes line number.</summary>
  51250. </member>
  51251. <member name="M:RTools_NTS.Util.EolToken.ToDebugString">
  51252. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51253. </member>
  51254. <member name="M:RTools_NTS.Util.EolToken.ToString">
  51255. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51256. </member>
  51257. <member name="M:RTools_NTS.Util.EolToken.Equals(System.Object)">
  51258. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51259. </member>
  51260. <member name="P:RTools_NTS.Util.EolToken.StringValue">
  51261. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51262. </member>
  51263. <member name="M:RTools_NTS.Util.EolToken.GetHashCode">
  51264. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51265. </member>
  51266. <member name="T:RTools_NTS.Util.EofToken">
  51267. <summary>
  51268. Represents end of file/stream.
  51269. </summary>
  51270. </member>
  51271. <member name="M:RTools_NTS.Util.EofToken.#ctor">
  51272. <summary>Default constructor.</summary>
  51273. </member>
  51274. <member name="M:RTools_NTS.Util.EofToken.#ctor(System.Int32)">
  51275. <summary>Constructor that takes line number.</summary>
  51276. </member>
  51277. <member name="M:RTools_NTS.Util.EofToken.ToString">
  51278. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51279. </member>
  51280. <member name="M:RTools_NTS.Util.EofToken.ToDebugString">
  51281. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51282. </member>
  51283. <member name="M:RTools_NTS.Util.EofToken.Equals(System.Object)">
  51284. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51285. </member>
  51286. <member name="P:RTools_NTS.Util.EofToken.StringValue">
  51287. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51288. </member>
  51289. <member name="M:RTools_NTS.Util.EofToken.GetHashCode">
  51290. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51291. </member>
  51292. <member name="T:RTools_NTS.Util.StringToken">
  51293. <summary>
  51294. Abstract base class for string tokens.
  51295. </summary>
  51296. </member>
  51297. <member name="M:RTools_NTS.Util.StringToken.#ctor(System.String)">
  51298. <summary>Default constructor.</summary>
  51299. </member>
  51300. <member name="M:RTools_NTS.Util.StringToken.#ctor(System.String,System.Int32)">
  51301. <summary>Constructor with the specified value
  51302. and line number.</summary>
  51303. </member>
  51304. <member name="M:RTools_NTS.Util.StringToken.ToDebugString">
  51305. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51306. </member>
  51307. <member name="M:RTools_NTS.Util.StringToken.ToString">
  51308. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51309. </member>
  51310. <member name="P:RTools_NTS.Util.StringToken.StringValue">
  51311. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51312. </member>
  51313. <member name="M:RTools_NTS.Util.StringToken.GetHashCode">
  51314. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51315. </member>
  51316. <member name="T:RTools_NTS.Util.WordToken">
  51317. <summary>
  51318. Token type for words, meaning sequences of word
  51319. characters.
  51320. </summary>
  51321. </member>
  51322. <member name="M:RTools_NTS.Util.WordToken.#ctor(System.String)">
  51323. <summary>Constructor with the specified value.</summary>
  51324. </member>
  51325. <member name="M:RTools_NTS.Util.WordToken.#ctor(System.String,System.Int32)">
  51326. <summary>Constructor with the specified value
  51327. and line number.</summary>
  51328. </member>
  51329. <member name="T:RTools_NTS.Util.QuoteToken">
  51330. <summary>
  51331. Token type for Quotes such as "this is a quote".
  51332. </summary>
  51333. </member>
  51334. <member name="M:RTools_NTS.Util.QuoteToken.#ctor(System.String)">
  51335. <summary>Constructor with the specified value.</summary>
  51336. </member>
  51337. <member name="M:RTools_NTS.Util.QuoteToken.#ctor(System.String,System.Int32)">
  51338. <summary>Constructor with the specified value
  51339. and line number.</summary>
  51340. </member>
  51341. <member name="T:RTools_NTS.Util.CommentToken">
  51342. <summary>
  51343. Token type for comments, including line and block
  51344. comments.
  51345. </summary>
  51346. </member>
  51347. <member name="M:RTools_NTS.Util.CommentToken.#ctor(System.String)">
  51348. <summary>Constructor with the specified value.</summary>
  51349. </member>
  51350. <member name="M:RTools_NTS.Util.CommentToken.#ctor(System.String,System.Int32)">
  51351. <summary>Constructor with the specified value
  51352. and line number.</summary>
  51353. </member>
  51354. <member name="T:RTools_NTS.Util.WhitespaceToken">
  51355. <summary>
  51356. Token type for whitespace such as spaces and tabs.
  51357. </summary>
  51358. </member>
  51359. <member name="M:RTools_NTS.Util.WhitespaceToken.#ctor(System.String)">
  51360. <summary>Constructor with the specified value.</summary>
  51361. </member>
  51362. <member name="M:RTools_NTS.Util.WhitespaceToken.#ctor(System.String,System.Int32)">
  51363. <summary>Constructor with the specified value
  51364. and line number.</summary>
  51365. </member>
  51366. <member name="T:RTools_NTS.Util.CharToken">
  51367. <summary>
  51368. Token type for characters, meaning non-word characters.
  51369. </summary>
  51370. </member>
  51371. <member name="M:RTools_NTS.Util.CharToken.#ctor(System.String,System.Int32)">
  51372. <summary>Constructor with the specified value
  51373. and line number.</summary>
  51374. </member>
  51375. <member name="M:RTools_NTS.Util.CharToken.#ctor(System.Char)">
  51376. <summary>Constructor with the specified value.</summary>
  51377. </member>
  51378. <member name="M:RTools_NTS.Util.CharToken.#ctor(System.Char,System.Int32)">
  51379. <summary>Constructor with the specified value.</summary>
  51380. </member>
  51381. <member name="M:RTools_NTS.Util.CharToken.ToDebugString">
  51382. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51383. </member>
  51384. <member name="M:RTools_NTS.Util.CharToken.ToString">
  51385. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51386. </member>
  51387. <member name="M:RTools_NTS.Util.CharToken.GetHashCode">
  51388. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51389. </member>
  51390. <member name="P:RTools_NTS.Util.CharToken.StringValue">
  51391. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51392. </member>
  51393. <member name="M:RTools_NTS.Util.CharToken.Equals(System.Object)">
  51394. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51395. </member>
  51396. <member name="T:RTools_NTS.Util.FloatToken">
  51397. <summary>
  51398. Token type for floating point numbers, stored internally as a Double.
  51399. </summary>
  51400. </member>
  51401. <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.String)">
  51402. <summary>
  51403. Constructor with the specified value.
  51404. </summary>
  51405. </member>
  51406. <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Single)">
  51407. <summary>
  51408. Constructor with the specified value.
  51409. </summary>
  51410. </member>
  51411. <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Double)">
  51412. <summary>
  51413. Constructor with the specified value.
  51414. </summary>
  51415. </member>
  51416. <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.String,System.Int32)">
  51417. <summary>
  51418. Constructor with the specified value and line number.
  51419. </summary>
  51420. </member>
  51421. <member name="M:RTools_NTS.Util.FloatToken.#ctor(System.Double,System.Int32)">
  51422. <summary>
  51423. Constructor with the specified value and line number.
  51424. </summary>
  51425. </member>
  51426. <member name="M:RTools_NTS.Util.FloatToken.ToDebugString">
  51427. <summary>
  51428. Override, see base <see cref="T:RTools_NTS.Util.Token"/>
  51429. </summary>
  51430. </member>
  51431. <member name="M:RTools_NTS.Util.FloatToken.ToString">
  51432. <summary>
  51433. Override, see base <see cref="T:RTools_NTS.Util.Token"/>
  51434. </summary>
  51435. </member>
  51436. <member name="M:RTools_NTS.Util.FloatToken.GetHashCode">
  51437. <summary>
  51438. Override, see base <see cref="T:RTools_NTS.Util.Token"/>
  51439. </summary>
  51440. </member>
  51441. <member name="P:RTools_NTS.Util.FloatToken.StringValue">
  51442. <summary>
  51443. Override, see base <see cref="T:RTools_NTS.Util.Token"/>
  51444. </summary>
  51445. </member>
  51446. <member name="M:RTools_NTS.Util.FloatToken.Equals(System.Object)">
  51447. <summary>
  51448. Override, see base <see cref="T:RTools_NTS.Util.Token"/>
  51449. </summary>
  51450. </member>
  51451. <member name="T:RTools_NTS.Util.IntToken">
  51452. <summary>
  51453. Token type for integer tokens. This handles both Int32 and Int64.
  51454. </summary>
  51455. </member>
  51456. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int32)">
  51457. <summary>Constructor with the specified value.</summary>
  51458. </member>
  51459. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int64)">
  51460. <summary>Constructor with the specified value.</summary>
  51461. </member>
  51462. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.String)">
  51463. <summary>Constructor with the specified value.</summary>
  51464. </member>
  51465. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.String,System.Int32)">
  51466. <summary>Constructor with the specified value
  51467. and line number.</summary>
  51468. </member>
  51469. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int32,System.Int32)">
  51470. <summary>Constructor with the specified value
  51471. and line number.</summary>
  51472. </member>
  51473. <member name="M:RTools_NTS.Util.IntToken.#ctor(System.Int64,System.Int32)">
  51474. <summary>
  51475. Constructor for a 64 bit int
  51476. </summary>
  51477. </member>
  51478. <member name="M:RTools_NTS.Util.IntToken.ParseHex(System.String,System.Int32)">
  51479. <summary>
  51480. Parse a string known to be a hex string. This is faster
  51481. than Parse which doesn't assume the number is Hex. This will
  51482. throw an exception if the input number isn't hex.
  51483. </summary>
  51484. <param name="s">The hex number as a string.</param>
  51485. <param name="lineNumber">The line where this token was found.</param>
  51486. <returns>A new IntToken set to the value in the input string.</returns>
  51487. </member>
  51488. <member name="M:RTools_NTS.Util.IntToken.Parse(System.String)">
  51489. <summary>
  51490. Convert the input string to an integer, if possible
  51491. </summary>
  51492. <param name="s">The string to parse.</param>
  51493. </member>
  51494. <member name="M:RTools_NTS.Util.IntToken.ToDebugString">
  51495. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51496. </member>
  51497. <member name="M:RTools_NTS.Util.IntToken.ToString">
  51498. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51499. </member>
  51500. <member name="M:RTools_NTS.Util.IntToken.GetHashCode">
  51501. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51502. </member>
  51503. <member name="P:RTools_NTS.Util.IntToken.StringValue">
  51504. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51505. </member>
  51506. <member name="M:RTools_NTS.Util.IntToken.Equals(System.Object)">
  51507. <summary>Override, see base <see cref="T:RTools_NTS.Util.Token"/></summary>
  51508. </member>
  51509. <member name="T:RTools_NTS.Util.VerbosityLevel">
  51510. <summary>
  51511. This enumerates verbosity levels.
  51512. </summary>
  51513. </member>
  51514. <member name="F:RTools_NTS.Util.VerbosityLevel.Error">
  51515. <summary>For error messages.</summary>
  51516. </member>
  51517. <member name="F:RTools_NTS.Util.VerbosityLevel.Warn">
  51518. <summary>For warn messages.</summary>
  51519. </member>
  51520. <member name="F:RTools_NTS.Util.VerbosityLevel.Info">
  51521. <summary>For info messages.</summary>
  51522. </member>
  51523. <member name="F:RTools_NTS.Util.VerbosityLevel.Debug">
  51524. <summary>For debug messages.</summary>
  51525. </member>
  51526. </members>
  51527. </doc>